Реализация нейронных сетей с нуля с помощью Python [с примерами]

Опубликовано: 2020-12-07

В этой статье мы узнаем, как обучить и построить нейронную сеть с нуля.

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

  • Установить Тензорфлоу
  • Импорт библиотек
  • Импорт набора данных
  • Преобразование входных данных
  • Разделить данные
  • Инициализировать модель
  • Построить модель
  • Обучите модель
  • Оценить модель

Коэффициент оттока — это количество подписчиков компании или группы, которые имеют тенденцию прекращать подписку в течение определенного периода времени. Эта ставка играет важную роль в определении прибыли и формировании планов по привлечению новых клиентов. Проще говоря, можно сказать, что рост компании можно измерить по коэффициенту оттока.

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

Изучите онлайн-курс по машинному обучению от лучших университетов мира. Заработайте программы Masters, Executive PGP или Advanced Certificate Programs, чтобы ускорить свою карьеру.

Оглавление

Установить ТензорФлоу

Мы можем либо использовать Google Colab, если на вашем ПК или ноутбуке нет графического процессора, либо вы можете использовать ноутбуки Jupyter. Если вы используете свою систему, обновите pip, а затем установите TensorFlow следующим образом.

Источник изображения

Импорт библиотек

В приведенных выше строках кода я просто импортировал все библиотеки, которые мне понадобятся в процессе.

Numpy Это библиотека, используемая для выполнения математических операций с массивами.

Pandas Чтобы загрузить файл данных в виде фрейма данных Pandas и проанализировать данные.

Matplotlib Я импортировал pyplot для построения графиков данных .

Импорт набора данных

Наш набор данных находится в формате CSV, поэтому мы загружаем набор данных с помощью операций pandas. Затем мы разделяем набор данных на зависимые и независимые переменные, где X считается независимым, а Y считается зависимым.

Преобразование данных

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

После того, как мы закончим создание фиктивных элементов и объединение их с нашими данными, мы удалим исходные признаки, т. е. пол и географию, из наших данных о поездах.

Читайте: Машинное обучение против нейронных сетей

Разделить данные

Из Sklearn, подбиблиотеки model_selection, мы импортируем train_test_split, который используется для разделения обучающих и тестовых наборов. Мы можем использовать функцию train_test_split для разделения. test_size = 0,3 указывает процент данных, которые должны быть сохранены для тестирования.

Нормализация данных

Важно убедиться, что все значения признаков лежат в одном диапазоне. Модели было бы трудно изучить базовые закономерности между функциями и научиться принимать решения, поэтому мы нормализуем наши данные в один и тот же диапазон, используя метод StandardScaler .

Импорт зависимостей

Теперь мы импортируем функции, необходимые для построения глубокой нейронной сети.

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

Пришло время построить нашу модель!. Теперь давайте инициализируем нашу последовательную модель. Последовательный API позволяет создавать модели слой за слоем для большинства задач.

Первое, что нам нужно сделать перед построением модели, это создать сам объект модели. Этот объект будет экземпляром класса Sequential.

Добавление первого полносвязного слоя

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

Это означает, что на выходе этой операции должно быть шесть нейронов, в которых мы применяем функцию активации ReLU для нарушения линейности, а число входных нейронов равно 11. Мы добавляем все эти гиперпараметры с помощью метода .add() .

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

Выходной слой

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

Узнайте о: Глубокое обучение против нейронных сетей

Компиляция

Теперь нам нужно соединить нашу сеть с оптимизатором. Оптимизатор обновит веса нашей сети на основе ошибки. Этот процесс известен как обратное распространение.

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

Обучение модели

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

Мы используем метод model.fit() для обучения модели. Мы передаем три аргумента внутри метода, которые

input x_train — это ввод, который подается в сеть

вывод содержит правильные ответы для x_train, т.е. y_train

no.of.epochs Это означает, сколько раз вы собираетесь обучать сеть с набором данных.

Оценивать

Вы можете оценить производительность модели, импортировав точность_оценки из библиотеки sklearn, в которую нужно передать два аргумента. Один из них - фактический результат, а другой - прогнозируемые результаты.

Читайте также : Применение нейронных сетей в реальном мире.

Заключение

Это все на данный момент. Надеюсь, вам понравилось создавать свою первую нейронную сеть. Счастливого обучения!

Если вам интересно узнать больше о машинном обучении, ознакомьтесь с программой Executive PG IIIT-B и upGrad по машинному обучению и искусственному интеллекту, которая предназначена для работающих профессионалов и предлагает более 450 часов интенсивного обучения, более 30 тематических исследований и заданий, IIIT -B статус выпускника, 5+ практических практических проектов и помощь в трудоустройстве в ведущих фирмах.

Возглавьте технологическую революцию, управляемую искусственным интеллектом

Подать заявку на получение степени магистра наук в области машинного обучения и искусственного интеллекта