Повторение: очистка данных и прогнозирование
Часть раздела Обучение с учителем путешествия по Machine Learning на Coddy. Урок 49 из 58.
Задание
СреднеКакие участники лагеря вернутся? В camp.csv смешаны слова, числа и пропуски; стартовый код разделяет данные и считывает данные об участнике лагеря.
- Постройте полный конвейер из главы: выполните one-hot-кодирование для
cabinиactivity, создайте для чисел последовательность обработки, которая заполняет пропуски медианами, а затем масштабирует значения, и завершите логистической регрессией. - Выведите точность CV с 5-кратной проверкой на обучающих строках, среднее и стандартное отклонение.
- Обучите модель на обучающих строках; выведите точность на тестовых данных и вероятность возвращения участника лагеря.
Другой лагерь, участник лагеря 10, lakeside, archery, 21, -, 4:
CV accuracy: mean 0.707, std 0.065
Test accuracy: 0.740
Chance of coming back: 0.91Тире обозначает пропущенную оценку: ваш конвейер заполнит её так же, как и любой другой пропуск.
Попробуйте сами
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.compose import ColumnTransformer
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import OneHotEncoder, StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import make_pipeline
# Отдыхавшие в лагере прошлым летом: вернулись ли они в этом году (1) или нет (0)?
campers = pd.read_csv("camp.csv")
X = campers.drop(columns="came_back")
y = campers["came_back"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
# Новый отдыхающий: по одному ответу в строке; прочерк (-) означает отсутствующее число
answers = []
for i in range(6):
answers.append(input())
numbers = []
for i in [0, 3, 4, 5]:
if answers[i] == "-":
numbers.append(np.nan)
else:
numbers.append(float(answers[i]))
camper = pd.DataFrame({"age": [numbers[0]], "cabin": [answers[1]], "activity": [answers[2]],
"nights": [numbers[1]], "rating": [numbers[2]], "friends_made": [numbers[3]]})
# Напишите свой код ниже
Все уроки раздела Обучение с учителем
1Ваша первая модель
Обучение на примерахОбучающая и тестовая выборкиОбучение и предсказаниеОценка моделиПовторение: сортировщик семян4Логистическая регрессия
Предсказания «да» или «нет»Порог принятия решенияВеса как свидетельстваНесколько классовПовторение: спам-фильтр7Переобучение
Недообучение и переобучениеКривые обученияРегуляризацияПроверочные выборкиПовторение: настройка дерева10Конвейеры
КонвейерыСмешанные столбцыЗаполнение пропусков в конвейереНастройка конвейераПовторение: очистка данных и прогнозирование2Метод ближайших соседей
Как работает k-NNВыбор kГраницы принятия решенийМасштабирование признаков для поиска соседейПовторение: соседи для вин5Оценка классификаторов
Матрица ошибокТочность и полнотаF1-мераНесбалансированные классыROC-кривыеПовторение: скрининговый тест8Кросс-валидация
K-блочная проверкаСправедливое сравнение моделейПоиск по сеткеПовторение: ремонт скейтбордов11Проект: виды пингвинов
Знакомство с пингвинамиПодготовка данныхВыбор моделиНастройка лучшей моделиЗапуск моделиПотренируйтесь самостоятельно: Онлайн-компилятор Python