Обучение и предсказание
Часть раздела Обучение с учителем путешествия по Machine Learning на Coddy. Урок 3 из 58.
Каждая модель scikit-learn работает с помощью двух вызовов. fit изучает обучающие строки и их метки; predict присваивает метки строкам, которые модель никогда не видела:
Модель из первого урока этого путешествия — метод k ближайших соседей: она присваивает строке метку, как у ближайших к ней обучающих строк. Домашние животные по весу (кг) и длине ушей (см):
from sklearn.neighbors import KNeighborsClassifier
X_train = np.array([[4, 6], [5, 7], [3, 5], [30, 10], [25, 12], [35, 11]])
y_train = np.array(["cat", "cat", "cat", "dog", "dog", "dog"])
model = KNeighborsClassifier()
model.fit(X_train, y_train)
print(model.predict([[6, 6], [28, 11]]))Это выводит ['cat' 'dog']. Новые строки добавляются в виде таблицы, по одной строке на питомца.
Создать, обучить, предсказать: каждая модель в этом разделе следует этим трём шагам.
Задание
ЛегкоПриложение клуба любителей наблюдения за птицами определяет названия птиц по размаху крыльев и весу. Стартовый код разделяет данные клуба из birds.csv и считывает птиц сегодняшней прогулки в таблицу spotted.
- Создай модель k-ближайших соседей и обучи её на тренировочных данных о птицах.
- Предскажи виды всех замеченных птиц за один вызов.
- Выведи по одной строке для каждой птицы, как показано ниже.
Для трёх птиц во время другой прогулки:
Bird 1: sparrow
Bird 2: blackbird
Bird 3: robinПопробуйте сами
import pandas as pd
from sklearn.model_selection import train_test_split
# По одной строке на каждую птицу, которую определил клуб: размах крыльев в см, вес в граммах
birds = pd.read_csv("birds.csv")
X = birds[["wingspan_cm", "weight_g"]]
y = birds["species"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
# Сегодняшняя вечерняя прогулка: сначала количество птиц, затем размах крыльев и вес каждой
count = int(input())
spans = []
weights = []
for i in range(count):
spans.append(float(input()))
weights.append(float(input()))
spotted = pd.DataFrame({"wingspan_cm": spans, "weight_g": weights})
# Напишите свой код ниже
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Обучение с учителем
1Ваша первая модель
Обучение на примерахОбучающая и тестовая выборкиОбучение и предсказаниеОценка моделиПовторение: сортировщик семян4Логистическая регрессия
Предсказания «да» или «нет»Порог принятия решенияВеса как свидетельстваНесколько классовПовторение: спам-фильтр2Метод ближайших соседей
Как работает k-NNВыбор kГраницы принятия решенийМасштабирование признаков для поиска соседейПовторение: соседи для вин5Оценка классификаторов
Матрица ошибокТочность и полнотаF1-мераНесбалансированные классыROC-кривыеПовторение: скрининговый тест8Кросс-валидация
K-блочная проверкаСправедливое сравнение моделейПоиск по сеткеПовторение: ремонт скейтбордов11Проект: виды пингвинов
Знакомство с пингвинамиПодготовка данныхВыбор моделиНастройка лучшей моделиЗапуск моделиПотренируйтесь самостоятельно: Онлайн-компилятор Python