from sklearn.metrics import classification_report,confusion_matrix,plot_roc_curve,roc_auc_score,f1_score,roc_curve,auc
时间: 2024-01-01 14:06:52 浏览: 40
这是Python的一个常用机器学习库Scikit-learn中的一些评价指标和可视化函数。其中,classification_report和confusion_matrix可以用于分类问题的评价,plot_roc_curve和roc_auc_score可以用于二分类问题的评价,f1_score可以同时考虑模型的精确度和召回率,roc_curve和auc可以用于绘制ROC曲线和计算AUC值。这些评价指标和可视化函数能够帮助我们更好地了解模型的性能和优化方向。
相关问题
X_train,X_test,y_train,y_test=train_test_split(X ,y,test_size=0.2,random_state=1);reg = 0.01 LogRegModel = LogisticRegression(C=1/reg, solver = 'liblinear').fit(X_train, y_train) preds = LogRegModel.predict(X_test) print('accuracy', metrics.accuracy_score(y_test, preds)) print('recall', metrics.recall_score(y_test, preds)) print('precision', metrics.precision_score(y_test, preds)) print('f1-score', metrics.f1_score(y_test, preds));from sklearn. metrics import classification_report print(classification_report(y_test, preds));from sklearn.metrics import roc_curve from sklearn.metrics import confusion_matrix import matplotlib import matplotlib.pyplot as plt %matplotlib inline y_scores = LogRegModel.predict_proba(X_test) print(y_scores) # calculate ROC curve fpr, tpr, thresholds = roc_curve(y_test, y_scores[:,1]) # plot ROC curve fig = plt.figure(figsize=(6, 6)) # Plot the diagonal 50% line plt.plot([0, 1], [0, 1], 'k--') # Plot the FPR and TPR achieved by our model plt.plot(fpr, tpr) plt.xlabel('False Positive Rate') plt.ylabel('True Positive Rate') plt.title('ROC Curve') plt.show()
这是一个二分类问题的逻辑回归模型的评估过程,其中使用了 train_test_split 进行数据集的划分,然后使用 LogisticRegression 进行模型的训练,并对测试集进行预测,使用了多个评价指标,如准确率、召回率、精确率、F1-score 和分类报告等;此外还使用了 ROC 曲线和 AUC 值来评估模型的性能。
from sklearn.datasets import load_iris from sklearn. model_selection import train_test_split from sklearn.metrics import classification_report from sklearn. neighbors import KNeighborsClassifier from sklearn. metrics import roc_curve, auc import matplotlib.pyplot as plt from sklearn. metrics import confusion_matrix import seaborn as sns import scikitplot as skplt #加载数据集 iris = load_iris() data = iris['data'] label = iris['target'] #数据集的划分 x_train,x_test,y_train,y_test = train_test_split(data,label,test_size=0.3) print(x_train) #模型构建 model = KNeighborsClassifier(n_neighbors=5) model.fit(x_train,y_train) #模型评估 #(1)精确率,召回率,F1分数,准确率(宏平均和微平均) predict = model. predict(x_test) result = classification_report(y_test,predict) print(result) # (2) 混淆矩阵 confusion_matrix = confusion_matrix(y_test, predict) print('混淆矩阵:', confusion_matrix) sns.set(font_scale=1) sns.heatmap(confusion_matrix, annot=True, annot_kws={"size", 16}, cmap=plt.cm.Blues) plt.title('Confusion Matrix') plt.ylabel('True label' ) plt.xlabel('Predicted label') plt.savefig('Confusion matrix. pdf') plt.show() #(3)ROC曲线 Y_pred_prob = model. predict_proba(x_test) plt.figure(figsize= (7,7)) ax= plt. subplot() skplt.metrics.plot_roc_curve(y_test,Y_pred_prob,ax= ax) ax.set_xlabel('False Positive Rate', fontsize = 20) ax.set_ylabel('True Positive Rate ',fontsize = 20) ax.set_title('ROC Areas ',fontsize = 20) plt.xlim((0, 1)) plt.ylim((0, 1)) plt.xticks(fontsize = 18) plt.yticks(fontsize = 18) plt.legend(fontsize =18) plt.savefig(' ROC.pdf') plt.show( ) #(4)P_R曲线 from sklearn.metrics import precision_recall_curve precision, recall, _ =precision_recall_curve(y_test) plt.fill_between(recall, precision,color='b') plt.xlabel('Recall') plt.ylabel('Precision') plt.ylim([0.0, 1.0]) plt.xlim([0.0, 1.0]) plt.plot(recall, precision) plt.title("Precision-Recall") plt.show()
这是一段 Python 代码,主要包括从Scikit-learn库中导入了一些数据集、分类器、评估指标和可视化工具的模块。其中load_iris用于加载鸢尾花数据集,train_test_split用于将数据集分为训练集和测试集,classification_report用于评估分类器的性能,KNeighborsClassifier是K近邻分类器,roc_curve和auc用于评估二元分类器的性能,matplotlib.pyplot和seaborn是可视化工具,confusion_matrix和scikitplot是评估和可视化混淆矩阵的工具。