В этом уроке я собираюсь предоставить шаги, чтобы предсказать, есть ли у пациента диабет, на основе нескольких входных переменных. Я использую набор данных, доступный в библиотеке 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 обеспечивают более высокую точность прогнозирования результатов.