from sklearn.linear_model import SGDRegressor
from sklearn import datasets
from sklearn.model_selection import train_test_split#将数据分为测试集和训练集
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.neighbors import KNeighborsClassifier
import matplotlib.pyplot as plt
import numpy as np
digits=datasets.load_digits()
x=digits.data
y=digits.target
X_train,X_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=666)
knn=KNeighborsClassifier()
knn.fit(X_train,y_train)
print(knn.score(X_test, y_test))
pca=PCA(n_components=2)
pca.fit(X_train)
x_train_reducation=pca.transform(X_train)
x_test_reducation=pca.transform(X_test)
knn_pca=KNeighborsClassifier()
knn_pca.fit(x_train_reducation,y_train)
print("pca:",knn_pca.score(x_test_reducation, y_test))
x_reducation=pca.transform(x)
for i in range(10):
plt.scatter(x_reducation[y==i,0],x_reducation[y==i,1],alpha=0.8)
plt.show()