Многослойный персептрон для классификации с использованием известного набора данных

В этом посте используется TensorFlow с Keras API для задачи классификации прогнозирования диабета на основе нейронной сети с прямой связью, также известной как многослойный персептрон, и используется База данных диабета индейцев пима от Kaggle. Коллектив Google блокнот с кодом доступен на GitHub.

Исследовательский анализ данных

Набор данных состоит из 8 числовых функций, каждая из которых не имеет пропущенных значений. База данных содержит 768 записей, из которых 500 соответствуют отрицательным исходам и 268 — положительным.

Нет признаков, сильно коррелирующих друг с другом.

Построение модели

Мы разделили набор данных на обучающую часть, которая составляет 80% всех данных, и тестовую часть, составляющую 20%. Последовательная модель, состоящая из 6 слоев. Первый — это уровень нормализации, который представляет собой своего рода экспериментальный уровень предварительной обработки, используемый для принуждения входных данных к распределению со средним значением, равным нулю, и стандартным отклонением, равным единице.

Модель содержит два трех полносвязных слоя, два с пятью единицами и активацией ReLu и один выходной слой с сигмовидной функцией активации. Кроме того, есть два выпадающих слоя для предотвращения переобучения. Слои с активацией ReLu используют инициализацию нормального веса He, а выходной слой использует инициализацию нормального веса Glorot.

Модель использует оптимизатор Адама, бинарную функцию кросс-энтропийных потерь и бинарную точность в качестве метрики.

Скорость обучения 1e-5 была выбрана, чтобы обеспечить снижение как потерь при обучении, так и при проверке. Два выпадающих слоя были добавлены для предотвращения переобучения.

Результаты

Достигнута точность более 70%. Матрица путаницы изображена ниже.

Эта статья впервые появилась в моем блоге.

Ресурсы

  1. https://en.wikipedia.org/wiki/TensorFlow
  2. https://www.tensorflow.org/
  3. https://en.wikipedia.org/wiki/Керас
  4. https://keras.io/