summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-11 21:30:35 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-11 21:30:35 +0000
commit45b22728bd0bfbbfefb0b44d23d206250b246f4d (patch)
treecc41e057c5d396bd191af3987d66c9bbae70286a
parentfdb0f986c1e8a6ddfdb48c3cf73df22de6e4aad2 (diff)
automatic import of python-scorecardpy
-rw-r--r--.gitignore1
-rw-r--r--python-scorecardpy.spec357
-rw-r--r--sources1
3 files changed, 359 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..0d13134 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
+
+[![PyPI version](https://img.shields.io/pypi/pyversions/scorecardpy.svg)](https://pypi.python.org/pypi/scorecardpy)
+[![PyPI release](https://img.shields.io/pypi/v/scorecardpy.svg)](https://pypi.python.org/pypi/scorecardpy)
+[![Downloads](http://pepy.tech/badge/scorecardpy)](http://pepy.tech/project/scorecardpy)
+[![Downloads](https://pepy.tech/badge/scorecardpy/month)](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
+
+[![PyPI version](https://img.shields.io/pypi/pyversions/scorecardpy.svg)](https://pypi.python.org/pypi/scorecardpy)
+[![PyPI release](https://img.shields.io/pypi/v/scorecardpy.svg)](https://pypi.python.org/pypi/scorecardpy)
+[![Downloads](http://pepy.tech/badge/scorecardpy)](http://pepy.tech/project/scorecardpy)
+[![Downloads](https://pepy.tech/badge/scorecardpy/month)](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
+
+[![PyPI version](https://img.shields.io/pypi/pyversions/scorecardpy.svg)](https://pypi.python.org/pypi/scorecardpy)
+[![PyPI release](https://img.shields.io/pypi/v/scorecardpy.svg)](https://pypi.python.org/pypi/scorecardpy)
+[![Downloads](http://pepy.tech/badge/scorecardpy)](http://pepy.tech/project/scorecardpy)
+[![Downloads](https://pepy.tech/badge/scorecardpy/month)](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
diff --git a/sources b/sources
new file mode 100644
index 0000000..322a353
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+e12d38f9b6a5f4dfd9b3bcb6126ea593 scorecardpy-0.1.9.2.tar.gz