Supervised ML in Practice: Tips & Tricks
-
Upload
dzianis-pirshtuk -
Category
Science
-
view
186 -
download
7
Transcript of Supervised ML in Practice: Tips & Tricks
![Page 1: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/1.jpg)
Денис Пирштук
Supervised MLin Practice: Tips & Tricks
![Page 2: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/2.jpg)
2 Что такое машинное обучение и Data Science?
![Page 3: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/3.jpg)
3
Обучение с учителем: типы задач
• Бинарная классификация (письмо/спам)
• Классификация (собака, кошка, мышь)
• Регрессия (курс доллара)
• Ранжирование (поисковая выдача)
![Page 4: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/4.jpg)
Задача: Конкурс ОТП Банка 2011Предсказание отклика клиентов банкана маркетинговую кампанию
Главная страница конкурса: http://bit.ly/1DPWwG2
![Page 5: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/5.jpg)
5
Примеры входных данных (признаков)
• Бинарные– наличие в собственности квартиры
– адрес регистрации и адрес фактического пребывания совпадают
– наличие в собственности автомобиля российского производства :-)
• Числовые– возраст клиента
– личный доход (в рублях)
– количество месяцев проживания по месту фактического пребывания
– сумма последнего кредита клиента (в рублях)
• Категориальные– отрасль работы клиента– должность– семейное положение
![Page 6: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/6.jpg)
6
Какую метрику выбрать?
• Чувствительность (sensitivity, recall rate) – доля найденных классификатором «1» из всех «1».
• Точность (precision) – доля истинных «1» из всех предсказанных «1».
• Специфичность (specificity, false positive rate) – доля предсказанных «1» из всех «0».
• F1 = 2 * recall * precision / (precision + recall).
![Page 7: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/7.jpg)
7
ROC AUC (площадь под кривой ошибок)
ROC = Receiver operating characteristic
http://en.wikipedia.org/wiki/Receiver_operating_characteristic
![Page 8: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/8.jpg)
8
Результаты (2011)
Место AUC
1 0.6935
2 0.6895
3 0.6865
4 0.6835
5 0.6780
6 0.6725
7 0.6706
8 0.6580
9 0.6455
10 0.6380
![Page 9: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/9.jpg)
9
Метод опорных векторов (SVM)
![Page 10: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/10.jpg)
10
SVM: преобразование пространства
https://www.dtreg.com/solution/view/20
![Page 11: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/11.jpg)
11
Переобучение SVM
![Page 12: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/12.jpg)
Переобучение: пример
Higgs Boson Machine Learning Challenge
http://www.kaggle.com/c/higgs-boson
![Page 13: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/13.jpg)
13 Переобучение в конкурсе Higgs Boson
![Page 14: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/14.jpg)
14
SVM: качество в конкурсе ОТП БанкаC Train AUC Test AUC
0.05 0.68866 0.65710
0.5 0.74619 0.66544
1.0 0.77207 0.66102
3.0 0.81860 0.64397
7.0 0.85313 0.63001
![Page 15: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/15.jpg)
15
SVM: качество в конкурсе ОТП БанкаC Train AUC Test AUC Количество
опорных вект.
0.05 0.68866 0.65710 13608
0.5 0.74619 0.66544 12262
1.0 0.77207 0.66102 11988
3.0 0.81860 0.64397 11500
7.0 0.85313 0.63001 11013
![Page 16: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/16.jpg)
16
Наивный Байес: качество в конкурсе
from sklearn.naive_bayes import GaussianNBgnb = GaussianNB().fit(X_scaled, y)
from sklearn.naive_bayes import BernoulliNBbnb = BernoulliNB().fit(X_scaled, y)
• GaussianNB– Train AUC: 0.64978– Test AUC: 0.64447
• BernoulliNB– Train AUC: 0.65662– Test AUC: 0.65017
![Page 17: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/17.jpg)
Решающие деревья и бустинг
![Page 18: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/18.jpg)
18
Решающие деревья
from sklearn.tree import DecisionTreeClassifierdtc = DecisionTreeClassifier(max_depth=2)dtc.fit(X, y)print roc_auc_score(y, dtc.predict_proba(X)[:,1])print roc_auc_score(answers, dtc.predict_proba(X_test)[:,1])
–Train AUC: 0.60553–Test AUC: 0.59706
![Page 19: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/19.jpg)
19
Bagging (Bootstrap aggregating)
Classification tree + bagging + random subspace method = RandomForestClassifier
• For max_depth=8 – Train AUC: 0.82832– Test AUC: 0.68455
• For max_depth=None (unlimited)– Train AUC: 1.0– Test AUC: 0.66077
from sklearn.ensemble import RandomForestClassifierrfc = RandomForestClassifier(n_estimators=400, max_depth=8, max_features=17, n_jobs=-1, random_state=1).fit(X, y)
![Page 20: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/20.jpg)
20
Важность признаковПризнак Важность
PERSONAL_INCOME 0.113595
AGE 0.094166
FST_PAYMENT 0.091336
CREDIT 0.082360
WORK_TIME 0.078107
FACT_LIVING_TERM 0.075747
LOAN_NUM_PAYM 0.053088
TERM 0.047470
LOAN_AVG_DLQ_AMT 0.046917
LOAN_MAX_DLQ_AMT 0.043202
sorted(zip(rfc.feature_importances_, real_features, ), reverse=True)
![Page 21: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/21.jpg)
21
AdaBoost
–Train AUC: 0.72852
–Test AUC: 0.68854
from sklearn.ensemble import AdaBoostClassifierada = AdaBoostClassifier(n_estimators=500, learning_rate=0.5).fit(X, y)
![Page 22: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/22.jpg)
22
Стохастический градиентный бустинг
![Page 23: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/23.jpg)
23
XGBoost (eXtreme Gradient Boosting)
• https://github.com/tqchen/xgboost
• Apache License 2.0
• Generalized linear and regression tree boosters
• «Быстрый старт» для задач классификации, регрессии, ранжирования
• Обертки для Python, R, Julia
• Hadoop & MPI-версии (distributed version)– Column-based data splitter – разбиение на узлы по колонкам
– Row-based data splitter – разбиение на узлы по строкам
![Page 24: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/24.jpg)
24
Настройка (eta = 0.02, subsample=1.)
![Page 25: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/25.jpg)
25
Настройка (eta = 0.005, subsample=1.0)
![Page 26: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/26.jpg)
26
Настройка (eta = 0.005, subsample=0.4)
![Page 27: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/27.jpg)
27
Категориальные признаки
• Стратегия 1: заменить категории на доли «1» в ней
• Стратегия 2: заменить категориальные признак из N возможных значений на N бинарных
![Page 28: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/28.jpg)
28
Настройка (eta = 0.005, subsample=0.3)
![Page 29: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/29.jpg)
29
Результат
–Train AUC: 0.7908–Test AUC: 0.7031
import xgbparams = {'max_depth': 5, 'eta': 0.005, 'subsample': .3, 'silent': 0, 'objective': 'binary:logistic', 'min_child_weight': 1, 'seed': 1234, 'eval_metric': 'auc'}
dtrain = xgb.DMatrix(X, y, missing=-9999.)bst = xgb.train(params, dtrain, num_boost_round=1300)
![Page 30: Supervised ML in Practice: Tips & Tricks](https://reader033.fdocuments.us/reader033/viewer/2022051617/55a529f51a28ab88678b45d8/html5/thumbnails/30.jpg)
30
Data Science != Аналитика
Традиция:
Human readable output
https://hbr.org/2014/08/the-question-to-ask-before-hiring-a-data-scientist/
Data Science:
Machine readable output