From 144371250d8ca8ec83dfc3311f3fbb5cd3b5f7df Mon Sep 17 00:00:00 2001 From: dlaprins Date: Wed, 1 Mar 2023 17:35:25 +0100 Subject: [PATCH] Added correlation and VIF calculations to skorecard object for reporting purposes --- skorecard/skorecard.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/skorecard/skorecard.py b/skorecard/skorecard.py index f9cfcda..b5b4e59 100644 --- a/skorecard/skorecard.py +++ b/skorecard/skorecard.py @@ -1,5 +1,6 @@ import warnings import numpy as np +import pandas as pd from sklearn.base import BaseEstimator, ClassifierMixin from sklearn.pipeline import Pipeline, make_pipeline @@ -338,10 +339,23 @@ def get_stats(self): def summary(self): """Get the summary of all the bucketers.""" - raise NotImplementedError("Not implemented yet") + # raise NotImplementedError("Not implemented yet") check_is_fitted(self) return self.bucketing_.summary() + def get_correlation(self, X, method="pearson"): + """Get correlation matrix and VIF-values for transformed features.""" + X_transform = self.woe_transform(X) + correlation = X_transform.corr(method) + + vif = pd.DataFrame(index=X_transform.columns) + corr_inv = np.linalg.inv(correlation.to_numpy()) + vif["VIF"] = np.diagonal(corr_inv) + + self.correlation_dict_ = {"correlation": correlation, "vif": vif} + + return self.correlation_dict_ + def prebucket_table(self, column): """Get the prebucket_table.