from math import sqrt from sklearn import metrics import numpy as np import datetime from sklearn.neighbors import KNeighborsClassifier from sklearn.discriminant_analysis import LinearDiscriminantAnalysis from sklearn.model_selection import train_test_split from sklearn.decomposition import PCA from sklearn import svm from sklearn.model_selection import GridSearchCV # CV,使用交叉验证方式获得模型正确率 # 输入数据路径 data_path = '1rong特征.csv' # 数据 data = np.loadtxt(open(data_path, 'rb'), dtype=np.float64, delimiter=',', skiprows=1) # 划分数据标签 cols = data.shape[1] X = data[:, :-1] y = data[:, cols - 1:cols] y = np.array(y.ravel()) # 数列平铺 y = np.squeeze(y) print("X_filtered", X.shape) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1) # 测试集占比1/3 param_grid = [ { # 需遍历10次 'weights': ['uniform'], # 参数取值范围 'n_neighbors': [i for i in range(1, 11)] # 使用其他方式如np.arange()也可以 # 这里没有p参数 }, { # 需遍历50次 '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, cv=5) # 网格搜索参数 grid_search.fit(X_train, y_train) # 网格搜索训练模型,比较耗时,约4分钟 print("Best parameters found: ", grid_search.best_params_) print("Best cross-validation score: ", grid_search.best_score_)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交