Машинное обучение — итоги
Кратко — что стоит унести из раздела "Машинное обучение". Если пункт кажется туманным, откройте соответствующую главу или оглавление.
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.
Как пользоваться этой страницей
Итоги работают в трёх режимах —
- Перед повторением — пробегите таблицу блоков и отметьте, какие главы нужно перечитать.
- После раздела — закройте подсказки и попробуйте пройти pipeline Melbourne на память (данные → split → модель → метрика).
- Перед Kaggle или стажировкой — сверьтесь с чек-листом и доберите слабые темы по ссылкам из таблицы.
Если формулировка "знакома, но объяснить не могу" — это сигнал вернуться в главу, а не "зубрить" итоги.
Что запомнить
Семь блоков раздела
| Блок | Главная мысль | Глава |
|---|---|---|
| Старт | ML без PhD — практика на Python и Kaggle Learn | 21 |
| Категории | Supervised / unsupervised / RL — от наличия метки и награды | 5 |
| Признаки | Категории кодируют до модели; утечка убивает доверие к метрике | 4 |
| Split & CV | Train / val / test — разные роли; seed для воспроизводимости | 6 |
| End-to-end | Melbourne — образец Pipeline + GridSearch + MAE | 7 |
| Bias–variance | Пере- и недообучение — диагноз по train vs val | 8 |
| Алгоритмы | Деревья, лес, бустинг — рабочая база до глубоких сетей | 9, 10 |
Три принципа, которые связывают темы
- Данные важнее алгоритма — чистые признаки и честный split часто побеждают "магическую" модель (7).
- Метрика следует за задачей — accuracy на дисбалансе, MAE vs RMSE на регрессии (10).
- Baseline сначала — линейная модель или дерево задают планку, которую должна обогнать сложная архитектура (1).
Частые путаницы
| Путают | На самом деле | Где повторить |
|---|---|---|
| Параметры и гиперпараметры | Параметры учатся на train; гиперпараметры выбирают на val | 5, 6 |
| Validation и test | Val — для настройки; test — финальная оценка один раз | 6 |
| Признак и параметр модели | Признак — вход; вес слоя — параметр, обновляемый при обучении | 1 |
| ML и нейросеть | Нейросеть — подмножество ML; таблицы часто решают без DL | 1 |
| Fit на всём датасете | Препроцессинг fit только train | 6, 7 |
Куда идти дальше
| Цель | Раздел |
|---|---|
| Нейрон, перцептрон, DL | Нейросети |
| LLM и API | Модели и инструменты |
| Деплой и мониторинг | Разработка ИИ |
| Pandas и EDA | Анализ данных |
Проверьте себя — Чек-лист самопроверки.
См. также
Другие статьи этого же раздела в боковом меню (как на странице "О разделе"). Машинное обучение - идея обучения моделей на данных вместо полного ручного задания правил поведения системы. Табличный ML на Python — Pipeline, метрики, LinearRegression, LogisticRegression, RandomForest и GridSearchCV без утечки данных. > Справочник по алгоритмам (~40 разделов). Базовые понятия ML, метрики и практика — в статье Машинное обучение. Старт ML на Python — Kaggle Learn, маршрут по разделу, Titanic и Melbourne Housing без тяжёлой математики. Transfer learning, fine-tuning, multitask и federated learning — чем отличаются подходы, куда идут градиенты и когда что выбирать. Семь базовых техник преобразования категорий (цвет, размер, тип) в числа для моделей ML — one-hot, dummy, effect, label, ordinal, count и binary encoding. Четыре категории ML — supervised, unsupervised, semi-supervised и reinforcement; Q-обучение; три «отделения» инструментария — данные, инфраструктура, алгоритмы. Train, validation и test — пропорции 70/30, shuffle, stratify, k-fold, утечка данных и когда нужна validation-выборка. End-to-end pipeline — Melbourne Housing, очистка в pandas, GradientBoostingRegressor, MAE и GridSearchCV. Bias–variance tradeoff, недо- и переобучение, гиперпараметры как «ручки» модели и связь с MAE на train/test. Как строится дерево — энтропия, information gain, переобучение, бэггинг, random forest и градиентный бустинг для новичков. Чек-лист раздела «Машинное обучение» — вопросы для самопроверки.Машинное обучение
Scikit-learn — регрессия и классификация
Алгоритмы ИИ
Как начать с машинного обучения на Python без глубоких знаний математики
Обучение на базе готовой модели
Кодирование категориальных признаков
Категории обучения и стек инструментов
Разбиение данных и кросс-валидация
Сквозной проект — цены на жильё в Мельбурне
Смещение, дисперсия и переобучение
Деревья решений с нуля
Машинное обучение — чек-лист