sklearn之模型选择与评估

本文介绍了sklearn中模型选择与评估的相关方法,包括交叉验证、调参、模型评估等。强调了交叉验证的重要性,如K折交叉验证、Leave-One-Out等,并提到在调参时使用grid_search和randomizedsearchcv。同时,文章提到了模型评估的多种指标,如Accuracy、F1 Score、R2 Score等,并讨论了模型保存和验证图的概念。
摘要由CSDN通过智能技术生成

sklearn之模型选择与评估

在机器学习中,在我们选择了某种模型,使用数据进行训练之后,一个避免不了的问题就是:如何知道这个模型的好坏?两个模型我应该选择哪一个?以及几个参数哪个是更好的选择? 这就涉及到一个模型选择与评估的问题了。sklearn包的model_selection模块主要辅助要解决的,就是这个问题。

下面我们会简单讲下model_selection中提到的一些模型选择与评估方法,作为一些概述。更详细的介绍可以看这里

交叉验证(cross_validation)

对于验证模型好坏,我们最常使用的方法就是交叉验证法。也就是每次训练,都使用训练数据的一个划分(或者称为折,fold):一部分作为训练集,一部分作为验证集,进行多次划分多次训练后,得到想要的模型。

在sklearn中,对于获取到的数据,如果我们想要只划分成一部分train和一部分test,并训练然后验证的话,我们可以直接使用model_selection中的train_test_split来进行划分;一般情况下,我们是已经有了train和test数据,然后希望训练出一个模型来,然后应用到test中。至于模型好不好,参数怎么选择,我们会使用cross_validation方法来进行划分并验证。

交叉验证的评价

对于交叉验证,我们常用的cross_validation方法就是cross_val_score来获取交叉验证的得分。最常见的使用方法是:

>>> from sklearn.model_selection import cross_val_score
>>> clf = svm.SVC(kernel='linear', C=1)
>>> scores = cross_val_score(clf, iris.data, iris.target, cv=5)
>>> scores                                              
array([ 0.96...,  1.  ...,  0.96...,  0.96...,  1.        ])

>>> print("Accuracy: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() * 2))
Accuracy: 0.98 (+/- 0.03)

>>> from sklearn import metrics
>>> scores = cross_val_score(
...     clf, iris.data, iris.target, cv=5, scoring='f1_macro')
>>> scores                                              
array([ 0.96...,  1.  ...,  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值