""" 利用决策树预测乳腺癌的例子(网格搜索算法优化) sklearn.grid_search模块在0.18版本中被弃用,它所支持的类转移到model_selection 模板中。还要注意,新的CV迭代器的接口与这个模块的接口不同,sklearn.grid_search在0.20中被删除。 解决方法:将下面代码“from sklearn.grid_search import GridSearchCV”修改成:“from sklearn.model_selection import GridSearchCV” 程序来源:https://blog.csdn.net/guoyc439/article/details/123381908 20221113 byp """ from sklearn.model_selection import GridSearchCV, KFold, train_test_split from sklearn.metrics import make_scorer, accuracy_score from sklearn.tree import DecisionTreeClassifier from sklearn.datasets import load_breast_cancer import warnings from sklearn.neighbors import KNeighborsClassifier as KNN warnings.filterwarnings('ignore') # load data data = load_breast_cancer() print(data.data.shape) print(data.target.shape) # (569, 30) # (569,) X, y = data['data'] , data['target'] X_train, X_test, y_train, y_test = train_test_split( X, y, train_size=0.8, random_state=0 ) regressor = DecisionTreeClassifier(random_state=0) parameters = {'max_depth': range(1, 6)} scorin_fnc = make_scorer(accuracy_score) kflod = KFold(n_splits=10) # grid = GridSearchCV(regressor, parameters, scorin_fnc, cv=kflod) grid = GridSearchCV(regressor, parameters, scoring=None, cv=kflod) """ GridSearchCV参数: class sklearn.model_selection.GridSearchCV(estimator, param_grid, scoring=None, fit_params=None, n_jobs=None, iid=’warn’, refit=True, cv=’warn’, verbose=0, pre_dispatch=‘2*n_jobs’, error_score=’raise-deprecating’, return_train_score=’warn’) """ grid = grid.fit(X_train, y_train) reg = grid.best_estimator_ print('best score:%f', grid.best_score_) print('best parameters:') for key in parameters.keys(): print('%s:%d' % (key, reg.get_params()[key])) print('test score : %f' % reg.score(X_test, y_test)) # import pandas as pd # pd.DataFrame(grid.cv_results_).T # 引入KNN训练方法 knn = KNN() # 进行填充测试数据进行训练 knn.fit(X_train, y_train) params = knn.get_params() score = knn.score(X_test, y_test) print("KNN 预测得分为:%s" % score)