Sklearn cross_val_score 交叉验证

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

from sklearn.cross_validation import cross_val_score
import matplotlib.pyplot as plt

iris = load_iris()
X = iris.data
y = iris.target


X_train,  X_test, y_train, y_test = train_test_split(X, y, random_state=4)

knn = KNeighborsClassifier()
knn.fit(X_train, y_train)

print(knn.score(X_test, y_test))

scores = cross_val_score(knn, X, y, cv=5, scoring="accuracy")
print(scores)
print(scores.mean())

k_range = range(1,31)
k_scores = []

for k in k_range:
    knn = KNeighborsClassifier(n_neighbors=k)
    # scores = cross_val_score(knn, X, y, cv=10, scoring='accuracy')
    # k_scores.append(scores.mean())
    loss = -cross_val_score(knn, X, y, cv=10, scoring='mean_squared_error')
    k_scores.append(loss.mean())

plt.plot(k_range, k_scores)
plt.xlabel('Value of K for KNN')
plt.ylabel('Cross-Validated Accuracy')
plt.show()

https://morvanzhou.github.io/tutorials/machine-learning/sklearn/3-2-cross-validation1/

4852

Leave a Reply

Name and Email Address are required fields.
Your email will not be published or shared with third parties.