KNeighborsClassifier
from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier import matplotlib.pyplot as plt cancer = load_breast_cancer() X_train,X_test,y_train,y_test = train_test_split(cancer.data,cancer.target,stratify=cancer.target,random_state=0) training_accuracy = [] test_accuracy = [] neighbors_settings = range(1,11) for neighbors in neighbors_settings: clf=KNeighborsClassifier(n_neighbors=neighbors) clf.fit(X_train,y_train) training_accuracy.append(clf.score(X_train,y_train)) test_accuracy.append(clf.score(X_test,y_test)) plt.plot(neighbors_settings,training_accuracy,label="training accuracy") plt.plot(neighbors_settings,test_accuracy,label="test accuracy") plt.xlabel("Accuracy") plt.ylabel("n_neighbors") plt.legend() plt.show()
KNeighborsRegressor
from sklearn.neighbors import KNeighborsRegressor from sklearn.model_selection import train_test_split import mglearn import numpy as np import matplotlib.pyplot as plt X, y=mglearn.datasets.make_wave(n_samples=40) X_train,X_test,y_train,y_test=train_test_split(X,y,random_state=0) fig,axes = plt.subplots(1,3,figsize =(15,4)) line = np.linspace(-3,3,1000).reshape(-1,1) for n_neighbors,ax in zip([1,3,9],axes): reg = KNeighborsRegressor(n_neighbors=n_neighbors) reg.fit(X_train,y_train) ax.plot(line,reg.predict(line)) ax.plot(X_train,y_train,'^',c=mglearn.cm2(0),markersize=8) ax.plot(X_test,y_test,'^',c=mglearn.cm2(1),markersize=8) ax.set_title("{}nrighbor(s)n train score: {:.2f}".format(n_neighbors,reg.score(X_train,y_train),reg.score(X_test,y_test))) ax.set_xlabel("Feature") ax.set_ylabel("Target") axes[0].legend(["Nodel predictions","Training data/target","Test data/target"],loc='best') plt.show()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)