Выяснение того, является ли человек диабетиком или нет, путем изучения «диабетических данных индейцев пима» о пациентах и ​​их медицинских проблемах и заболеваниях, что приводит к прогнозам.

Диабет — это состояние, при котором нарушается способность организма перерабатывать глюкозу в крови, также известную как сахар в крови, а также основная причина слепоты, почечной недостаточности, сердечных приступов, инсульта и ампутаций нижних конечностей. Здесь я использовал реальную запись и набор данных людей с разными и похожими проблемами со здоровьем и попытался классифицировать их как пациентов с диабетом или без диабета, что создает проблему классификации в машинном обучении.

Набор данных

Я использовал очень популярную «данные о диабете индейцев пима», которая показывает различные медицинские состояния пациентов в медицинских терминах и цифрах для целей оценки.

Беременность, глюкоза, артериальное давление, толщина кожи, инсулин,
индекс массы тела, функция родословной диабета, возраст и исход (диабетик/недиабетик) — это столбцы в наборе данных.

Изучение и обработка данных

Теперь мы будем изучать набор данных на предмет количества значений, отсутствующих значений и данных, отношения между атрибутами или между ними. также есть репозиторий GitHub исследований.

здесь значения визуального подсчета также показывают нам, что в наборе данных нет нулевых/отсутствующих значений, поскольку все они одинаковы (786 000).

теперь для одноразового описания отношений между независимыми атрибутами и зависимым атрибутом (Результатом) мы можем использовать парный график, но нам нужно изменить Результат с числового на строковый;

import seaborn as sns

import numpy as np

df['Outcome']=np.where(df['Outcome']==1,"Diabetic","No Diabetic")

здесь я изменил значения для «Результата», так как я собираюсь запустить парный график для этих данных, а парный график понимает только строки, поэтому требуется модификация.

теперь ПАРА;

Одномерный и двумерный анализ

Использование гистограмм и гистограмм для одномерного анализа (беременность, толщина кожи, индекс массы тела, функция родословной диабета) и диаграммы рассеяния для двумерного анализа.

анализ отдельных и комбинированных атрибутов помогает нам лучше понять взаимосвязь между переменными/атрибутами и делает зависимые и независимые переменные ясными.

ПОСТРОЕНИЕ МОДЕЛЕЙ

Это последний процесс этого проекта машинного обучения, в котором я построил модели и оценил/выбрал их на основе их оценок. Это можно лучше понять с помощью кода и работы моделей, обратившись к этому репозиторию Diabetes-prediction на GitHub.

1. масштабирование набора данных

импорт стандартного масштабатора для масштабирования данных от 0 до, что упрощает построение модели.

from sklearn.preprocessing import StandardScaler

sc = StandardScaler()

X_fit = sc.fit(df)

dff = X_fit.transform(df)

2. Тренируйте и тестируйте данные

X=df.drop('Outcome',axis=1).values

y=df['Outcome'].values

здесь определение x = «независимые переменные» и y = «зависимая переменная», а затем дальнейшее разделение данных поезда и теста с разделением 80–20 с использованием функции «train_test_split» для x, y.

3. Построение разных моделей

импорт оценки перекрестной проверки, которая представляет собой метод, используемый для оценки навыков моделей машинного обучения;

from sklearn.model_selection import cross_val_score

проект с моделями и кодом

Модели с их оценками:

  • Наивный Байес (73,9%)
  • Логистическая регрессия (76,5%)
  • Дерево решений (69,2%)
  • K Ближайший сосед (70,5%)
  • Случайный лес (73,9%)
  • Классификатор опорных векторов (64,0%)
  • Экстремальное ускорение градиента (71,9%)
  • Классификатор мягкого голосования — все модели (74,1%)

Здесь моделью, дающей наилучшие оценки, является логистическая регрессия с точностью 76,52%, поэтому мы будем использовать результаты этой модели для дальнейшей оценки и получения результатов того, является ли пациент/человек диабетиком или нет.

Выход и окончательный прогноз

voting_clf.fit(X_train,y_train) base = voting_clf.predict(X_train).astype(int) basic_submission = {'Outcome': base} base_submission = pd.DataFrame(data=basic_submission) base_submission.to_csv('Diabetic_pred.csv', index=False)

классификатор голосования (voting_clf) здесь просматривает каждую модель и их оценки выше и голосует за лучшую из них посредством мягкого голосования, а затем сохраняет эту информацию во фрейме данных и создает ее в виде файла CSV с именем Diabetic_pred. .csv».