scikit-learn 使用交叉验证训练分类器
示例
使用虹膜数据集:
import sklearn.datasets iris_dataset = sklearn.datasets.load_iris() X, y = iris_dataset['data'], iris_dataset['target']
数据分为训练集和测试集。要做到这一点,我们使用train_test_split效用函数来分割双方X和y(数据和目标矢量)用随机选择train_size=0.75(训练集包含数据的75%)。
训练数据集被输入到k最近邻分类器中。fit分类器的方法将使模型适合数据。
fromsklearn.cross_validationimport train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.75) fromsklearn.neighborsimport KNeighborsClassifier clf = KNeighborsClassifier(n_neighbors=3) clf.fit(X_train, y_train)
最终预测测试样品的质量:
clf.score(X_test, y_test) # Output: 0.94736842105263153
通过使用一对训练集和测试集,由于数据拆分的任意选择,我们可能会得到分类器质量的偏差估计。通过使用交叉验证,我们可以将分类器拟合到数据的不同训练/测试子集中,并对所有准确性结果进行平均。该函数cross_val_score使用交叉验证使分类器适合输入数据。它可以将要使用的不同分割数(折叠数)作为输入(在下面的示例中为5)。
fromsklearn.cross_validationimport cross_val_score scores = cross_val_score(clf, X, y, cv=5) print(scores) # Output: array([ 0.96666667, 0.96666667, 0.93333333, 0.96666667, 1. ]) print "Accuracy: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() / 2) # Output: Accuracy: 0.97 (+/- 0.03)
热门推荐
3 祝福语简短的微信
10 幼儿祝福语大全简短贺卡
11 感谢教官文案祝福语简短
12 鼠年同事祝福语简短创意
13 元旦祝福语 简短独特群发
14 妈咪跟我生日祝福语简短
15 给儿子新婚祝福语简短
16 伴娘祝福语长文案简短
17 恭喜高考完祝福语简短
18 生日祝福语送老公简短