AAAMLP 学习笔记

245 阅读2分钟

AAAMLP 1-10章

全书共有13章,笔者着重学习了前10章 (Setting up your working environment - Hyperparameter optimization)的内容,后4章的偏进阶,比如图像识别,自然语言处理;目前水平还不到进阶,因此,就前10章内容进行总结。

内容概括

重点内容包括:

  • ① 交叉验证;
  • ② 解决一个实际的机器学习问题(Kaggle比赛为例子)的步骤;
  • ③ 特征调优;

机器学习总分为两大类,一类是监督学习,一类是无监督学习;其中监督在分类问题中就是分类的结果,若在训练模型中有结果监督就是监督学习,反之就是无监督学习;以Kaggle中遇到的比赛为参考,笔者遇到的大多问题都是监督学习;

交叉验证 cross-validation

交叉验证的作用:①防止模型过拟合;②评估模型优劣;

两个可对比记忆的指标:AccuracyPrecision

  • Precision 需要预先了解

    TP,FP,TN,FN;真阳性,假阳性,真阴性,假阴性;
    P,F 指模型预测,T,F 指实际结果;

    引出 Recall = TPTP+FN\frac{TP} {TP+FN} 和 AUC

指标AccuracyPrecision
含义预测正确样本数总样本数\frac{预测正确样本数}{总样本数}TPTP+FP\frac{TP}{TP+FP}
优势简单易懂;补充Accuracy的劣势
劣势某些时候偏差极大,若分类结果不均匀,如查看X光片是否生病 = 生病 1: 不生病 9,就算是将样本全部预测为生病,Accuracy=90%,此时Accuracy就不适合;理解有难度
代码简示sklearn.metrics.accuracy_score()

AUC - Area Under the Curve,一个重要的评估指标; 补充中......

实际问题解决步骤

首先,针对分类问题,在Kaggle 平台:

  1. 观察结果的分布情况,如target 结果特征的分布情况,是否就平均分配;

  2. 根据分布情况选择 ①划分训练数据集,②交叉验证的评估指标;

    • 平均分布选择 kfold + accuracy;
    • 不平均分布选择 StratifiedKFold + AUC;
  3. 训练基本模型,如 Logistic Regression;

  4. 优化模型;

  5. 输出结果,并且提交。

其他补充,模型的种类(笔者使用过);

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 分数调优

参考资料