simple tools for score card model
Project description
version: 1.1.3
status: dev
author: hsz
email: hsz1273327@gmail.com
Desc
a simple tool for score card model
keywords:math,finance
Feature
Serializable
mutil classifier model support
ks-curve support
Change
scorecard now can set a threshold value to return a bool result
Example
>>> from sklearn import datasets
>>> import pandas as pd
>>> from ScoreCardModel.binning.discretization import Discretization
>>> from ScoreCardModel.weight_of_evidence import WeightOfEvidence
>>> from ScoreCardModel.models.logistic_regression_model import LogisticRegressionModel
>>> from ScoreCardModel.score_card import ScoreCardModel
>>>
>>> class MyLR(LogisticRegressionModel):
>>> def predict(self, x):
>>> x = self.pre_trade(x)
>>> return self._predict_proba(x)
>>>
>>> def pre_trade(self, x):
>>> import numpy as np
>>> result = []
>>> for i,v in x.items():
>>> t = self.ds[i].transform([v])[0]
>>> r = self.woes[i].transform([t])[0]
>>> result.append(r)
>>> return np.array(result)
>>>
>>> def _pre_trade_batch_row(self,row,Y,bins):
>>> d = Discretization(bins)
>>> d_row = d.transform(row)
>>> woe = WeightOfEvidence()
>>> woe.fit(d_row,Y)
>>> return d,woe,woe.transform(d_row)
>>>
>>> def pre_trade_batch(self, X,Y):
>>> self.ds = {}
>>> self.woes = {}
>>> self.table = {}
>>> self.ds["sepal length (cm)"],self.woes["sepal length (cm)"],self.table["sepal length (cm)"]= self._pre_trade_batch_row(
>>> X["sepal length (cm)"],Y,[0,2,5,8])
>>> self.ds['sepal width (cm)'],self.woes['sepal width (cm)'],self.table['sepal width (cm)'] = self._pre_trade_batch_row(
>>> X['sepal width (cm)'],Y,[0,2,2.5,3,3.5,5])
>>> self.ds['petal length (cm)'],self.woes['petal length (cm)'],self.table['petal length (cm)'] = self._pre_trade_batch_row(
>>> X['petal length (cm)'],Y,[0,1,2,3,4,5,7])
>>> self.ds['petal width (cm)'],self.woes['petal width (cm)'],self.table['petal width (cm)'] = self._pre_trade_batch_row(
>>> X['petal width (cm)'],Y,[0,1,2,3])
>>> return pd.DataFrame(self.table)
>>>
>>> iris = datasets.load_iris()
>>> y = iris.target
>>> z = (y==0)
>>> l = pd.DataFrame(iris.data,columns=iris.feature_names)
>>> lr = MyLR()
>>> lr.train(l,z)
>>> lr.predict(l.loc[0].to_dict())
array([[ 0.46315882, 0.53684118]])
>>> sc = ScoreCardModel(lr)
>>> sc.predict(sc.pre_trade(l.loc[0].to_dict()))
104.3
>>> scs = []
>>> for i in range(len(l)):
>>> score = sc.predict(sc.pre_trade(l.loc[i].to_dict()))
>>> scs.append(score)
>>> print(ScoreCardWithKSModel.Threshold_to_score(scs, 0.5))
1.0
>>> print(ScoreCardWithKSModel.Score_to_threshold(scs, score=70))
1.0
.
.
.
>>> print(ScoreCardWithKSModel.Score_to_threshold(scs, y=z, score=100))
0.3467
>>> print(ScoreCardWithKSModel.Get_ks(scs, y=z, threshold=0.4).ks)
0.9
>>> # ScoreCardWithKSModel.Drawks(scs, y=z)
>>> scsc = [l.loc[i].to_dict() for i in range(len(l))]
>>> scks = ScoreCardWithKSModel.From_scorecard(sc)
>>> print(scks.threshold_to_score(scsc, 0.5))
1.0
>>> print(scks.score_to_threshold(scsc, score=70))
1.0
.
.
.
>>> print(scks.score_to_threshold(scsc, y=z, score=100))
0.3467
>>> print(scks.get_ks(scsc, y=z, threshold=0.4).ks)
0.9
>>> scks.drawks(scsc, y=z)
Install
python -m pip install ScoreCardModel
Documentation
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ScoreCardModel-1.1.3.tar.gz.
File metadata
- Download URL: ScoreCardModel-1.1.3.tar.gz
- Upload date:
- Size: 15.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a1247b272db1caa344b7e245a266f31282fc3d2aa4958f4121770c599f18421
|
|
| MD5 |
e4558a9ac6275b3f1c897246945a16a8
|
|
| BLAKE2b-256 |
3e4eb7d0f4a8849b5d6641dcb7cf29a7b2b81455d6837586d4dfdc9a06147b33
|
File details
Details for the file ScoreCardModel-1.1.3-py3-none-any.whl.
File metadata
- Download URL: ScoreCardModel-1.1.3-py3-none-any.whl
- Upload date:
- Size: 25.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f254b50b399a29d61a9fbd4dff84e8862b0252a8aa3063b250ffeca23b4363d
|
|
| MD5 |
fbc663678095018225ce1e2ce8005336
|
|
| BLAKE2b-256 |
611ca97828daa41692f22135448ae5633346c3cde178d100bc1424465034f44e
|