Перейти к основному содержимому

Машинное обучение — итоги

Всем

Кратко — что стоит унести из раздела "Машинное обучение". Если пункт кажется туманным, откройте соответствующую главу или оглавление.


FAQ — Часто задаваемые вопросы

Типичные сбои и тупики, с которыми сталкиваются новички на первых проектах ML. Ниже — также формулировки из поиска ("как начать ML", "что такое random forest", "train test split"). Здесь — краткий ответ и ссылка на главу; определения для самопроверки — в чек-листе.

Вопрос. На train точность 99%, на test — 55%. Модель "гениальная" или сломана?

Ответ. Классическое переобучение: модель запомнила train, а не закономерность. Упростите модель, добавьте регуляризацию, проверьте утечку признаков. Подробнее здесь — глава 8, глава 6.

Вопрос. В CSV половина ячеек пустые — удалять строки или заполнять?

Ответ. Зависит от доли пропусков и смысла столбца: иногда удаление, иногда медиана/мода, иногда отдельный признак "был ли пропуск". Главное — одинаковая логика на train и test. Подробнее здесь — проект Melbourne, глава 4.

Вопрос. Столбец "город" — 800 уникальных значений. One-hot "взорвёт" таблицу.

Ответ. Для высокой кардинальности смотрят target encoding, группировку редких категорий в "Other" или модели, устойчивые к категориям (бустинг). Слепой get_dummies на весь справочник часто вреден. Подробнее здесь — глава 4.

Вопрос. Нормализовал весь датасет до split — метрика на test подозрительно высокая.

Ответ. Так вы подсмотрели статистику test в scaler. Считайте mean/std только на train, затем transform на val и test. Подробнее здесь — глава 6, глава 7.

Вопрос. Случайно оставил столбец с ценой "после сделки" в признаках — модель идеальна.

Ответ. Это утечка цели (target leakage): признак недоступен в момент прогноза. Уберите такие колонки до обучения и пересмотрите бизнес-логику фичей. Подробнее здесь — глава 7.

Вопрос. GridSearchCV крутится часами на ноутбуке — это нормально?

Ответ. Полный перебор на большой сетке и тяжёлом алгоритме долго. Сузьте сетку, уменьшите данные для черновика, используйте RandomizedSearch или меньше fold в CV. Подробнее здесь — глава 7.

Вопрос. Какой алгоритм выбрать первым — нейросеть или что-то проще?

Ответ. Для табличных данных стартуют с линейной модели, random forest или бустинга; нейросеть — когда простые базelines упёрлись или данные — изображения/текст. Подробнее здесь — глава 1, глава 10.

Вопрос. Kaggle Notebook работает, локально ModuleNotFoundError: sklearn.

Ответ. Разные окружения Python: создайте venv, pip install scikit-learn pandas, зафиксируйте версии в requirements. Подробнее здесь — глава 21, глава 5.

Вопрос. pandas.read_csv падает с MemoryError на Melbourne.

Ответ. Сначала загрузите подмножество столбцов (usecols), приведите типы (dtype), удалите лишнее до merge. Для гигабайтных файлов — chunksize или Polars. Подробнее здесь — глава 7.

Вопрос. Модель всегда предсказывает класс "0" — accuracy 95%, но бесполезна.

Ответ. При сильном дисбалансе классов accuracy обманчива. Смотрите precision/recall, F1, ROC-AUC, матрицу ошибок; применяйте class_weight или resampling. Подробнее здесь — глава 10, глава 1.

Вопрос. MAE и RMSE сильно различаются — какую метрику слушать?

Ответ. RMSE сильнее штрафует крупные ошибки; MAE — робастнее к выбросам. Выбирайте ту, что ближе к бизнес-штрафу (ошибка в рублях vs редкий провал). Подробнее здесь — глава 7, глава 10.

Вопрос. Melbourne: после dropna осталось 3 строки.

Ответ. Слишком агрессивная очистка по пересечению пропусков. Удаляйте по столбцам с высокой долей NA, impute остальное, проверяйте размер выборки после каждого шага. Подробнее здесь — глава 7.

Вопрос. Зачем validation, если уже есть test?

Ответ. Validation — для подбора гиперпараметров и ранней остановки; test трогают один раз в конце, иначе вы подгоняете под test незаметно. Подробнее здесь — глава 6.

Вопрос. k-fold каждый запуск даёт разный score при том же коде.

