AAAMLP 1-10章
全书共有13章,笔者着重学习了前10章 (Setting up your working environment - Hyperparameter optimization)的内容,后4章的偏进阶,比如图像识别,自然语言处理;目前水平还不到进阶,因此,就前10章内容进行总结。
内容概括
重点内容包括:
- ① 交叉验证;
- ② 解决一个实际的机器学习问题(Kaggle比赛为例子)的步骤;
- ③ 特征调优;
机器学习总分为两大类,一类是监督学习,一类是无监督学习;其中监督在分类问题中就是分类的结果,若在训练模型中有结果监督就是监督学习,反之就是无监督学习;以Kaggle中遇到的比赛为参考,笔者遇到的大多问题都是监督学习;
交叉验证 cross-validation
交叉验证的作用:①防止模型过拟合;②评估模型优劣;
两个可对比记忆的指标:Accuracy,Precision;
-
Precision 需要预先了解
TP,FP,TN,FN;真阳性,假阳性,真阴性,假阴性;
P,F 指模型预测,T,F 指实际结果;引出 Recall = 和 AUC
| 指标 | Accuracy | Precision |
|---|---|---|
| 含义 | ||
| 优势 | 简单易懂; | 补充Accuracy的劣势 |
| 劣势 | 某些时候偏差极大,若分类结果不均匀,如查看X光片是否生病 = 生病 1: 不生病 9,就算是将样本全部预测为生病,Accuracy=90%,此时Accuracy就不适合; | 理解有难度 |
| 代码简示 | sklearn.metrics.accuracy_score() |
AUC - Area Under the Curve,一个重要的评估指标; 补充中......
实际问题解决步骤
首先,针对分类问题,在Kaggle 平台:
-
观察结果的分布情况,如
target结果特征的分布情况,是否就平均分配; -
根据分布情况选择 ①划分训练数据集,②交叉验证的评估指标;
- 平均分布选择
kfold + accuracy; - 不平均分布选择
StratifiedKFold + AUC;
- 平均分布选择
-
训练基本模型,如
Logistic Regression; -
优化模型;
-
输出结果,并且提交。
其他补充,模型的种类(笔者使用过);
import xgboost as xgb from sklearn import tree, ensemble, linear_model linear_model.LogisticRegression(), tree.DecisionTreeClassifier(), ensemble.RandomForestClassifier(n_jobs=-1), xgb.XGBClassifier(n_jobs=-1, max_depth=7, n_estimators=200)
特征
关于特征,onehot特征,特征的增删,
Kaggle参考笔记,并没有提升分数 补充中......
还未解决的问题
- AUC的指标 - 含义,来源,作用
- 关于特征,onehot编码特征,其他编码形式,特征的增删,
- Kaggle 分数调优