from sklearn import datasets#引入数据集,sklearn包含众多数据集
from sklearn.model_selection import train_test_split#将数据分为测试集和训练集
from sklearn.model_selection import GridSearchCV #参数
from sklearn.neighbors import KNeighborsClassifier#利用邻近点方式训练数据\
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import accuracy_score
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
digits=datasets.load_iris()
# print(digits.keys())
# print(digits.DESCR)
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)#利用train_test_split
standardScaler=StandardScaler()
standardScaler.fit(X_train)
print(standardScaler.mean_)
print(standardScaler.scale_)
X_train=standardScaler.transform(X_train)
X_test_standard=standardScaler.transform(X_test)
myknn=KNeighborsClassifier(n_neighbors=3)
myknn.fit(X_train,y_train)
print(myknn.score(X_test_standard, y_test))
#
# print(sum(y_predict == y_test)/len(y_test))
# print(accuracy_score(y_test,y_predict))
# param_grid=[
# {
# 'weights':['uniform'],
# 'n_neighbors':[i for i in range(1,11)]
# },
# {
# 'weights': ['distance'],
# 'n_neighbors': [i for i in range(1, 11)],
# 'p':[i for i in range(1, 6)]
# }
# ]
# knn_clf=KNeighborsClassifier()
# grid_search=GridSearchCV(knn_clf,param_grid,n_jobs=-1,verbose=2)#n_jobs使用全部core verbose=2显示细节
# grid_search.fit(X_train,y_train)
# print(grid_search.best_estimator_)
# print(grid_search.best_score_)
# print(grid_search.best_params_)
# print(grid_search.best_index_)