学机器学习就一定会看西瓜书~
1 绪论
机器学习是让计算机自动学习数据中的规律,并对未知数据进行预测的学科。主要研究的是“学习算法”,写程序让计算机自动学习。
假设空间:良好的拟合数据的线有很多条,这些线中哪个最好呢?这些线组成的空间叫假设空间。
NFL定理:“没有免费的午餐”定理,脱离实际问题,所有的学习算法的误差都一样(已经通过数学公式证明,1996年),因为它的前提是所有问题都同等重要。
所以学习算法的归纳偏好和问题是否匹配才是决定模型优劣的关键。归纳偏好是算法对某种类型假设的偏好 inductive bias(更喜欢选假设空间中的哪根线作为最优答案)。
数据挖掘与机器学习之间的关系:数据挖掘需要对数据进行管理和分析,管理需要数据库,分析需要机器学习+统计类知识。
2 模型评估与选择
评估方法:
判断有没有发生过拟合和欠拟合。
过拟合:把样本自身的特点当做所有潜在样本的一般性质。加入正则化惩罚项、特征降维。
欠拟合:学习能力低下。
为了证明没有发生过拟合:交叉验证,留一法,自主法(随机抽样)。
使用roc曲线:
Roc曲线 受试者工作特征曲线。只能用于二分类问题,横轴假阳率,纵轴真阳率。如果一个学习器的roc包住了另一个,该学习器性能就更好。
AUC面积,roc曲线下的面积,代表排序质量,正例放在反例前面的概率。(更好找到分割点)
性能度量:
误差:真实值和输出之间的差距,比如均方误差。
错误率与精度:错误率:错误输出/总输出。(精度就是1-错误率)
偏差(bias):表示模型精确性,期望和真实值之间的差距。
方差(variance):模型的稳定性,期望和每次实际输出的差距。
噪声:表达当前任务在任何学习算法上所能达到的期望的泛化误差的下界,即学习问题本身的难度。
精确度与召回率。(查准率和查全率,precision与recall)
精确度是指判断为正的事件中确实为正的概率。
召回率是指确实为正的样本中判断对的概率。
针对不同问题,两个率侧重不同。
垃圾邮件回收:precision
病人看病、推荐系统:多考虑recall。
混淆矩阵。
F1是recall和precision的调和平均。
得到了一些性能度量结果,然后对这些结果进行比较,如何比较呢?
比较检验:其中有很多检验模型
统计假设检验。针对单个学习器泛化性能的假设进行检验。
单个学习器测试错误率为很多个,求平均,然后假设测试错误率和泛化错误率是相同的。测试错误率是泛化错误率的采样。
H0原假设:你要否定的假设
H1备择假设:你要证明的假设
α显著水平:在定义上等于一类错误,弃真错误,h0为真,但是拒绝了它。
α一般取0.05,指的如果拒绝了原假设,有95%的把握说明原假设是不真的。
置信区间:样本的分布落在某个区间的概率为95%。
p-value:h0为真,出现比样本观测结果还要极端的结果的概率。如果非常小,那么说明出现概率低,但是出现了,证明拒绝h0.如果p-value比显著水平大只能说明,没有足够理由无法拒绝h0。
二类错误:取伪,h0为假,但是没有拒绝它。
一类错误比二类错误引发的问题更加严重,因为从稳健的思路来想,放走真的罪犯的错误比冤枉一个人的后果更加严重。
计算p-value需要查表,还要先标准化,没太搞清楚各种分布。后续再说~
针对不同学习器可以使用,交叉验证t检验…..等,这个部分囫囵吞枣的看了一些。都是和假设检验差不多的计算方式。
第三章 线性模型
线性回归、逻辑回归。LDA线性判别分析(相同类别投影尽可能近,不同类型尽可能的远。)
训练数据类别尽可能的平衡。有三种方法,使不平衡变平衡。欠采样,过采样,阈值移动(再缩放)。
再缩放:当数据平衡时,y/(1-y)>1 类型为正,不平衡的时候y/(1-y)>m+/m-,要想执行前一个式子进行决策时,实际执行后一个,只需要后一个式子两边同除以m+/m-就好啦!