数据特征决定模型结果的上限,而模型的优化不过是在逼近这个上限
如果某一列数值特别大,模型可能会不精确,比如误认为这一列数据特别重要。
特征标准化
特征标准化就是希望数据在处理后,每个特征的数值在同一范围内浮动
零均值归一化
常用标准化方法,原始数据-原始数据均值,再除以原始数据标准差。
首先,减去均值,数据就以原点为中心对称了。
将与均值的差与标准差做比,就是让数据压缩到较小的空间中。
线性函数归一化
对原始数据进行线性变换,使结果映射到【0,1】范围内,实现对原始数据的等比缩放。
数据归一化并不是万能的。实际应用中,**通过梯度下降法求解的模型通常需要归一化,**像线性回归,逻辑回归,SVM, NN。决策树就不需要,C4.5的信息增益率就和是否归一化无关。
模型评估
交叉验证
把宝贵的测试集留着。
把训练集切成多份,其中一份当作验证集,剩下的做训练集。
同时为了避免某份验证集有错误点或离群点一类影响结果的意外,我们轮流选择其他份额当作验证集。
最后对所有结果进行取平均,就是对队中模型评估的结果。
混淆矩阵
它叫混淆矩阵不是没有原因的,因为它真的很容易就混淆了鸭
实际值1 | 实际值0 | |
---|---|---|
预测值1 | TP 正例预测为正例 | FP 负例预测为正例 |
预测值0 | FN 正例预测为负例 | TN 负例预测负例 |
True, False代表预测结果是否正确
Positive, Negetive 指预测的结果是正例还是负例
接下来是这三个概念,注意第一句话
准确率
在所有样本中,正确预测的结果占总体的百分比
召回率
在所有正例中,正确预测的正例的比例。表示的是样本中的正例有多少被预测正确了
也叫查全率
精确度
在预测为正例的样本中,正确预测的正例的比例
也叫查准率
召回率和精确度是一对矛盾的度量,此消彼长。比如,样本是一个班级中所有学生,我们希望选出所有的女生,那我们把全班学生都选出来说这个班的人都是女生,女生必然都被选出来,召回率为1,但是精确度并不高。如果我们只选穿裙子的人(假设这个班级没有女装大佬),这样穿裤子的女生会被落下,但我们选出的同学全部为女生,精确度为1,召回率却不高。
F1
既然查全率查准率不可兼得,那怎么才算好呢?其实,在不同任务中,我们对这两个指标的重视程度是不同的,有些时候“宁可错杀一千,不可放过一个”,那我们就要对查全率有很高要求,有些时候“错杀代价太高”,就要求查准率高一点。
第一种衡量方法是,两个模型在查准率=查全率时的值平衡点(Break-Event Point),哪个大,哪个好.
这种方式过于简单,于是提出了F1度量。
F 1 = 2 ∗ 召 回 率 ∗ 准 确 率 准 确 率 + 召 回 率 F1 = \frac{2*召回率*准确率}{准确率+召回率} F1=准确率+召回