python cross val score_sklearn函数:cross_val_score(交叉验证评分)
sklearn.model_selection.cross_val_score(estimator,X,y=None,*,groups=None,scoring=None,cv=None,n_jobs=None,verbose=0,fit_params=None,pre_dispatch='2*n_jobs',error_score=nan)
前面我們提到了4種分割數(shù)據(jù)集的方法,在分割完數(shù)據(jù)集后,我們訓(xùn)練模型,那模型的表現(xiàn)到底如何呢?我們可以使用這個(gè)函數(shù)來看模型的評(píng)分。estimator:estimator object implementing ‘fit’
我們的算法模型X:array-like of shape (n_samples, n_features)
y:array-like of shape (n_samples,) or (n_samples, n_outputs), default=None
我們的數(shù)據(jù)集cv:int, cross-validation generator or an iterable, default=None
我們要進(jìn)行的交叉驗(yàn)證的方法
幾個(gè)常用的參數(shù)如上所示,下面,我們舉幾個(gè)小栗子。
KFold
關(guān)于KFold參考:橘貓吃不胖:sklearn函數(shù):KFold(分割訓(xùn)練集和測(cè)試集)?zhuanlan.zhihu.com
對(duì)于K折交叉驗(yàn)證, K的取值,通常為3、5、10
import pandas as pd
import numpy as np
names = ['preg','plas','pres','skin','test','mass','pedi','age','class']
df = pd.read_csv('data/pima-indians-diabetes.csv' , names=names)
df.head(10)
X = df.values[:,:8]
y = df.values[:,8]
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
kfold = KFold(n_splits=10)
model = LogisticRegression()
result = cross_val_score(model , X , y , cv=kfold)
最后的result,就是我們每一次模型的得分(準(zhǔn)確率)
這里,我們調(diào)用KFold,設(shè)置K=10,也就是會(huì)分割為10分子集,然后去遍歷調(diào)用模型
這里,我們使用的是邏輯回歸模型
2. LeaveOneOut
關(guān)于LeaveOneOut,參考:橘貓吃不胖:sklearn函數(shù):LeaveOneOut(分割訓(xùn)練集和測(cè)試集)?zhuanlan.zhihu.com
同樣使用上面的數(shù)據(jù)集
from sklearn.model_selection import LeaveOneOut
loocv = LeaveOneOut()
model = LogisticRegression(max_iter=1000)
result = cross_val_score(model , X , y , cv=loocv)
result
result.mean()
這個(gè)跑起來的確很慢,一開始結(jié)果都是0,1我還以為錯(cuò)了,啥情況,一想,因?yàn)榱粢环?#xff0c;就是遍歷N次,每次的結(jié)果要么是對(duì)的,要么就是不對(duì)的,所以,可以看個(gè)平均的得分
總結(jié)
以上是生活随笔為你收集整理的python cross val score_sklearn函数:cross_val_score(交叉验证评分)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux su切换用户提示Authen
- 下一篇: 高二获全奖跳级进哈佛,29岁坐拥数亿身家