交叉验证cross validation

  • 1、train_test_split
    第一个要介绍的函数,train_test_split,用于分割所有样本,将其按照指定的大小分割训练集和测试集。
    以sklearn中的数据集iris为例:
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn import datasets
from sklearn import svm

iris=datasets.load_iris()
X_train,X_test,y_train,y_test = train_test_split(iris.data, iris.target, test_size = 0.4, random_state=0)
  • 2、k-fold
    此函数将样本划分为K份,将K-1份作为训练集,剩下的一份作为测试集,即为留一交叉验证。其中参数n_folds默认为3,即默认为3折交叉验证。
from sklearn.model_selection import KFold
kf = KFold(n_splits=2)
for train,test in kf.split(X):
  • 3、Stratified k-fold
    此函数StratifiedKFold()比较常用,相比于KFold函数其优势在于,前者在划分样本时会按照类别百分比实现,使得每个类别的百分比在训练集和测试集中都是一样的,这保证了不会有某一个类别的数据在训练集集中而测试集中不存在的情况,反之亦然。
from sklearn.cross_validation import StratifiedKFold
cv = StratifiedKFold(y, n_folds=6)
for i,(train,test) in enumerate(cv):

或者,

from sklearn.model_selection import StratifiedKFold
skf = StratifiedKFold(n_splits=3)
for train,test in skf.split(X,y):

其他的一些函数的具体使用,可参照http://scikit-learn.org/stable/modules/cross_validation.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容