diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-scorecardpy.spec | 357 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 359 insertions, 0 deletions
@@ -0,0 +1 @@ +/scorecardpy-0.1.9.2.tar.gz diff --git a/python-scorecardpy.spec b/python-scorecardpy.spec new file mode 100644 index 0000000..e1b9414 --- /dev/null +++ b/python-scorecardpy.spec @@ -0,0 +1,357 @@ +%global _empty_manifest_terminate_build 0 +Name: python-scorecardpy +Version: 0.1.9.2 +Release: 1 +Summary: Credit Risk Scorecard +License: MIT License +URL: http://github.com/shichenxie/scorecardpy +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/3e/18/8e3f675b9baaf027e84cb84f9bc3bb57381ab3d0b5241e089653d5d92784/scorecardpy-0.1.9.2.tar.gz +BuildArch: noarch + + +%description +# scorecardpy + +[](https://pypi.python.org/pypi/scorecardpy) +[](https://pypi.python.org/pypi/scorecardpy) +[](http://pepy.tech/project/scorecardpy) +[](https://pepy.tech/project/scorecardpy/month) + + +This package is python version of R package [scorecard](https://github.com/ShichenXie/scorecard). +Its goal is to make the development of traditional credit risk scorecard model easier and efficient by providing functions for some common tasks. +- data partition (`split_df`) +- variable selection (`iv`, `var_filter`) +- weight of evidence (woe) binning (`woebin`, `woebin_plot`, `woebin_adj`, `woebin_ply`) +- scorecard scaling (`scorecard`, `scorecard_ply`) +- performance evaluation (`perf_eva`, `perf_psi`) + +## Installation + +- Install the release version of `scorecardpy` from [PYPI](https://pypi.org/project/scorecardpy/) with: +``` +pip install scorecardpy +``` + +- Install the latest version of `scorecardpy` from [github](https://github.com/shichenxie/scorecardpy) with: +``` +pip install git+git://github.com/shichenxie/scorecardpy.git +``` + +## Example + +This is a basic example which shows you how to develop a common credit risk scorecard: + +``` python +# 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} +) +``` + +%package -n python3-scorecardpy +Summary: Credit Risk Scorecard +Provides: python-scorecardpy +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-scorecardpy +# scorecardpy + +[](https://pypi.python.org/pypi/scorecardpy) +[](https://pypi.python.org/pypi/scorecardpy) +[](http://pepy.tech/project/scorecardpy) +[](https://pepy.tech/project/scorecardpy/month) + + +This package is python version of R package [scorecard](https://github.com/ShichenXie/scorecard). +Its goal is to make the development of traditional credit risk scorecard model easier and efficient by providing functions for some common tasks. +- data partition (`split_df`) +- variable selection (`iv`, `var_filter`) +- weight of evidence (woe) binning (`woebin`, `woebin_plot`, `woebin_adj`, `woebin_ply`) +- scorecard scaling (`scorecard`, `scorecard_ply`) +- performance evaluation (`perf_eva`, `perf_psi`) + +## Installation + +- Install the release version of `scorecardpy` from [PYPI](https://pypi.org/project/scorecardpy/) with: +``` +pip install scorecardpy +``` + +- Install the latest version of `scorecardpy` from [github](https://github.com/shichenxie/scorecardpy) with: +``` +pip install git+git://github.com/shichenxie/scorecardpy.git +``` + +## Example + +This is a basic example which shows you how to develop a common credit risk scorecard: + +``` python +# 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} +) +``` + +%package help +Summary: Development documents and examples for scorecardpy +Provides: python3-scorecardpy-doc +%description help +# scorecardpy + +[](https://pypi.python.org/pypi/scorecardpy) +[](https://pypi.python.org/pypi/scorecardpy) +[](http://pepy.tech/project/scorecardpy) +[](https://pepy.tech/project/scorecardpy/month) + + +This package is python version of R package [scorecard](https://github.com/ShichenXie/scorecard). +Its goal is to make the development of traditional credit risk scorecard model easier and efficient by providing functions for some common tasks. +- data partition (`split_df`) +- variable selection (`iv`, `var_filter`) +- weight of evidence (woe) binning (`woebin`, `woebin_plot`, `woebin_adj`, `woebin_ply`) +- scorecard scaling (`scorecard`, `scorecard_ply`) +- performance evaluation (`perf_eva`, `perf_psi`) + +## Installation + +- Install the release version of `scorecardpy` from [PYPI](https://pypi.org/project/scorecardpy/) with: +``` +pip install scorecardpy +``` + +- Install the latest version of `scorecardpy` from [github](https://github.com/shichenxie/scorecardpy) with: +``` +pip install git+git://github.com/shichenxie/scorecardpy.git +``` + +## Example + +This is a basic example which shows you how to develop a common credit risk scorecard: + +``` python +# 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} +) +``` + +%prep +%autosetup -n scorecardpy-0.1.9.2 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-scorecardpy -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.9.2-1 +- Package Spec generated @@ -0,0 +1 @@ +e12d38f9b6a5f4dfd9b3bcb6126ea593 scorecardpy-0.1.9.2.tar.gz |
