数据特征决定模型结果的上限,而模型的优化不过是在逼近这个上限
如果某一列数值特别大,模型可能会不精确,比如误认为这一列数据特别重要。
特征标准化
特征标准化就是希望数据在处理后,每个特征的数值在同一范围内浮动
零均值归一化
常用标准化方法,原始数据-原始数据均值,再除以原始数据标准差。
首先,减去均值,数据就以原点为中心对称了。
将与均值的差与标准差做比,就是让数据压缩到较小的空间中。
线性函数归一化
对原始数据进行线性变换,使结果映射到【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=准确率+召回率2∗召回率∗准确率
这种方法和平衡点的特点一样,不偏不倚
为了衡量有不同侧重的任务中模型的表现,对F1进行扩展得到
F β = ( 1 + β 2 ) ∗ 召 回 率 ∗ 准 确 率 ( β 2 ∗ 准 确 率 ) + 召 回 率 F_\beta = \frac{(1+\beta^2)*召回率*准确率}{(\beta^2*准确率)+召回率} Fβ=(β2∗准确率)+召回率(1+β2)∗召回率∗准确率
当
β
=
1
,
就
是
标
准
F
1
,
当
β
>
1
召
回
率
影
响
更
大
,
当
0
<
β
<
1
准
确
率
影
响
更
大
当\beta=1,就是标准F1, 当\beta>1召回率影响更大,当0<\beta<1准确率影响更大
当β=1,就是标准F1,当β>1召回率影响更大,当0<β<1准确率影响更大
这里的
β
\beta
β是召回率的权值,因为这个式子的来源是对召回率和准确率的加权调和平均
1
F
β
=
1
1
+
β
2
∗
(
1
准
确
率
+
β
2
召
回
率
)
\frac{1}{F_\beta} = \frac{1}{1+\beta^2}*(\frac{1}{准确率}+\frac{\beta^2}{召回率})
Fβ1=1+β21∗(准确率1+召回率β2)
ROC和AUC
先占个坑
大概就是AUC越大越好
代价曲线
把无辜的人判死刑和把杀人犯视作无罪,都是误判但这代价能一样吗?杀人犯视作无罪勉强还可以继续找证据,良民杀了就没了鸭。
不同的类型的错误的代价不同,当ROC曲线不能反应总体代价时,代价曲线可以达到目的