tuned_knn = gd_knn.best_estimator_ print(f'Train : {tuned_knn.score(X_train_std, y_train)}') model_eval(tuned_knn,X_test_std,y_test)代码每行解释
时间: 2023-10-16 08:09:55 浏览: 115
1. `tuned_knn = gd_knn.best_estimator_`: 这行代码是将经过网格搜索调参后的最佳KNN模型赋值给`tuned_knn`变量。
2. `print(f'Train : {tuned_knn.score(X_train_std, y_train)}')`: 这行代码是输出`tuned_knn`模型在训练集上的准确率。`score()`方法是模型自带的评估函数,用于计算模型在给定数据集上的准确率。
3. `model_eval(tuned_knn,X_test_std,y_test)`: 这行代码调用了自定义的`model_eval()`函数,对`tuned_knn`模型在测试集上进行评估。该函数的输入参数分别为`tuned_knn`模型、测试集的特征数据`X_test_std`和测试集的标签数据`y_test`。函数的具体实现可以在代码中查看。
相关问题
from sklearn.neighbors import KNeighborsClassifier knn_model = KNeighborsClassifier() knn_model.fit(X_train_std,y_train) print(knn_model.score(X_train_std,y_train)) print(knn_model.score(X_test_std,y_test)) from sklearn.metrics import classification_report, confusion_matrix y_pred =knn_model.predict(X_test) print(classification_report(y_test,y_pred)) cm = confusion_matrix(y_test, y_pred) plt.figure(figsize = (8,8)) sns.heatmap(cm,cmap= "Blues", linecolor = 'black' , linewidth = 1 , annot = True, fmt='' , xticklabels = ['A','B','C','D'] , yticklabels = ['A','B','C','D']) plt.xlabel("Predicted") plt.ylabel("Actual") plt.show() from sklearn.neighbors import KNeighborsClassifier knn_model = KNeighborsClassifier() prams ={ 'n_neighbors':[13,15,18,22]} gd_knn= GridSearchCV(knn_model , param_grid=prams, n_jobs=-1 ,cv=10) gd_knn.fit(X_train_std , y_train) print(gd_knn.best_estimator_) tuned_knn = gd_knn.best_estimator_ print(f'Train : {tuned_knn.score(X_train_std, y_train)}') model_eval(tuned_knn,X_test_std,y_test)
这段代码使用了scikit-learn库中的KNeighborsClassifier类来创建一个K近邻分类器,并使用fit方法对标准化后的训练数据进行拟合。接着,使用score方法计算了模型在训练集和测试集上的准确率,并将其打印输出。之后,使用classification_report和confusion_matrix方法计算并打印了模型的分类报告和混淆矩阵。
随后,使用GridSearchCV方法对K近邻分类器进行调参,尝试不同的n_neighbors参数组合,以求得最优的模型。最后,使用tuned_knn.score方法计算了调参后模型在训练集上的准确率,并使用model_eval方法计算并打印了模型在测试集上的性能表现。
from xgboost import XGBRegressor tuned_parameters = [{ 'max_depth': range(3,10), 'n_estimators': range(100, 600, 100), 'learning_rate':[0.01] },] # 非GPU xgb= GridSearchCV(estimator=XGBRegressor(), param_grid=tuned_parameters, cv=5) # GPU # xgb= GridSearchCV(estimator=XGBRegressor(tree_method='gpu_hist', gpu_id=0), param_grid=tuned_parameters, cv=5) # 也可以换成lgbm,lgbm比xgboost快很多 # xgb= GridSearchCV(estimator=LGBMRegressor(), param_grid=tuned_parameters, cv=5) xgb.fit(XX_train,YY_train) y_xgb= xgb.predict(XX_test) print ('Optimum epsilon and kernel 1D: ', xgb.best_params_) # evaluate predictions mae = mean_absolute_error(YY_test, y_xgb) mape = mean_absolute_percentage_error(YY_test['BOD'], y_xgb) score = xgb.score(XX_test, YY_test) train_score = xgb.score(XX_train, YY_train) print('MAE: %.3f, MAPE: %.3f, R2_tain: %.3f, R2_test: %.3f' % ((mae,mape,train_score,score)))
这段代码是用来进行XGBoost模型的超参数调优的。首先定义了一些参数的取值范围,然后使用GridSearchCV函数来进行网格搜索,通过交叉验证来选择最佳的参数组合。其中,可以选择使用GPU进行计算以提高速度,也可以选择使用LightGBM模型代替XGBoost模型。最后打印出最佳参数组合,并输出模型在测试集上的MAE、MAPE、R2_train和R2_test等指标。
阅读全文