如何保存深度超级学习者图?

2024-10-05 15:29:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试运行一个deep-super-learning包(https://github.com/levyben/DeepSuperLearner),它给出了两个图,但没有显示如何保存它们-从这段代码中,我可以添加什么来保存这些图吗?你知道吗

这是我的密码:

if __name__ == '__main__':
    MLP_learner = dcv.GridSearchCV(mlp, parameter_space, cv=inner_cv,iid=False, n_jobs=-1)
    GBM_learner = dcv.GridSearchCV(gbm, param, cv=inner_cv,iid=False, n_jobs=-1)
    LR_learner = dcv.GridSearchCV(logreg, LR_par, cv=inner_cv, iid=False, n_jobs=-1)
    RFC_learner = dcv.GridSearchCV(rfc, param_grid, cv=inner_cv,iid=False, n_jobs=-1)
    SVM_learner =  dcv.GridSearchCV(svm, tuned_parameters, cv=inner_cv, iid=False, n_jobs=-1)
    Keras_learner = GridSearchCV(estimator=keras, param_grid=kerasparams, cv=inner_cv,iid=False, n_jobs=-1)
    Base_learners = {'MultilayerPerceptron':MLP_learner, 'GradientBoostingMachine':GBM_learner, 
        'LogisticRegression':LR_learner,'RandomForest':RF_learner, 'SupportVectorMachine':SVM_learner, 'Keras':Keras_learner}

    X_train, X_test, Y_train, Y_test = train_test_split(X_res, y_res, test_size=0.2, random_state=0)

    DSL_learner = DeepSuperLearner(Base_learners)
    DSL_learner.fit(X_train, Y_train,max_iterations=1,sample_weight=None)
    DSL_learner.get_precision_recall(X_test, Y_test, show_graphs=True) 
    y_pred = DSL_learner.predict(X_test)
    y_pred = numpy.argmax(y_pred,axis=1) 
    print("Deep Super Learner Test Accuracy:", accuracy_score(y_pred, Y_test)*100, "%")

我假设是'show\u graphs=True'给了我这些图,但是我需要能够保存这些输出,从github中读取文档时,他们没有提供添加到.get\u precision\u recall()函数的选项。我一直在尝试应用matplotlib的savefig(),但至今没有成功。你知道吗

我尝试添加:

    plot = DSL_learner.get_precision_recall(X_test, Y_test, show_graphs=True)
    plt.show(plot)
    plot.savefig('DeepSuperLearner.png')

但这会产生错误: AttributeError: 'tuple' object has no attribute 'savefig'

这是我得到的图片(为了显示速度,用较少的模型快速运行),我正试图保存: graphs

这些也与github示例中的内容相同。 当我跑步时:

  plot = DSL_learner.get_precision_recall(X_test, Y_test, show_graphs=True)
  plt.show(plot)

图形图像输出第二次。我在jupyter实验室运行这个(但是需要能够保存图形以便在其他地方运行这个代码并且仍然获得图形)


Tags: testfalsegetplotshowjobstraincv