Рубрики
Без рубрики

Как программировать нейронную сеть для прогнозирования рака молочной железы всего за 5 минут

Автор оригинала: FreeCodeCapm Team.

Эндрю Ли

Это так просто.

Минут одно – введение:

Это учебное пособие высокого уровня, предназначенное для тех новых для изучения машинного и искусственного интеллекта и предполагает, что у вас есть:

  1. Либо Python 2 или 3 установлен
  2. По крайней мере, опыт кодирования на новичке
  3. 5 минут

Этот учебник пропустит низкоуровневые, математические детали нейронных сетей и сосредоточиться на получении нейронной сети, чтобы прогнозировать рак молочной железы всего за 5 минут!

Мы будем использовать реализацию нейронной сети от Scikit - Учите Библиотека для прогнозирования того, имеет ли у кого-то рак молочной железы, используя данные с набора данных DACH CANCONCINCIN CANCONCION. Свойства клеток ядер (например, текстура или область) для массы груди будет вводить в нейронную сеть, а затем предсказание того, злонаправлена ли масса или доброкачественная, будет выводиться на нейронной сети.

Минута два – Начало работы:

Если у вас нет Scikit - Учите Установлен пока, запустите Пип Установите Scikit - Учите в вашем терминале. Что должно обрабатывать установку Scikit - Учите И все обязательные библиотеки, которые нам понадобится.

Откройте IDE или редактор и создайте пустой файл под названием Neuralnet.py или имя, которое вы предпочитаете. Далее мы импортируем реализацию нейронной сети, набор данных рака молочной железы и функцию для разделения наших данных в наборы обучения и тестирования для подачи в нашу нейронную сеть.

Для справки, когда мы идем, здесь уместно Scikit - Учите документация:

  1. Документация для набора данных рака молочной железы ( load_breast_cancer. )
  2. Документация для функции предварительной обработки ( rain_test_split. )
  3. Документация для реализации нейронной сети ( 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 Его курс Курсера преподается Эндрю Нг То, что многие мои коллеги нашли полезными, которые сосредоточены на математике и теории позади машиностроения, а также реализации низкоуровневых.

Спасибо за чтение и не забывайте хлопать и следовать за мной на среднем для более технических ориентированных учебников и комментариев!

Также проверьте меня на Твиттер !