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

В этом уроке мы собираемся написать нашу первую программу машинного обучения!
Все, что вам нужно сделать, это установить некоторые программы.

2. Установка программного обеспечения (только для Windows)

«Если вы не ученый-исследователь или не работаете в огромной корпорации с большим бюджетом на исследования и разработки, вы обычно не внедряете алгоритмы машинного обучения самостоятельно. Вы используете библиотеки, большинство из которых с открытым исходным кодом. Библиотека — это набор алгоритмов и вспомогательных инструментов, реализованных с учетом стабильности и эффективности. Наиболее часто используемая на практике библиотека машинного обучения с открытым исходным кодом — Scikit-learn. Он написан на Python и C».

Прежде всего, на вашем компьютере должен быть установлен Python. Если нет, то установить его можно здесь: https://python.org/downloads/

Для других программ вы можете просто использовать pip. Для этого вам нужно открыть командную строку. Откройте окно поиска Windows и введите cmd. pip поставляется с предустановленным python, но если команда вам не подходит, вы можете установить ее здесь: https://pypi.org/project/pip/

Перед установкой библиотеки scikit-learn нам нужно установить numpy и scipy.
Для этого вы можете использовать

pip install numpy

и

pip установить scipy

И после этого,

pip install -U scikit Learn

Если эти программы уже установлены на вашем компьютере, вы будете проинформированы об этом. И теперь у нас все готово!

3. Написание вашей первой программы машинного обучения: основы кода

Если вы установили все свои программы, откройте Python IDLE.

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

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

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

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

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

4. Написание вашей первой программы машинного обучения: код

Первая строка кода

импортировать sklearn

Нам также нужно преобразовать функции и метки в числа.

особенности: [цвет, здоровье]

каждому цвету присвоим номер: зеленому — 0, желтому — 1, коричневому — 2,
и на здоровье скажем: здоровый — 0, сухой — 1

Итак, теперь у нас есть

функции = [[0, 0], [1, 0], [2, 1], [0, 1]]

Мы хотим обозначить каждую из этих функций

скажем, 0 для нового и 1 для старого
поэтому для [0, 0] или зеленого и здорового мы даем ему метку 0, что означает новый лист

метки = [0, 1, 1, 1]

Теперь мы определяем классификатор дерева решений.

clf= tree.DecisionTreeClassifier()

и введите пример данных

clf = clf.fit(функции, метки)

Если мы подаем новые данные, скажем, [1, 1], которые желтые и сухие, он должен напечатать 1.
И это действительно так, даже если этот пример не был включен в наши данные примера. Как это интересно!

Обратите внимание, что функции являются входными, а ярлыки — выходными.

И это всего шесть строк кода! Невероятный!

из дерева импорта sklearn

#features : [цвет, здоровье]
#color: green 0 | коричневый 1 | оранжевый 2
#health: здоровый 0| сухие 1
функции = [[0, 0], [1, 1], [2, 1], [0, 1]]

#новый 0 | старый 1
#зеленый → новый | оранжевый, коричневый → старые
ярлыки = [0, 1, 1, 1]

clf= tree.DecisionTreeClassifier()
clf = clf.fit(features, labels)
print(clf.predict([[1, 1]]))

4. Заключение

Итак, мы ясно видим потенциал машинного обучения. Мы не использовали в примере реальную картинку листьев, но такие программы уже есть и они работают!
http://www.ijfis.org/journal/view.html?doi=10.5391/IJFIS .2017.17.1.26
В заключение я хотел бы поблагодарить вас за то, что вы отправились со мной в это путешествие и погрузились в этот прекрасный мир машинного обучения. Надеюсь, мы встретимся снова в другом уроке. А пока, удачи!

Цитаты из «Стостраничной книги по машинному обучению» Андрея Буркова.