Привет, народ ! Я Ананья Саркар, и это мой первый блог о машинном обучении. Этот блог будет посвящен изучению того, как использовать машинное обучение, чтобы помочь нам предсказать диабет с помощью классификатора дерева решений со скриншотами как входного кода, так и выходных данных. Давайте начнем!

Обзор

Мы построим дерево решений для прогнозирования диабета для субъектов в наборе данных индейцев пима на основе переменных-предикторов, таких как возраст, артериальное давление и bmi. Подмножество данных индейцев пима из репозитория машинного обучения UCI представляет собой встроенный набор данных в библиотеке MASS. Данные Pima в MASS содержат 768 полных записей из исходного набора данных. Эти 768 записей были разбиты на два фрейма данных: фрейм данных обучения имеет 80%, а фрейм данных теста - 20% от общего числа субъектов. Все записи с нулями, которые не имеют смысла, были удалены из этих наборов данных.

Дерево решений - это древовидная структура, подобная блок-схеме, где внутренний узел представляет функцию (или атрибут), ветвь представляет правило принятия решения, а каждый конечный узел представляет результат. Самый верхний узел в дереве решений известен как корневой узел. Он обучается разделению на основе значения атрибута. Он рекурсивно разбивает дерево на части, вызывая рекурсивное разбиение. Эта структура, похожая на блок-схему, помогает вам в принятии решений. Это визуализация в виде блок-схемы, которая легко имитирует мышление человеческого уровня. Вот почему деревья решений легко понять и интерпретировать.

Данные

Набор данных о диабете взят из репозитория машинного обучения UCI. Вы можете взять набор данных из моего репозитория Github:



Содержание

Наборы данных состоят из нескольких медицинских предикторов и одной целевой переменной Outcome. Переменные-предикторы включают количество беременностей у пациентки, их ИМТ, уровень инсулина, возраст и т. Д.

Чтобы составить отчет о классификации дерева решений, выполните следующие действия:

Импорт обязательных библиотек. Сначала загрузим необходимые библиотеки.

Загрузка данных. Сначала загрузим требуемый набор данных о диабете с помощью функции pandas read_csv.

Выбор функции: здесь вам нужно разделить данные столбцы на два типа переменных: зависимые (или целевая переменная) и независимые переменные (или функциональные переменные). Наша целевая переменная - Результат, а другие переменные - это функциональные переменные.

Чтобы получить переменные цели и функции из набора данных, мы напишем так:

Разделение данных. Чтобы понять производительность модели, хорошей стратегией является разделение набора данных на обучающий набор и тестовый набор. Я разделил размер поезда и теста в соотношении 1: 4 (test_size 0.2).

Построение модели дерева решений. Давайте создадим модель дерева решений с помощью Scikit-learn.

Оценка модели. Давайте оценим, насколько точно классификатор или модель могут предсказать тип сорта. Точность можно вычислить, сравнив фактические значения тестового набора и прогнозируемые значения.

Я использовал три метода расчета точности:

  1. Расчет нормальной точности путем импорта метрик модуля из scikit-learn для расчета точности.
  2. Отчет о классификации путем импорта модуля scikit-learn classification_report.
  3. Матрица путаницы путем импорта модуля scikit-learn confusion_matrix.

При проверке y_test и y_pred я получил точность 70,77%.

Прогноз. Посмотрим, верны ли данные исходные данные.

Мне удалось повысить точность, передав max_depth = 3 в DecisionTreeClassifier ().

Коэффициент классификации увеличился до 79,87%, что лучше, чем у предыдущей модели.

Визуализация дерева решений. Давайте импортируем следующие модули для визуализации дерева решений.

from sklearn.externals.six import StringIO  
from IPython.display import Image  
from sklearn.tree import export_graphviz
import pydotplus

Резюме

Мы обсудили различные модели DecisionTreeClassifier () для классификации набора данных о диабете для прогнозирования диабета. мы узнали об их преимуществах и недостатках и о том, как для этого управлять сложностью модели. На основе точности было создано два типа модели дерева решений. Окончательная точность составляет 79,87%.

Вы можете найти полный проект в этом репозитории на github: https://github.com/Anny8910/Decision-Tree-Classification-on-Diabetes-Dataset