[Skillbox] Профессия Data Scientist - Machine Learning
Colab
Чтобы загрузить свой файл, можно добавить.
from google.colab import files
uploaded = files.upload()
import io
houses = pd.read_csv(io.BytesIO(uploaded['1.4_houses.csv']))
Появится окно выбора файла. Выбрать файл со своего компьютера.
Модуль 01
Обучение с учителем
Обучение без учителя
- Кластеризация colab
Модуль 02: Жизненный цикл проектов ML
Модуль 03: Линейная регрессия
-
Урок 2. - 3.3 Продвинутый уровень понимания линейной регрессии
- Mean Absolute Error (MAE) - сумма отклонений истинных значений y от предсказаний нашей модели. Потом мы эту сумму делим на количество точек - получаем среднюю ошибку. Метрика принимает только положительные значения! Чем ближе к нулю, тем лучше модель.
- Mean Squared Error (MSE) - Для каждого предсказанного значения y^ мы считаем квадрат отклонения от фактического значения и считаем среднее по полученным величинам. Метрика принимает только положительные значения! Чем ближе к нулю, тем лучше модель. (Если есть выбросы, лучше не применять)
-
R2 (coefficient of determination) Наилучшее возможное значение 1.0, чем меньше тем хуже.
- 3.8 Трансформация входных данных для линейной регрессии
Для борьбы с выбросами:
- Логарифмирование np.log
- Извлечение квадратного корня np.sqrt
Оба меняют абсолютные значения, но сохраняют порядок величин.
-
Standart Scaling (z-score normalization) - сглаживает данные, избавляет от выбросов.
-
min-max normalization. Переносит все точки на отерзок [0-1]
Модуль 04: Регуляризация
Регуляризация - способ борьбы с переобучением.
- Обучающую выборку разделяем на 2 части 80 / 20.
- Выбираем метрику качества модели (для регрессии, например, RMSE)
- Обучаем модель на тренировочном наборе данных
- Делаем предсказания на валидационном наборе данных и вычисляем метрику качества
Признак переобучения: Если качество на вилидации сильно хуже качества на обучающем сете.
Регуляризация в sklearn:
- Ridge
- Lasso
Оба принимают на вход параметр регуляризации alpha, который принимает значения от 0 до 1. Чем ближе к единице, тем регуляризация сильнее.
L2 регуляризация (также называют гребневой регрессией) - в целевую функцию добавляются квадраты коэффициентов регрессии. Если фичей мало, использовать ее.
L1 регуляризация (в sklearn.linear_model.Lasso) - добавляются модули весов. Если фичей много - сотни или тысячи рекомендуют использовать ее. Т.к. она обнулит фичи, которые значимыми не являются.
Выбрать правильное значение коэффициента регуляризации поможет процедура, которая называется “отложеннй контроль”.
В цикле выбираем разные варианты и выбираем тот который лучше.
Модуль 05: Алгоритм KNN
Модуль 06: Метрики качества классификации
С помощью Confusion Matrix (Матрица ошибок)
- Accuracy (Доля правильных ответов)
- Precision (Точность)
-
Recall (Полнота)
- F-мера
- Area Under Curve - Receiver Operating Characteristic Curve (AUC-ROC)
-
Logloss (Логистическая функция потерь)
-
OvA (One-versus-all) Один против всех
- 6.6 Домашняя работа
Модуль 07: Постановка ML задачи кластеризации
Используется когда кластеры линейно разделимы.
DBSCAN (Density-based spatial clustering of allications with noise - плотностной алгоритм пространственной кластеризации с присутствием шума).
Автоматически отсеиваит шумы (выбросы).
- Silhouette (Коэффициент силуэта) - используют, когда есть только сами объекты, а метки кластеров отсутствуют в обучающей выборке
-
AMI - используют, когда известны “истинные” метки кластеров
- 7.10 Домашняя работа
Модуль 08: Дополнительные техники: Снижение размерности
-
Principal Component Analysis (PCA) (метод главных компонент)
Singular Value Decompozition
Если размерность матриц небольшая (до 100 переменных) - применяется PCA, иначе SVD.
Используется, когда данные большой размерности и связи между переменными нелинейны
Модуль 09: Дополнительные техники классификации: Booksting
Ансамбли алгоритмов - метод, использующий одновременно несколько обучающих алгоритмов для получения лучшего результата по сравнению с результатами каждого из алгоритмов в отдельности.
Каждый следующий алгоритм строится, опираясь на объекты, неверно классифицированные предыдущими алгоритмами.
Обычно используются ансамбли обнородных базовых алгоритмов. (Обычно применяются деревья решений)
Обычно используются разнородные базовые алгоритмы.