Моделирование без нормализации
Давайте посмотрим, как может пострадать точность модели, если строить её на данных без предварительной стандартизации.
В этом упражнении мы работаем с подмножеством набора данных wine. Один из столбцов — Proline — имеет значительно более высокую дисперсию по сравнению с остальными. Это типичный случай, когда на помощь приходит логарифмическая нормализация — о ней вы узнаете в следующем разделе.
Процесс обучения модели в scikit-learn уже должен быть вам знаком, поэтому не будем останавливаться на нём подробно. У вас уже есть модель k ближайших соседей (knn), а также наборы X и y, необходимые для обучения и оценки.
Это упражнение является частью курса
Предобработка данных для машинного обучения на Python
Инструкции к упражнению
- Разделите наборы
Xиyна обучающую и тестовую выборки, обеспечив равномерное распределение меток классов в обеих частях. - Обучите модель
knnна обучающих признаках и метках. - Выведите точность модели
knnна тестовой выборке с помощью метода.score().
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Split the dataset into training and test sets
X_train, X_test, y_train, y_test = ____(____, ____, stratify=____, random_state=42)
knn = KNeighborsClassifier()
# Fit the knn model to the training data
knn.____(____, ____)
# Score the model on the test data
print(knn.____(____))