Автор оригинала: FreeCodeCapm Team.
Эндрю Ли
Это так просто.
Минут одно – введение:
Это учебное пособие высокого уровня, предназначенное для тех новых для изучения машинного и искусственного интеллекта и предполагает, что у вас есть:
- Либо Python 2 или 3 установлен
- По крайней мере, опыт кодирования на новичке
- 5 минут
Этот учебник пропустит низкоуровневые, математические детали нейронных сетей и сосредоточиться на получении нейронной сети, чтобы прогнозировать рак молочной железы всего за 5 минут!
Мы будем использовать реализацию нейронной сети от Scikit - Учите
Библиотека для прогнозирования того, имеет ли у кого-то рак молочной железы, используя данные с набора данных DACH CANCONCINCIN CANCONCION. Свойства клеток ядер (например, текстура или область) для массы груди будет вводить в нейронную сеть, а затем предсказание того, злонаправлена ли масса или доброкачественная, будет выводиться на нейронной сети.
Минута два – Начало работы:
Если у вас нет Scikit - Учите
Установлен пока, запустите Пип Установите Scikit - Учите
в вашем терминале. Что должно обрабатывать установку Scikit - Учите
И все обязательные библиотеки, которые нам понадобится.
Откройте IDE или редактор и создайте пустой файл под названием Neuralnet.py
или имя, которое вы предпочитаете. Далее мы импортируем реализацию нейронной сети, набор данных рака молочной железы и функцию для разделения наших данных в наборы обучения и тестирования для подачи в нашу нейронную сеть.
Для справки, когда мы идем, здесь уместно Scikit - Учите
документация:
- Документация для набора данных рака молочной железы (
load_breast_cancer.
) - Документация для функции предварительной обработки (
rain_test_split.
) - Документация для реализации нейронной сети (
MLPClassifier
)
Минут три – предварительная обработка:
Перед тем, как мы готовы выполнить машинное обучение на наборе данных рака молочной железы, предварительная обработка данных сначала необходима. Мы начинаем с погрузки в наших данных и впоследствии сохраняя свойства массы груди (список списков, содержащих числовые значения), как атрибуты
И является ли масса груди злокачественной или доброкачественной (список 0 и 1-х), как этикетки
Отказ Содержимое каждого индекса каждого списка соответствует E.g. Масса груди с атрибутами на Атрибуты [0]
определяется как злокачественным, либо доброкачественным в этикетки [0]
Отказ
Далее мы разделим наши данные на тренировку (для тренировки нейронной сети) и тестирование (для тестирования наборов эксплуатации Neural Network). Учебный набор состоит из Attributes_Train
и Labels_Train
и набор тестирования состоит из атрибуты_тест
и label_test
Отказ Мы выделяем треть наших данных, установленных на наш набор тестирования, который следует, что оставшиеся две трети находятся в учебном наборе.
Минут четыре – нейронная сеть:
Теперь, когда наши данные были разделены на наборы тренировок и тестирования, мы готовы продолжить участие в нейронной сетевой части этого учебника! После создания многослойной нейронной сети PercePtron мы тренируем нашу нейронную сеть с нашим обучением, используя подходит
Функция, оценить точность нашей нейронной сети с Оценка
функция и распечатать точность.
Попробуйте запустить нервную сеть через терминал с python neururnetworktutorial.py
около 10 раз (он должен занимать секунду каждый раз) и обратите внимание на результаты!
Минута пять – оптимизация результатов:
Скорее всего, вы видите большие вариации производительности нейронной сети. Когда мы разделили наши данные на наборы тренировок и тестирования, данные перемешали с использованием случайных семян, что объясняет флуктуацию наших результатов; Имея только 569 записей в нашем наборе данных, нейронная сеть не всегда тренируется с помощью тренировочного набора (379 записями), который является представителем всего набора данных, вызывающих перенапряжение.
Более того, когда мы создали новую нейронную сеть с Neuralnet ()
В нашем коде мы оставили конструктор, что означало, что нейронная сеть была построена с параметрами по умолчанию, определенным Scikit - Учите
, ведущий к неоптимированной нейронной сети.
Мы можем зафиксировать это либо тренировкой, так и тестированием на более крупных данных, или изготав на нашу ситуацию, настраивая параметры набора данных.
Попытка последнего, я решил переключить решатель оптимизации веса из по умолчанию Адам
к lbfgs
, короче, потому что документация упоминает, что lbfgs
Выполняет лучшее на небольшом наборе данных. Я также изменил функцию активации в скрытом слое от RELU
к логистика
После некоторых экспериментов, и, наконец, столкнулся с Альфа
От 0,0001 до 10,0, чтобы предотвратить перенапряжение, что я подозревал, что причина ради резких колебаний в нашей точности по нескольким прогонам.
Это выглядит намного лучше! В точности все еще есть несколько провалов, но мы можем достичь гораздо более высокой точности последовательно с существенными меньшими каплями в точности на несколько прогонов. Корректировки, которые мы сделали, были простыми и основными, оставив комнату для получения дополнительной оптимизации, но это в другое время.
Заключение
То, что вы узнали, распространяются на любой набор данных, и любая реализация алгоритма обучения машины, найденная в Scikit - Учите
; Я решил продемонстрировать использование нейронной сети для прогнозирования рака молочной железы, потому что как вышеупомянутые темы в настоящее время являются большие интересные сферы в стволе.
Попытка другого алгоритма так же просто, как замена линий, которые импортируют и создают реализацию нейронной сети с помощью линий, импортирующих и создали различные алгоритмы, вроде так:
Существует множество онлайн-ресурсов для развития вашего понимания в машинном обучении и искусственном интеллекте, если у вас нет доступа к ним-личным курсам относительно вопросов предмета. Если много машинного обучения в этом руководстве посмотрел на ваш услышанный, не лада, Эта статья в аварийном курсе очень информативна Отказ Если этот учебник казался слишком высоким уровнем, я рекомендую t Его курс Курсера преподается Эндрю Нг То, что многие мои коллеги нашли полезными, которые сосредоточены на математике и теории позади машиностроения, а также реализации низкоуровневых.
Спасибо за чтение и не забывайте хлопать и следовать за мной на среднем для более технических ориентированных учебников и комментариев!
Также проверьте меня на Твиттер !