Ответ. Нужен фиксированный random_state в split, модели и CV. Без seed воспроизводимость пропадает — это нормально, но для отладки seed обязателен. Подробнее здесь — глава 6.

Вопрос. LabelEncoder на train+test вместе — почему плохо?

Ответ. Test попадает в статистику кодирования — утечка. Fit только на train, transform на val/test; для новых категорий в test нужна политика "unknown". Подробнее здесь — глава 4.

Вопрос. Дерево глубины 50 — train error 0, test ужасный.

Ответ. Глубокое дерево запоминает шум. Ограничьте max_depth, min_samples_leaf, используйте random forest или бустинг с регуляризацией. Подробнее здесь — глава 9, глава 8.

Вопрос. Feature importance говорит, что "id клиента" — главный признак.

Ответ. Скорее утечка или артефакт: id не должен быть признаком в проде. Удалите идентификаторы, даты "из будущего", сырые тексты без обработки. Подробнее здесь — глава 7.

Вопрос. Нужна ли математика уровня PhD, чтобы начать ML?

Ответ. Для первых проектов хватит логики, Python и метрик; формулы gradient descent приходят позже. Маршрут без тяжёлой математики — глава 21.

Вопрос. Supervised или unsupervised — как понять по задаче?

Ответ. Есть метка/цель (цена, класс) — supervised; нужно найти группы без меток — unsupervised; агент и награды — reinforcement. Подробнее здесь — глава 5.

Вопрос. Pipeline sklearn — зачем, если можно вызвать fit три раза?

Ответ. Pipeline склеивает препроцессинг и модель, чтобы на новых данных не забыть шаги и не утекать статистику. Критично для продакшена и CV. Подробнее здесь — глава 7, глава 10.

Вопрос. Скачал готовую модель с Hugging Face — это уже "мой ML"?

Ответ. Это transfer learning / inference: вы используете чужие веса; свой вклад — данные, fine-tuning, интеграция. Различайте обучение с нуля и дообучение. Подробнее здесь — глава 3.

Вопрос. Titanic на Kaggle — застрял на 78% accuracy.

Ответ. Проверьте feature engineering (семья, титул, возраст), кодирование категорий, CV вместо одного split. Плато часто лечится данными, а не сменой на "большую нейросеть". Подробнее здесь — глава 21, глава 4.

Вопрос. Random forest и gradient boosting — оба "лес", чем отличаются на практике?

Ответ. RF усредняет независимые деревья; бустинг строит деревья последовательно, исправляя ошибки предыдущих. Бустинг часто точнее на таблицах, но чувствительнее к шуму и настройке. Подробнее здесь — глава 1, глава 9.

Вопрос. Модель хорошо работает на прошлом году, на новых данных провалилась.

Ответ. Вероятен дрейф данных: распределение признаков или поведение пользователей изменились. Нужен мониторинг метрик и переобучение на свежей выборке. Подробнее здесь — глава 1, разработка ИИ.

Вопрос. Scikit-learn или PyTorch для регрессии цен на жильё?

Ответ. Для Melbourne и таблиц — scikit-learn (GradientBoosting, Pipeline, GridSearch). PyTorch — когда переходите к нейросетям и нестандартным архитектурам. Подробнее здесь — глава 10, глава 7.

Вопрос. Jupyter сохранил notebook, но графики пустые после перезапуска.

Ответ. Вывод не сохранён, пока не прогнали Run All после открытия. Для воспроизводимости выносите логику в .py и фиксируйте seed. Подробнее здесь — глава 21.

Вопрос. Что такое "три отделения" ML-стека из курса?

Ответ. Данные (pandas, очистка), инфраструктура (Jupyter, GPU, деплой), алгоритмы (sklearn, модели). Без первых двух алгоритм не доедет до прода. Подробнее здесь — глава 5.

Вопрос. Bias высокий, variance низкий — модель слишком простая?

Ответ. Скорее недообучение: добавьте признаки, усложните модель или уберите лишнюю регуляризацию. Баланс bias–variance — через val и упрощение/усложнение. Подробнее здесь — глава 8.

Вопрос. После раздела хочу одну "шпаргалку" алгоритмов — куда?

Ответ. Сводная таблица семейств и задач — глава 2; полный обзор цикла — глава 1.

Вопрос. Что такое машинное обучение простыми словами?

Ответ. Машинное обучение — когда программа находит закономерности в данных и строит прогноз, вместо того чтобы вы прописали каждое правило вручную. Подробнее здесь — глава 1.

Вопрос. Чем машинное обучение отличается от обычного программирования?

