dict_of_models = {'RandomForest': RandomPipeline, 'AdaBoost': AdaPipeline, 'SVM': SVMPipeline, 'KNN': KNNPipeline, 'LR': LRPipeline};def evaluation(model): # calculating the probabilities y_pred_proba = model.predict_proba(X_test) # finding the predicted valued y_pred = np.argmax(y_pred_proba,axis=1) print('Accuracy = ', accuracy_score(y_test, y_pred)) print('-') print(confusion_matrix(y_test,y_pred)) print('-') print(classification_report(y_test,y_pred)) print('-') N, train_score, test_score = learning_curve(model, X_train, y_train, cv=4, scoring='f1', train_sizes=np.linspace(0.1,1,10)) plt.figure(figsize=(5,5)) plt.plot(N, train_score.mean(axis=1), label='train score') plt.plot(N, test_score.mean(axis=1), label='validation score') plt.legend() plt.show()
时间: 2024-04-02 18:33:40 浏览: 117
这段代码定义了一个字典 dict_of_models,其中包含了几个分类模型和对应的 Pipeline 对象。然后定义了一个名为 evaluation 的函数,函数接受一个模型对象作为参数。在函数内部,首先使用传入的模型对象对测试集 X_test 进行预测,并计算预测的概率值。接着使用 np.argmax 函数找到预测值中概率最大的类别,作为最终的预测结果。然后打印出模型的准确率、混淆矩阵和分类报告。最后使用 learning_curve 函数计算训练集和验证集的 F1 分数,并绘制学习曲线。
阅读全文