clf_for_eval.set_params(**clf_gs.best_params_)
    metrics, std = training_utils.evaluate_on_cv(training_data,
                                                 train_X_all,
                                                 clf_for_eval,
                                                 fuzzy_option,
                                                 fuzzy_dist_column,
                                                 fuzzy_err_column,
                                                 xgb_flag=True)
    pr_curve = training_utils.predict_and_pr_curve_on_cv(training_data,
                                                         train_X_all,
                                                         clf_for_eval,
                                                         fuzzy_option,
                                                         fuzzy_dist_column,
                                                         fuzzy_err_column,
                                                         xgb_flag=True)

    # best model from grid search:
    clf_best = clf_gs.best_estimator_

    # generalization:
    general_data["y_pred"] = clf_best.predict(general_X)
    general_data["y_prob_positive_class"] = clf_best.predict_proba(
        general_X)[:, 1]

    training_utils.save_results(output_path, experiment_name, fuzzy_option,
                                training_data, general_data, metrics, std,
                                pr_curve, best_param_df, gs_results_df,
                                info_columns, features)

print("done.")
Пример #2
0
                                                 fuzzy_dist_column,
                                                 fuzzy_err_column)
    pr_curve = training_utils.predict_and_pr_curve_on_cv(
        training_data, train_X, clf, fuzzy_option, fuzzy_dist_column,
        fuzzy_err_column)

    # fit to the data:
    if fuzzy_option == "normal":
        clf.fit(X=train_X, y=training_data["Y"])
    elif fuzzy_option == "fuzzy_dist":
        clf.fit(X=train_X,
                y=training_data["Y"],
                sample_weight=training_data[fuzzy_dist_column].values.T[0])
    elif fuzzy_option == "fuzzy_err":
        clf.fit(X=train_X,
                y=training_data["Y"],
                sample_weight=training_data[fuzzy_err_column].values.T[0])
    else:
        print("wrong fuzzy option")

    # generalization:
    general_data["y_pred"] = clf.predict(general_X)
    general_data["y_prob_positive_class"] = clf.predict_proba(general_X)[:, 1]

    training_utils.save_results(output_path, experiment_name, fuzzy_option,
                                training_data, general_data,
                                metrics, std, pr_curve, pd.DataFrame(),
                                pd.DataFrame(), info_columns, features)

print("done.")