- 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
网友评论