《scikit-learn机器学习常用算法原理及编程实战》—3.3 模型准确性

举报
华章计算机 发表于 2019/05/31 17:01:41 2019/05/31
【摘要】 本书摘自《scikit-learn机器学习常用算法原理及编程实战》一书中的第3章,第3.3.1节,编著是黄永昌 .

3.3  模型准确性

  测试数据集的成本,即Jtest(θ)是评估模型准确性的最直观的指标,Jtest(θ)值越小说明模型预测出来的值与实际值差异越小,对新数据的预测准确性就越好。需要特别注意,用来测试模型准确性的测试数据集,必须是模型“没见过”的数据。

  这就是为什么,我们在第1章介绍过的,要把数据集分成训练数据集和测试数据集。一般原则是按照8∶2或7∶3来划分,然后用训练数据集来训练模型,训练出模型参数后再使用测试数据集来测试模型的准确性,根据模型的准确性来评价模型的性能。

  可以思考一个问题:为什么要确保模型没有见过测试数据集?

  那么,我们要如何计算测试数据集的误差呢?简单地说,就是用测试数据集和训练出来的模型参数代入相应的成本函数里,计算测试数据集的成本。

  针对上文我们介绍的线性回归算法,可以使用下面的公式计算测试数据集的误差,其中m是测试数据集的个数:

image.png

3.3.1  模型性能的不同表述方式

  在scikit-learn里,不使用成本函数来表达模型的性能,而使用分数来表达,这个分数总是在[0, 1]之间,数值越大说明模型的准确性越好。当模型训练完成后,调用模型的 score(X_test, y_test)即可算出模型的分数值,其中X_test和y_test是测试数据集样本。

  模型分数(准确性)与成本成反比。即分数越大,准确性越高,误差越小,成本越低;反之,分数越小,准确性越低,误差越大,成本越高。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。