Py之scorecardpy:scorecardpy的简介、安装、使用方法之详细攻略
目录
Scorecardpy,由谢士晨博士开发,这个包是 R 包评分卡的 python 版本。 其目标是通过为一些常见任务提供功能,使传统信用风险评分卡模型的开发更容易、更高效。
Github:https://github.com/shichenxie/scorecardpy
案例
scorecardpy库的使用简介 - 知乎
pip install scorecardpy
- Traditional Credit Scoring Using Logistic Regression
- import scorecardpy as sc
-
- data prepare ------
- load germancredit data
- dat = sc.germancredit()
-
- filter variable via missing rate, iv, identical value rate
- dt_s = sc.var_filter(dat, y="creditability")
-
- breaking dt into train and test
- train, test = sc.split_df(dt_s, 'creditability').values()
-
- woe binning ------
- bins = sc.woebin(dt_s, y="creditability")
- sc.woebin_plot(bins)
-
- binning adjustment
- adjust breaks interactively
- breaks_adj = sc.woebin_adj(dt_s, "creditability", bins)
- or specify breaks manually
- breaks_adj = {
- 'age.in.years': [26, 35, 40],
- 'other.debtors.or.guarantors': ["none", "co-applicant%,%guarantor"]
- }
- bins_adj = sc.woebin(dt_s, y="creditability", breaks_list=breaks_adj)
-
- converting train and test into woe values
- train_woe = sc.woebin_ply(train, bins_adj)
- test_woe = sc.woebin_ply(test, bins_adj)
-
- y_train = train_woe.loc[:,'creditability']
- X_train = train_woe.loc[:,train_woe.columns != 'creditability']
- y_test = test_woe.loc[:,'creditability']
- X_test = test_woe.loc[:,train_woe.columns != 'creditability']
-
- logistic regression ------
- from sklearn.linear_model import LogisticRegression
- lr = LogisticRegression(penalty='l1', C=0.9, solver='saga', n_jobs=-1)
- lr.fit(X_train, y_train)
- lr.coef_
- lr.intercept_
-
- predicted proability
- train_pred = lr.predict_proba(X_train)[:,1]
- test_pred = lr.predict_proba(X_test)[:,1]
-
- performance ks & roc ------
- train_perf = sc.perf_eva(y_train, train_pred, title = "train")
- test_perf = sc.perf_eva(y_test, test_pred, title = "test")
-
- score ------
- card = sc.scorecard(bins_adj, lr, X_train.columns)
- credit score
- train_score = sc.scorecard_ply(train, card, print_step=0)
- test_score = sc.scorecard_ply(test, card, print_step=0)
-
- psi
- sc.perf_psi(
- score = {'train':train_score, 'test':test_score},
- label = {'train':y_train, 'test':y_test}
- )
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
加入交流群
请使用微信扫一扫!