k-fold cross validation(k-折叠交叉验证),python pandas (ix & iloc &loc) 的区别

交叉验证的目的:在实际训练中,模型通常对训练数据好,但是对训练数据之外的数据拟合程度差。用于评价模型的泛化能力,从而进行模型选择

交叉验证的基本思想:把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train set),另一部分做为验证集(validation set or test set),首先用训练集对模型进行训练,再利用验证集来测试模型的泛化误差。另外,现实中数据总是有限的,为了对数据形成重用,从而提出k-折叠交叉验证。

2.1 K-fold

最基础的CV算法,也是默认采用的CV策略​。主要的参数包括两个,一个是样本数目,一个是k-fold要划分的份数。

k-fold cross validation(k-折叠交叉验证),python pandas (ix & iloc &loc) 的区别_第1张图片
cross validation是在数据量有限的情况下的非常好的一个evaluate performance的方法。
而对原始数据划分出train data和test data的方法有很多种,这也就造成了cross validation的方法有很多种。

sklearn中的cross validation模块,最主要的函数是如下函数:
sklearn.cross_validation.cross_val_score。他的调用形式是scores = cross_validation.cross_val_score(clf, raw data, raw target, cv=5, score_func=None)
参数解释:
clf是不同的分类器,可以是任何的分类器。比如支持向量机分类器。clf = svm.SVC(kernel='linear', C=1)
cv参数就是代表不同的cross validation的方法了。如果cv是一个int数字的话,并且如果提供了raw target参数,那么就代表使用StratifiedKFold分类方式,如果没有提供raw target参数,那么就代表使用KFold分类方式。
cross_val_score函数的返回值就是对于每次不同的的划分raw data时,在test data上得到的分类的准确率。至于准确率的算法可以通过score_func参数指定,如果不指定的话,是用clf默认自带的准确率算法。

python pandas (ix & iloc &loc) 的区别

loc——通过行标签索引行数据 
iloc——通过行号索引行数据 
ix——通过行标签或者行号索引行数据(基于loc和iloc 的混合) 
同理,索引列数据也是如此!

你可能感兴趣的:(k-fold cross validation(k-折叠交叉验证),python pandas (ix & iloc &loc) 的区别)