На этом шаге мы рассмотрим порядок шагов, выполняемых для прогнозирования.
Теперь мы можем получить прогнозы, применив эту модель к новым данным, по которым мы еще не знаем правильные метки. Представьте, что мы нашли в дикой природе ирис с длиной чашелистика 5 см, шириной чашелистика 2.9 см, длиной лепестка 1 см и шириной лепестка 0.2 см. К какому сорту ириса нужно отнести этот цветок? Мы можем поместить эти данные в массив NumPy, снова вычисляя форму массива, т.е. количество примеров (1), умноженное на количество признаков (4):
[In 21]: X_new = np.array([[5, 2.9, 1, 0.2]]) print("форма массива X_new: {}".format(X_new.shape)) форма массива X_new: (1, 4)
Обратите внимание, что мы записали измерения по одному цветку в двумерный массив NumPy, поскольку scikit-learn работает с двумерными массивами данных.
Чтобы сделать прогноз, мы вызываем метод predict объекта knn:
[In 22]: prediction = knn.predict(X_new) print("Прогноз: {}".format(prediction)) print("Спрогнозированная метка: {}".format(iris_dataset['target_names'][prediction])) Прогноз: [0] Спрогнозированная метка: ['setosa']
Наша модель предсказывает, что этот новый цветок ириса принадлежит к классу 0, что означает сорт setosa. Но как узнать, можем ли мы доверять нашей модели? Правильный сорт ириса для этого примера нам неизвестен, а ведь именно получение правильных прогнозов и является главной задачей построения модели!
На следующем шаге мы рассмотрим оценку качества модели.