前面例子中,我们将数据分成了训练数据和测试数据来对模型进行评价。但是当样本量较少的情况下,可以使用交叉验证。
1 数据说明
我们以sklearn自带的鸢尾花数据集(Iris)为例来演示交叉验证的使用
2 导入所需模块
from sklearn.model_selection import cross_val_score
from sklearn.datasets import load_iris
from sklearn.ensemble import AdaBoostClassifier
from sklearn.svm import SVC
3 获取数据
获取鸢尾花数据集(Iris),但是不划分训练样本和测试样本!
X, y = load_iris(return_X_y=True)
4 采用交叉验证的支持向量机模型
svm = SVC()
scores_svm = cross_val_score(svm, X, y, cv=5)
print('SVM模型的得分为:',scores_svm.mean())
SVM模型的得分为: 0.9666666666666666
5 采用交叉验证的AdaBoost模型
AdaBst = AdaBoostClassifier(
learning_rate=1,
n_estimators=100,
algorithm="SAMME",
)
scores_AdaBst = cross_val_score(AdaBst, X, y, cv=5)
print('AdaBoost模型的得分为:',scores_AdaBst.mean())
AdaBoost模型的得分为: 0.9533333333333334