《统计学习方法》-李航、《机器学习-西瓜书》-周志华总结+Python代码连载(一)--模型选择+误差评估

一、模型选择

1.1 模型

模型就是学习的条件概率分布或者决策函数(这里只指监督学习)。条件概率的集合:\L =\left \{ P|P(Y|X) \right \},决策函数的集合:\L =\left \{ f|Y=f(X) \right \}。条件概率表示的模型为概率模型,决策函数表示的模型为非概率模型。

1.2 模型选择

模型选择基本是选择一个模型评估指标(均方差、准确率、F1等)同时考虑欠拟合(在训练集上表现不好-为将训练样本的一般性质学好)和过拟合(在训练集和测试集上表现有很大差异-将训练集上的性质学习的过好)的综合选择。对于模型的泛化能力也是很重要的考虑指标,可以使用“偏差-方差分解”,以回归任务为例,模型的预期预测为\bar{f(x)} =E_D[f(x;D)],则方差为:var(x) = E_D[(f(x;D)-\bar{f(x))})^{2}],偏差:bias^{2}(x) = (\bar{f(x)}-y)^{2}。偏差度量了模型的期望预测与真实结果的偏离程度-模型本身的拟合能力,方差度量了同样大小的训练集的变动所造成的学习性能的变化-数据扰动造成的影响(一般来说,偏差与方差是由冲突的)。

二、误差评估

2.1 评估方法(主要使用的两种)

留出法(留折法)直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T。

交叉验证法(k折交叉验证法):将数据集划分为k个大小相似的互斥子集,每个子集都要保持分布一致性,其中k-1子集作为训练集,剩下一个作为测试集,然后依次作为测试集。

2.2 度量性能

2.2.1 分类问题(以二分类为主)

TP-将正例预测为正例,TN-将反例预测为反例,FP-将反例预测为正例,FN-将正例预测为反例。

精确率/查准率 P = TP/(TP+FP) -在预测为正例中真正正例的比例。

召回率/查全率 R = TP/(TP+FN) -真正正例预测为正例的比例。

F1 = 2PR/(P+R)

真实情况

                   预测结果

正 例                               负 例

正 例 TP(真正例)         FN(假反例)
负 例 FP(假正例)         TN(真反例)

 

一般来说,P与R是一对矛盾的度量。

ROC(Receiver Operating Characteristic-"受试者工作特征")曲线:纵轴-真正例率TPR=TP/(TP+FN),横轴-假正例率FPR=FP/(FP+TN),该曲线从改变分类阈值得到真正例率与假正例率一之间的关系。

AUC:ROC曲线与坐标轴围成的面积。

代码实现(基于sklearn):

#!/usr/bin/env python
# coding: utf-8

# 准确率
import numpy as np
from sklearn.metrics import accuracy_score
y_pred = [0, 2, 1, 3,9,9,8,5,8]
y_true = [0, 1, 2, 3,2,6,3,5,9]
 
accuracy_score(y_true, y_pred
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值