def buildScoreCard(df, features, labelCol): binning_process = BinningProcess(features) estimator = HuberRegressor(max_iter=200) scorecard = Scorecard(binning_process=binning_process, target=labelCol, estimator=estimator, scaling_method=None, scaling_method_params={"min": 0, "max": 100}, reverse_scorecard=True) scorecard.verbose = True scorecard.fit(df, check_input=False) scorecard.information(print_level=2) print(scorecard.table(style="summary")) score = scorecard.score(df) y_pred = scorecard.predict(df) plt.scatter(score, df[labelCol], alpha=0.01, label="Average profit") plt.plot(score, y_pred, label="Huber regression", linewidth=2, color="orange") plt.ylabel("Average profit value (unit=100,000)") plt.xlabel("Score") plt.legend() plt.show()
def test_information(): data = load_breast_cancer() variable_names = data.feature_names X = pd.DataFrame(data.data, columns=variable_names) y = data.target binning_process = BinningProcess(variable_names) estimator = LogisticRegression() scorecard = Scorecard(binning_process=binning_process, estimator=estimator) with raises(NotFittedError): scorecard.information() scorecard.fit(X, y) with raises(ValueError): scorecard.information(print_level=-1) with open("tests/test_scorecard_information.txt", "w") as f: with redirect_stdout(f): scorecard.information(print_level=0) scorecard.information(print_level=1) scorecard.information(print_level=2)