模型评价 - 判断数据模型拟合效果的三种方法

数据建模的目的就是获得从自变量映射到因变量的函数,在建模的探索过程中,不同的方式总会得出不同的函数模型,而这些函数大多是由一些参数构成的,比如 y = f( x; w0, w1, w2, w3, ...)。

 

平方损失函数

为了选择在某种方式下最好的参数值( w0, w1, w2, w3, ...的值),这个衡量方法一般是比较原始数据与模型的预测数据之间的平方差,平方差定义为:

[(y(原始)-y(预测))**2 ] / N = [(y(原始)- f( x; w0, w1, w2, w3, ...))**2 ] / N

这个数值越小,说明模型的预测值越接近原始值,也就代表模型越好。上述表达式也称为平方损失函数

 

绝对损失函数

平方损失是非常常见的选择,其他的损失函数比较适合回归,比如另一个常见的是绝对损失函数

| y(原始)-y(预测)|  / N = | y(原始)- f( x; w0, w1, w2, w3, ...)|  / N

 

准确率

用准确率判断模型好坏比较适合分类问题,即因变量是固定的几个值,比如自变量是0或1的二分类问题。准确率就是看模型分类的结果与原始数据中的分类结果相同的占比。

准确率 = S(模型与原始数据的分类结果一致) / S(该分类下的所有数据量)

下面是python代码示例:

y32 = lr.predict(x3)#用检验集x3的数据通过模型进行预测,结果储存在变量y32中。
print(u'模型的平均准确率(检验集)为:%s'% lr.score(x3, y3))
print(u'模型的平均准确率(检验集,y=0)为:%s'% (sum(y32[i] == 0 for i,v in enumerate(y3) if v == 0) / sum(1 for i,v in enumerate(y3) if v == 0)))
print(u'模型的平均准确率(检验集,y=1)为:%s'% (sum(y32[i] == 1 for i,v in enumerate(y3) if v == 1) / sum(1 for i,v in enumerate(y3) if v == 1)))

 

 

  • 5
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值