Przykład losowego podziału danych na zbiór uczący oraz testujący:

In [ ]:
import numpy as np
from sklearn.cross_validation import train_test_split
data = np.arange(30).reshape(-1,3)
labels = np.arange(10)
data_train, data_test, labels_train, labels_test = train_test_split(data, labels, test_size=0.25, random_state=1234)
print(data)
print(labels)
print(data_train)
print(data_test)
print(labels_train)
print(labels_test)

Przykład zastosowania k-krotnej walidacji:

In [ ]:
from sklearn import datasets
from sklearn.neighbors import KNeighborsClassifier
from sklearn.cross_validation import cross_val_score
iris = datasets.load_iris()
knn = KNeighborsClassifier()
scores = cross_val_score(knn, iris.data, iris.target, cv=5)
print(scores)

Badanie wpływu parametru klasyfikatora na wyniki:

In [ ]:
%matplotlib inline
import matplotlib.pyplot as plt
scores = []
n = []
for i in range(1,30):
    knn.n_neighbors = i
    n.append(i)
    scores.append(cross_val_score(knn, iris.data, iris.target, cv=5).mean())
    print(n[-1], scores[-1])
plt.plot(n, scores)

Szukanie najlepszego zestawu parametrów z użyciem k-krotnej walidacji:

In [ ]:
from sklearn import svm, grid_search
parameters = {'n_neighbors': list(range(1, 30)), 'p':[1,2,3,4] }
clf = grid_search.GridSearchCV(knn, parameters, cv=5)
clf.fit(iris.data, iris.target)
print(clf.best_estimator_)
print(clf.best_params_)
print(clf.best_score_)