Ответ. В классическом коде вы задаёте алгоритм явно; в ML алгоритм учится на примерах (вход → ответ), а поведение определяют данные и метрика. Подробнее здесь — глава 1, введение в ИИ.

Вопрос. Как начать изучать машинное обучение с нуля?

Ответ. Базовый Python → Kaggle Learn → маршрут: категории MLкодирование признаковMelbourne. Подробнее здесь — глава 21.

Вопрос. Можно ли изучить machine learning без высшей математики?

Ответ. Для первых проектов достаточно логики, Python и метрик; линейная алгебра и производные пригодятся глубже. Старт без тяжёлой математики — глава 21.

Вопрос. Какой язык программирования нужен для машинного обучения?

Ответ. Python — стандарт: pandas, scikit-learn, PyTorch/TensorFlow. R и Julia встречаются в аналитике, но для новичка в курсе — Python. Подробнее здесь — глава 21, Python.

Вопрос. Python для машинного обучения — с чего начать установку библиотек?

Ответ. Создайте venv, установите pandas, scikit-learn, jupyter; для нейросетей позже — torch или tensorflow. Подробнее здесь — глава 5, глава 21.

Вопрос. Что такое обучение с учителем и обучение без учителя?

Ответ. Supervised — у каждого примера есть метка (цена, класс). Unsupervised — меток нет, ищут структуру (кластеры). Ещё есть reinforcement learning с наградами. Подробнее здесь — глава 5.

Вопрос. Что такое датасет, признаки и целевая переменная в ML?

Ответ. Датасет — таблица примеров; признаки (features) — входные столбцы; целевая переменная (target) — то, что предсказываем. Подробнее здесь — глава 1, проект Melbourne.

Вопрос. Train test split — зачем делить данные на обучающую и тестовую выборку?

Ответ. Модель учится на train; на test (который не видела при обучении) проверяют, как она работает на новых данных. Иначе метрика завышена. Подробнее здесь — глава 6.

Вопрос. Что такое переобучение overfitting в машинном обучении?

Ответ. Overfitting — модель идеально подстроилась под train и плохо обобщает на новые данные. Лечат упрощением модели, регуляризацией, больше данных, честным val. Подробнее здесь — глава 8.

Вопрос. Что такое random forest простыми словами?

Ответ. Random forest — много деревьев решений, каждое обучено на случайной подвыборке; ответ — голосование или среднее. Устойчив к шуму, хорош на таблицах. Подробнее здесь — глава 9, справочник алгоритмов.

Вопрос. Gradient boosting — что это и чем отличается от random forest?

Ответ. Gradient boosting строит деревья последовательно, каждое исправляет ошибки предыдущих (XGBoost, LightGBM, CatBoost). Random forest усредняет независимые деревья. Подробнее здесь — глава 1, Melbourne.

Вопрос. Что такое scikit-learn и для чего он нужен?

Ответ. Scikit-learn — главная библиотека классического ML на Python: регрессия, классификация, split, метрики, Pipeline, GridSearch. Подробнее здесь — глава 10.

Вопрос. Pandas в data science — зачем нужен для машинного обучения?

Ответ. Pandas загружает CSV, чистит пропуски, кодирует категории и готовит таблицу признаков перед sklearn. Без него первый pipeline на реальных данных почти не собрать. Подробнее здесь — глава 7, Pandas.

Вопрос. Как предсказать цену на квартиру с помощью machine learning?

Ответ. Это задача регрессии: признаки (район, комнаты, площадь) → цена. В курсе разобран сквозной пример Melbourne Housing с GradientBoosting и MAE. Подробнее здесь — глава 7.

Вопрос. Kaggle для начинающих — с чего начать?

Ответ. Микрокурсы Kaggle Learn, соревнование Titanic, затем регрессия Melbourne из раздела. Не гонитесь за топом лидерборда — цель понять pipeline. Подробнее здесь — глава 21.

Вопрос. Что такое feature engineering и зачем он нужен?

Ответ. Feature engineering — создание и отбор признаков (титул из имени, возраст из даты, биннинг площади), чтобы модели было проще найти закономерность. Подробнее здесь — глава 4, глава 7.

Вопрос. One-hot encoding — что это и когда применять?

Ответ. One-hot превращает категорию (тип дома, район) в столбцы 0/1 — без ложного порядка категорий. В pandas — get_dummies. Подробнее здесь — глава 4.

Вопрос. Что такое кросс-валидация k-fold?

