1.
Импорт и подготовка данных:
o Загружен датасет о заёмщиках (демографические и финансовые признаки).
o Целевая переменная: 0 — кредит не выдавать, 1 — выдавать.
o Данные разделены на 4 части: X_train, X_test (признаки) и y_train, y_test (правильные ответы). Модель обучается на y_train, а y_test используется только для оценки.
2.
Выбор и обучение алгоритмов:
o Импортированы три
класса: KNeighborsClassifier, LogisticRegression, RandomForestClassifier.
o Каждый алгоритм вызывается с параметрами по умолчанию (например, n_neighbors=5).
o Обучение происходит через метод fit(X_train, y_train).
3.
Оценка и предсказания:
o Метод predict(X_test) генерирует предсказания модели.
o Метрика accuracy_score(y_test, y_pred) вычисляет долю правильных ответов (в примере — 62% для KNeighbors).
4.
Ручной подбор гиперпараметров:
o Изменяли n_neighbors с 5 на 6 — точность выросла (локальный максимум).
o При значениях 7, 8, 10 — точность падала.
o Для логистической регрессии меняли max_iter, verbose, n_jobs — точность осталась ~64%.
o Для случайного леса меняли min_samples_split И min_samples_leaf — точность упала с 73% до 69%.
5.
Итоги и документация:
o Scikit-learn предоставляет единый интерфейс для сотен алгоритмов.
o Для глубокой настройки следует обращаться к официальной документации (User Guide, Tutorials).
1. Библиотека Scikit-learn позволяет быстро перебирать разные алгоритмы с минимальными изменениями кода (меняется только название класса).
2. Значения гиперпараметров по умолчанию — лишь отправная точка; без настройки модель может работать далеко не оптимально (например, 62% против 73%).
3. Ручной перебор параметров трудоёмок и не гарантирует глобального максимума — в дальнейшем необходим автоматический поиск (Grid Search, Random Search).
4. Случайный лес на этих данных показал лучшую точность «из коробки» (72–73%), что делает его хорошим кандидатом для старта.
5. Понимание внутреннего устройства алгоритма не обязательно для базового применения, но важно
для осмысленной настройки параметров (например, что такое min_samples_leaf).
1. Почему набор данных был разделён именно на 4 части, а не на 2? Какую роль играют ,X_train, y_train, X_test, y_test?
2. Что произойдёт с точностью модели k-ближайших соседей, если выбрать n_neighbors=1? А если n_neighbors=100? Почему?
3. В чём преимущество единого интерфейса fit/predict в Scikit-learn? Приведите пример, как бы вы обучили логистическую регрессию, заменив всего одну строчку кода.
4. Почему для случайного леса важно задавать random_state, а для логистической регрессии — не обязательно?
5. В тексте точность модели при n_neighbors=6 выше, чем при n_neighbors=5 и n_neighbors=10. Означает ли это, что 6 — всегда оптимальное число соседей для любых данных?
6. Какие ещё метрики качества (помимо accuracy_score) можно использовать для задачи кредитного скоринга и почему accuracy может быть недостаточно?