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)
时间: 2024-04-02 09:35:54 浏览: 69
这段代码使用了scikit-learn库中的KNeighborsClassifier类来创建一个K近邻分类器,并使用fit方法对标准化后的训练数据进行拟合。接着,使用score方法计算了模型在训练集和测试集上的准确率,并将其打印输出。之后,使用classification_report和confusion_matrix方法计算并打印了模型的分类报告和混淆矩阵。
随后,使用GridSearchCV方法对K近邻分类器进行调参,尝试不同的n_neighbors参数组合,以求得最优的模型。最后,使用tuned_knn.score方法计算了调参后模型在训练集上的准确率,并使用model_eval方法计算并打印了模型在测试集上的性能表现。
相关问题
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))分行解释代码
这段代码主要是使用 scikit-learn 库中的 KNeighborsClassifier 类构建并训练了一个 k 近邻分类器模型,并对模型进行了评估。
- `from sklearn.neighbors import KNeighborsClassifier`:导入 scikit-learn 库中的 KNeighborsClassifier 类,用于构建 k 近邻分类器模型。
- `knn_model = KNeighborsClassifier()`:创建一个 KNeighborsClassifier 对象,用于训练 k 近邻分类器模型。
- `knn_model.fit(X_train_std, y_train)`:使用训练数据 X_train_std 和标签数据 y_train 来训练 k 近邻分类器模型。
- `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`:导入 scikit-learn 库中的 classification_report 和 confusion_matrix 函数,用于评估分类器模型的性能。
- `y_pred = knn_model.predict(X_test)`:使用训练好的 k 近邻分类器模型对测试数据 X_test 做出预测。
- `print(classification_report(y_test, y_pred))`:打印分类器模型在测试数据上的分类报告,包括精确率、召回率、F1 值等指标。
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_)
这段代码使用了scikit-learn库中的KNeighborsClassifier模型进行了K近邻算法分类,并利用GridSearchCV函数进行了网格搜索来优化模型的超参数。具体解释如下:
- `from sklearn.neighbors import KNeighborsClassifier`: 从sklearn.neighbors模块中导入KNeighborsClassifier类。
- `knn_model = KNeighborsClassifier()`: 创建一个KNeighborsClassifier对象,即K近邻分类器的模型。
- `prams ={ 'n_neighbors':[13,15,18,22]}`: 设置超参数的取值范围,这里指定了n_neighbors这个超参数的取值范围为13、15、18和22。
- `gd_knn= GridSearchCV(knn_model , param_grid=prams, n_jobs=-1 ,cv=10)`: 创建一个GridSearchCV对象,即进行网格搜索的对象。其中knn_model是要进行超参数优化的模型对象,param_grid是超参数取值范围,n_jobs指定了并行运算的数量,cv指定了交叉验证的折数。
- `gd_knn.fit(X_train_std , y_train)`: 在训练集上拟合模型,其中X_train_std是经过标准化后的训练集特征矩阵,y_train是训练集标签向量。
- `print(gd_knn.best_estimator_)`: 输出最佳的模型参数,即在网格搜索中得分最高的模型的参数。
阅读全文