Будучи профессионалом в области науки о данных, мы стремимся изучать все доступные методы обработки наших данных и вывода из них значимых выводов. В этой статье я описал свои эксперименты с архитектурами нейронных сетей для исследовательского анализа данных.

Вот ссылка на github на мой репозиторий кода, который я использовал для исследовательского анализа данных, всех архитектурных проектов, упомянутых в этой статье. Я использовал Python 3.6 вместе с модулями Pandas, Numpy и Keras (бэкэнд на тензорном потоке).



Вот ссылка на набор данных, который я использовал для своего исследовательского анализа данных, с веб-сайта Kaggle. Описание данных и метаданные столбцов указаны в ссылке.

Number of Observations : 768
Number of Features : 8
Input Neurons : 8
Output Neurons : 2 (Diabetic and Non-diabetic)
Test Data size : 20%
Train Data size : 80%


Сначала я создал Матрицу корреляции и построил тепловую карту и график пар (график между каждыми двумя функциями набора данных), используя модуль Seaborn для визуализации данных. График корреляции дает представление о зависимостях функций, сравнивая их друг с другом. Корреляция - это часть двумерного анализа любого набора данных.

Ниже приведен парный график, который описывает двумерный график между каждой функцией, а также показывает гистограмму каждой функции. В ячейке [i, i] отображается гистограмма, где i - это i-я строка / столбец.

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

Из приведенного выше графика можно сделать вывод (из-за высокого показателя корреляции), что пара результат-глюкоза и результат-ИМТ пары наиболее взаимозависимы. Таким образом, при построении совместного графика с помощью Корреляции Пирсона основное внимание будет уделено их поведению. Из нижеприведенного можно также сказать, что Результат (Цель) имеет только два возможных результата.

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

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

  1. #Input Neurons = # возможности в X
  2. #Output Neurons = # Классы в цели
  3. # Скрытые слои ›0
  4. # Нейроны в скрытом слое1 ~ # нейроны в скрытом слое2 ~ # нейроны в скрытом слое3…. ~ # Нейроны в скрытом слоеN (если в архитектуре N скрытых слоев)
  5. # Нейроны в скрытых слоях ~ # Входные нейроны | # Нейроны в скрытых слоях ~ 2 X # входных нейронов
  6. Веса должны быть инициализированы случайным образом

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

Вот несколько интересных фактов, которые побуждают специалистов по данным использовать искусственные нейронные сети:

  • Приспосабливается и обучается решению сложных нелинейных задач.
  • Гибкость к различным типам задач.
  • Принципиально совместим с обучением в реальном времени (Online Learning).
  • В большинстве случаев для построения ИНС требуется много данных и быстрый графический процессор для вычислений.

В этой программе, в каждой используемой архитектуре, выходной слой активируется функцией активации softmax. Промежуточные слои активируются функцией активации relu.

Все показатели и графики относятся к этой конкретной задаче, только поскольку это предварительный анализ данных.

Архитектура с одним скрытым слоем

В случае нашей проблемы применение однослойной архитектуры дает насыщенную точность 64,28% для любого количества нейронов (сильное предположение, основанное на приведенном выше графике) в скрытом слое.

Двухуровневая архитектура

В случае архитектуры с двумя скрытыми слоями наблюдается аналогичное поведение, когда точность всегда достигает значения 64,28%.

Многослойная архитектура со скрытыми слоями

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

  • Выбор функций активации в значительной степени влияет на производительность. Мудрое решение о выборе функций активации на основе экспериментов, типа мишени и данных, с которыми мы имеем дело, имеет значение.
  • Количество нейронов в скрытых слоях должно быть таким же, как у входных нейронов. Если количество нейронов достаточно велико, это может повысить производительность, но также может увеличить сложность. Для того же следует сохранить компромисс.
  • Использование Momentum с обратным распространением может помочь в конвергенции решения и достижении глобального оптимума.
  • При выборе архитектуры скрытых слоев помогут эксперименты с различными архитектурами, поскольку каждый набор данных может вести себя по-разному с архитектурами.
  • Размер данных имеет значение, поэтому постарайтесь выбрать размер данных соответствующим образом. Больше лучше!
  • Случайная инициализация весов сети обязательна, когда сеть строится с нуля (НИКАКИХ ПРЕДВАРИТЕЛЬНЫХ ВЕСОВ, таких как начальная модель).

После нейронной сети я применил несколько других алгоритмов для экспериментов с набором данных и производительностью. Вот результат: -

Ключевые выводы

В каждой реальной проблеме первым шагом к построению модели, ориентированной на решение, является выполнение исследовательского анализа данных. Это позволит установить подходящую модель проблемы, которую можно будет использовать в дальнейшем для повышения производительности и эффективного решения проблемы.

Исследовательский анализ данных для искусственной нейронной сети занимается игрой со скрытыми слоями и функциями активации. Расширенные проблемы с большими данными, проблемы с изображениями и многие другие сложные проблемы теперь решаются с помощью сверточных нейронных сетей (CNN). Глубокое обучение широко используется во многих сложных исследовательских задачах, поскольку оно позволяет получать информацию из больших данных, во многих случаях пропускать процесс извлечения признаков данных (CNN может работать непосредственно с изображениями, без извлечения каких-либо признаков) . CNN в приложениях компьютерного зрения имеет еще одно преимущество, заключающееся в сохранении неизменности пространственных свойств изображения, что может быть очень полезно для многих геометрических вычислений и выводов.

использованная литература

  1. Исследовательский анализ данных - https://www.kaggle.com/etakla/exploring-the-dataset-bivariate-analysis
  2. Керас - https://keras.io/
  3. Панды - https://pandas.pydata.org/
  4. Сиборн - https://seaborn.pydata.org/
  5. Корреляция Пирсона - https://en.wikipedia.org/wiki/Pearson_correlation_coefficient
  6. Искусственная нейронная сеть - https://www.tutorialspoint.com/artificial_intelligence/artificial_intelligence_neural_networks.htm