В этом уроке я собираюсь предоставить шаги, чтобы предсказать, есть ли у пациента диабет, на основе нескольких входных переменных. Я использую набор данных, доступный в библиотеке UCI под названием Pima Indians Diabetes Database, которую вы можете скачать с сайта kaggle — https://www.kaggle.com/uciml/pima-indians-diabetes-database/data.

Сначала импортируйте необходимые библиотеки:

from xgboost import XGBClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.neighbors import KNeighborsClassifier
from sklearn.svm import SVC

Загрузите набор данных и разделите зависимые и независимые переменные.

df = pd.read_csv(‘pima-indians-diabetes.data.csv’, delimiter=”,” )
df = df.values
X = df[:,0:8]
y= df[:,8]

Разделите набор данных на обучающий и тестовый наборы данных, используйте около 30% набора данных в качестве тестового набора данных.

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)

Создайте модель с использованием алгоритма Gradient Boost Classifier и обучите модель.

model = XGBClassifier()
model.fit(X_train, y_train)

Предскажите результаты и сравните их с результатами, установленными на дату тестирования, и измерьте точность.
y_pred= model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(“accuracy %.2f%%”% (accuracy*100))

точность 75,20 %

Повторите вышеуказанные шаги с различными типами алгоритмов и проверьте показатель точности.

Дерево решений

model = DecisionTreeClassifier()
model.fit(X_train, y_train)
y_pred= model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(“accuracy %.2f%%”% (accuracy*100))

точность 72,44%

Классификатор случайного леса:

model = RandomForestClassifier()
model.fit(X_train, y_train)
y_pred= model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(“accuracy %.2f%%”% (accuracy*100))

точность 75,20 %

Классификатор соседей K:

model = KNeighborsClassifier()
model.fit(X_train, y_train)
y_pred= model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(“accuracy %.2f%%”% (accuracy*100))

точность 72,44%

model = SVC()
model.fit(X_train, y_train)
y_pred= model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(“accuracy %.2f%%”% (accuracy*100))

точность 66,54%

XGBoost и RandomForest обеспечивают более высокую точность прогнозирования результатов.