Несколько признаков
Часть раздела Обучение с учителем путешествия по Machine Learning на Coddy. Урок 12 из 58.
Цена дома зависит не только от площади: долгая прогулка до станции снижает её. Обучаясь на обоих факторах, модель проводит параллельные линии:
В коде X получает оба столбца, а coef_ — один вес для каждого признака:
X = houses[["area_m2", "minutes_walk"]]
model = LinearRegression()
model.fit(X, houses["price"])
print(np.round(model.coef_, 1))Это выводит:
[ 2.6 -5.1]Веса соответствуют столбцам X. Каждый дополнительный м² добавляет 2.6 тысячи долларов; каждая дополнительная минута ходьбы уменьшает цену на 5.1 тысячи долларов, если значение другого признака не меняется.
Единица измерения веса — это единица целевого показателя на единицу его признака: тысячи на м², на минуту.
Задание
СреднеКейтеринг рассчитывает стоимость новых мероприятий на основе 40 прошлых, записанных в events.csv: guests, courses, months_ahead (за сколько времени до мероприятия его забронировали) и cost в долларах. Стартовый код считывает данные о новом мероприятии в new_event.
- Обучи модель
LinearRegression, предсказывающую стоимость по признакамfeatures. - Для каждого признака выведи, насколько увеличится или уменьшится стоимость при увеличении его значения на единицу (2 знака после запятой).
- Выведи стоимость нового мероприятия (2 знака после запятой).
Для другого кейтеринга:
Each extra guest adds 41.5 dollars
Each extra course adds 198.25 dollars
Each extra month booked ahead takes off 22.8 dollars
Quote: 4312.6 dollarsПопробуйте сами
import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
# Одна строка на каждое прошедшее мероприятие: количество гостей, количество блюд, число месяцев до мероприятия на момент бронирования, стоимость в долларах
events = pd.read_csv("events.csv")
features = ["guests", "courses", "months_ahead"]
units = ["guest", "course", "month booked ahead"]
# Новое мероприятие в виде таблицы с одной строкой
guests = int(input())
courses = int(input())
months = int(input())
new_event = pd.DataFrame({"guests": [guests], "courses": [courses], "months_ahead": [months]})
# Напишите свой код ниже
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Обучение с учителем
1Ваша первая модель
Обучение на примерахОбучающая и тестовая выборкиОбучение и предсказаниеОценка моделиПовторение: сортировщик семян4Логистическая регрессия
Предсказания «да» или «нет»Порог принятия решенияВеса как свидетельстваНесколько классовПовторение: спам-фильтр2Метод ближайших соседей
Как работает k-NNВыбор kГраницы принятия решенийМасштабирование признаков для поиска соседейПовторение: соседи для вин5Оценка классификаторов
Матрица ошибокТочность и полнотаF1-мераНесбалансированные классыROC-кривыеПовторение: скрининговый тест8Кросс-валидация
K-блочная проверкаСправедливое сравнение моделейПоиск по сеткеПовторение: ремонт скейтбордов11Проект: виды пингвинов
Знакомство с пингвинамиПодготовка данныхВыбор моделиНастройка лучшей моделиЗапуск модели3Линейная регрессия
Предсказание чиселНесколько признаковОценка ошибокГрафики остатковПовторение: прокат велосипедовПотренируйтесь самостоятельно: Онлайн-компилятор Python