Ответ. Данные делят на k частей; модель k раз учится, каждый раз другая часть — val. Так стабильнее оценка, чем один случайный split 70/30. Подробнее здесь — глава 6.

Вопрос. MAE и RMSE — в чём разница метрик регрессии?

Ответ. MAE — средняя абсолютная ошибка в тех же единицах, что цена; RMSE сильнее штрафует большие промахи. Для жилья в курсе используют MAE. Подробнее здесь — глава 7, глава 10.

Вопрос. Что такое transfer learning и дообучение готовой модели?

Ответ. Transfer learning — взять предобученные веса (ResNet, BERT) и доучить на своих данных вместо обучения с нуля. Экономит данные и GPU. Подробнее здесь — глава 3.

Вопрос. ML engineer — кто это и чем занимается?

Ответ. ML engineer строит pipeline обучения, выводит модель в прод, следит за метриками и дрейфом данных. Пересекается с data scientist и MLOps. Подробнее здесь — разработка ИИ, глава 5.

Вопрос. Data scientist и ML engineer — в чём разница?

Ответ. Data scientist чаще уходит в анализ, гипотезы и прототип; ML engineer — в продакшен, API, масштаб и мониторинг. На практике роли пересекаются. Подробнее здесь — аналитика данных, глава 5.

Вопрос. Соревнование Titanic на Kaggle — зачем его проходят новички?

Ответ. Классическая бинарная классификация на таблице: очистка, кодирование, baseline, метрика accuracy. Мостик к Melbourne и sklearn. Подробнее здесь — глава 21.

Вопрос. Линейная регрессия и логистическая регрессия — в чём разница?

Ответ. Линейная регрессия предсказывает число (цена). Логистическаявероятность класса (спам/не спам), несмотря на слово "регрессия". Подробнее здесь — глава 1, глава 2.

Вопрос. Нейросеть или scikit-learn для табличных данных?

Ответ. На таблицах чаще начинают с градиентного бустинга или random forest в sklearn; нейросеть имеет смысл при большом объёме, сложной нелинейности или мультимодальности. Подробнее здесь — глава 10, нейросети.


Как пользоваться этой страницей

Итоги работают в трёх режимах —

  1. Перед повторением — пробегите таблицу блоков и отметьте, какие главы нужно перечитать.
  2. После раздела — закройте подсказки и попробуйте пройти pipeline Melbourne на память (данные → split → модель → метрика).
  3. Перед Kaggle или стажировкой — сверьтесь с чек-листом и доберите слабые темы по ссылкам из таблицы.

Если формулировка "знакома, но объяснить не могу" — это сигнал вернуться в главу, а не "зубрить" итоги.


Что запомнить

Семь блоков раздела

БлокГлавная мысльГлава
СтартML без PhD — практика на Python и Kaggle Learn21
КатегорииSupervised / unsupervised / RL — от наличия метки и награды5
ПризнакиКатегории кодируют до модели; утечка убивает доверие к метрике4
Split & CVTrain / val / test — разные роли; seed для воспроизводимости6
End-to-endMelbourne — образец Pipeline + GridSearch + MAE7
Bias–varianceПере- и недообучение — диагноз по train vs val8
АлгоритмыДеревья, лес, бустинг — рабочая база до глубоких сетей9, 10

Три принципа, которые связывают темы

  1. Данные важнее алгоритма — чистые признаки и честный split часто побеждают "магическую" модель (7).
  2. Метрика следует за задачей — accuracy на дисбалансе, MAE vs RMSE на регрессии (10).
  3. Baseline сначала — линейная модель или дерево задают планку, которую должна обогнать сложная архитектура (1).

Частые путаницы

ПутаютНа самом делеГде повторить
Параметры и гиперпараметрыПараметры учатся на train; гиперпараметры выбирают на val5, 6
Validation и testVal — для настройки; test — финальная оценка один раз6
Признак и параметр моделиПризнак — вход; вес слоя — параметр, обновляемый при обучении1
ML и нейросетьНейросеть — подмножество ML; таблицы часто решают без DL1
Fit на всём датасетеПрепроцессинг fit только train6, 7

Куда идти дальше

ЦельРаздел
Нейрон, перцептрон, DLНейросети
LLM и APIМодели и инструменты
Деплой и мониторингРазработка ИИ
Pandas и EDAАнализ данных

Проверьте себя — Чек-лист самопроверки.


См. также

Другие статьи этого же раздела в боковом меню (как на странице "О разделе").