Шаг 24.
Введение в машинное обучение с использованием Python. Введение. Первый пример... . Построение первой модели: выводы и перспективы

    На этом шаге мы подитожим рассмотренное в предыдущих шагах.

    Давайте подытожем то, чему мы научились в предыдущих шагах. Мы начали с краткого введения в машинное обучение и сфер его применения, затем обсудили различие между обучением с учителем и обучением без учителя и дали краткий обзор инструментов, которые мы будем использовать в дальнейшем. Затем мы сформулировали задачу классификации ирисов на основе проведенных измерений характеристик цветов. Мы использовали набор данных, в котором эксперт уже предварительно классифицировал ирисы для построения модели, таким образом, мы решали задачу обучения с учителем. Было три возможных сорта ирисов - setosa, versicolor и virginica, что делало нашу задачу задачей 3-классовой классификации. В задаче классификации возможные сорта ирисов называются классами (classes) а сами названия сортов - метками (labels).

    Набор данных Iris состоит из двух массивов NumPy: один содержит данные и в scikit-learn обозначается как X, другой содержит правильные или нужные ответы и обозначается как у. Массив Х представляет собой двумерный массив признаков, в котором одна строка соответствует одной точке данных, а один столбец - одному признаку. Массив у представляет собой одномерный массив, который для каждого примера содержит метку класса, целое число от 0 до 2.

    Мы разделили наш набор данных на обучающий набор (training set), чтобы построить нашу модель, а также тестовый набор (test set), чтобы оценить, насколько хорошо наша модель будет классифицировать новые, ранее незнакомые ей данные.

    Мы выбрали алгоритм классификации k ближайших соседей, который генерирует прогноз для новой точки данных, рассматривая ее ближайшего соседа(ей) в обучающем наборе. Все это реализовано в классе KNeighborsClassifier, который содержит алгоритм, строящий модель, а также алгоритм, который дает прогнозы, используя построенную модель. Мы создали объект-экземпляр класса, задав параметры. Затем мы построили модель, вызвав метод fit и передав обучающие данные (X_train) и обучающие ответы (y_train) в качестве параметров. Мы оценили качество модели с использованием метода score, который вычисляет правильность модели. Мы применили метод score к тестовым данным и тестовым ответам и обнаружили, что наша модель демонстрирует правильность около 97%. Это означает, что модель выдает правильные прогнозы для 97% наблюдений тестового набора.

    Это убедило нас в том, что модель можно применить к новым данным (в нашем примере это измерения характеристик новых цветов), и мы надеемся, что эта модель даст правильные прогнозы в 97% случаев.

    Ниже приводится краткое изложение программного кода, необходимого для всей процедуры обучения и оценки модели:

[In 26]:
X_train, X_test, y_train, y_test = train_test_split(iris_dataset['data'], 
        iris_dataset['target'], random_state=0)
knn = KNeighborsClassifier(n_neighbors=1)
knn.fit(X_train, y_train)
print("Правильность на тестовом наборе: {:.2f}".format(knn.score(X_test, y_test))) 
Правильность на тестовом наборе: 0.97
Архив блокнота со всеми приведенными вычислениями можно взять здесь.

    Этот фрагмент содержит базовый код, необходимый для применения любого алгоритма машинного обучения с помощью scikit-learn. Методы fit, predict и score являются общими для моделей контролируемого обучения в scikit-learn и, используя принципы, приведенные в этих шагах, вы можете применить эти модели для решения различных задач машинного обучения. В следующих шагах мы подробнее рассмотрим различные модели машинного обучения с учителем, имеющиеся в scikit-learn, и расскажем, как успешно применять их.

    Со следующего шага мы начнем рассматривать методы машинного обучения с учителем.




Предыдущий шаг Содержание Следующий шаг