{ "info": { "author": "Pan Fu", "author_email": "panfu0207@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "\n\n```python\nimport pandas as pd\nimport numpy as np\nimport scoring as sc\n\nfrom sklearn.model_selection import train_test_split as tts\nfrom sklearn.linear_model import LogisticRegression as lr\nimport sklearn.metrics as metrics\n```\n\n\n```python\ndf=pd.read_csv('gc.csv')\nvardict=pd.read_csv('dict.csv')\ndf['Risk']=df['Risk'].apply(lambda x: 1 if x=='bad' else 0)\ndf=sc.renameCols(df,vardict,False)\nlabel,disc,cont=sc.getVarTypes(vardict)\n# sc.discSummary(df)\n\n# ### No row needs to be removed from this example in this stage ###\n# vardict.loc[vardict['new'].isin(['Age','Sex']),'isDel']=1\n# df,vardict=cl.delFromVardict(df,vardict)\n```\n\n\n```python\ndf1=sc.binData(df,vardict)\n```\n\n #########################################\n ####It's using Chi-Merge algorithm...####\n #########################################\n\n Doing continous feature: Age\n\n Doing continous feature: Credit amount\n Equal Depth Binning is required, number of bins is: 100\n\n Doing continous feature: Duration\n\n Doing discrete feature: Sex\n\n Doing discrete feature: Job\n\n Doing discrete feature: Housing\n\n Doing discrete feature: Saving accounts\n\n Doing discrete feature: Checking account\n\n Doing discrete feature: Purpose\n\n Finished\n\n\n\n```python\nbidict=sc.getBiDict(df1,label)\n```\n\n\n```python\nbidict['Credit amount']\n```\n\n\n\n\n
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Credit amounttotalgoodbadtotalDistgoodDistbadDistgoodRatebadRatewoeiv
0(-inf, 1282.0]211144670.2110.2230.2060.6820.318-0.0820.001
1(1282.0, 3446.32]4693521170.4690.3900.5030.7510.2490.2540.029
2(3446.32, 3913.26]605550.0600.0170.0790.9170.0831.5510.096
3(3913.26, inf]2601491110.2600.3700.2130.5730.427-0.5530.087
\n
\n\n\n\n\n```python\n# modified credit amount\nsc.bivariate(pd.DataFrame({'y':df['y'],\n 'Credit amount':sc.manuallyBin(df,\n 'Credit amount',\n 'cont',\n [-np.inf,1300,3500,4000,np.inf])}\n ),'Credit amount','y')[0]\ndf1['Credit amount']=sc.manuallyBin(df,'Credit amount','cont',[-np.inf,1300,3500,4000,np.inf])\n```\n\n\n```python\nbidict=sc.getBiDict(df1,label)\nivtable=sc.ivTable(bidict)\n```\n\n\n```python\ndf1,vardict,bidict=sc.featureFilter(df1,vardict,bidict,ivtable)\n```\n\n\n```python\ndf=sc.mapWOE(df1,bidict,label)\n```\n\n\n```python\n### Modelling ###\n#################\ntrainx,testx,trainy,testy=tts(df.iloc[:,1:],df[label],test_size=0.3)\nm=lr(penalty='l1', C=0.9, solver='saga', n_jobs=-1)\nm.fit(trainx,trainy)\npred=m.predict(testx)\npred_prob=m.predict_proba(testx)[:,1]\n\n# \u93cc\u30e7\u6e45\u5a34\u5b2d\u762f\u7f01\u64b4\u7049\ncm=metrics.confusion_matrix(testy, pred)\nprint('**Precision is:',(cm[0][0]+cm[1][1])/(sum(cm[0])+sum(cm[1])))\nprint('\\n**Confusion matrix is:\\n',cm)\nprint('\\n**Classification report is:\\n',metrics.classification_report(testy, pred))\n```\n\n **Precision is: 0.7233333333333334\n\n **Confusion matrix is:\n [[179 18]\n [ 65 38]]\n\n **Classification report is:\n precision recall f1-score support\n\n 0 0.73 0.91 0.81 197\n 1 0.68 0.37 0.48 103\n\n micro avg 0.72 0.72 0.72 300\n macro avg 0.71 0.64 0.64 300\n weighted avg 0.71 0.72 0.70 300\n\n\n\n\n```python\n### Evaluation ###\n##################\nsc.plotROC(testy,pred_prob)\nsc.plotKS(testy,pred_prob)\nsc.plotCM(metrics.confusion_matrix(testy,pred), classes=df[label].unique(),\n title='Confusion matrix, without normalization')\n```\n\n\n![png](output_10_0.png)\n\n\n\n![png](output_10_1.png)\n\n\n Confusion matrix, without normalization\n [[179 18]\n [ 65 38]]\n\n\n\n![png](output_10_3.png)\n\n\n\n```python\n### Scoring ###\n###############\nscored,basescore=sc.scoring(trainx.reset_index(drop=True),\n trainy.reset_index(drop=True),\n 'y',\n m,\n bidict)\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/greedycaine/scoring", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "scoring", "package_url": "https://pypi.org/project/scoring/", "platform": "", "project_url": "https://pypi.org/project/scoring/", "project_urls": { "Homepage": "https://github.com/greedycaine/scoring" }, "release_url": "https://pypi.org/project/scoring/0.0.9/", "requires_dist": null, "requires_python": "", "summary": "Build scorecard for credit risk analysis", "version": "0.0.9" }, "last_serial": 5002542, "releases": { "0.0.4": [ { "comment_text": "", "digests": { "md5": "303ab86ce91cf54adf8161829a017777", "sha256": "648b8d7ed35e387a5062aeb64b9e32df206252485daa11bd643c005b82631589" }, "downloads": -1, "filename": "scoring-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "303ab86ce91cf54adf8161829a017777", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10098, "upload_time": "2019-03-21T08:14:01", "url": "https://files.pythonhosted.org/packages/da/94/b254857ba57263bc319b318b9831f9db7698af6983e10e584d3f5830f4f6/scoring-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "89bb283992551af26a15b25b0c25d10d", "sha256": "e05cbe3f254c36e9db0c2368878a7ccf88704b0492a140e011d2058c1dd3288f" }, "downloads": -1, "filename": "scoring-0.0.4.tar.gz", "has_sig": false, "md5_digest": "89bb283992551af26a15b25b0c25d10d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7635, "upload_time": "2019-03-21T08:14:03", "url": "https://files.pythonhosted.org/packages/0c/8f/60c6cc3657166f7c5c194e1788e3f8fdc7330c01d9be884bce8851343771/scoring-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "e81d103f5087637a78d431215081bb45", "sha256": "725f4270239d9bd037eaa9a403226047ac02442c88f3390129ac7b57ed556638" }, "downloads": -1, "filename": "scoring-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "e81d103f5087637a78d431215081bb45", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10107, "upload_time": "2019-03-21T08:25:43", "url": "https://files.pythonhosted.org/packages/6e/32/cab1afc8c70093748a13008036134a06c059f652cac918f07e537b129793/scoring-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4a1f3e4612b46355610924a89d7962eb", "sha256": "bcc712acc4d5e8b62e4a1e0d9589a58b1e6a0098374ac7899ad95136497a9a82" }, "downloads": -1, "filename": "scoring-0.0.5.tar.gz", "has_sig": false, "md5_digest": "4a1f3e4612b46355610924a89d7962eb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7639, "upload_time": "2019-03-21T08:25:44", "url": "https://files.pythonhosted.org/packages/fc/df/80da379529dd5c37dc49be34ba9f7c8b11b8e15f9865ba88344f334fc4ba/scoring-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "f6a908aa18740ce711bc8934e35863a5", "sha256": "fa7b089c28825abe9a3d470ec44d84884f10d1615cc5d4b3bd31b035a5ce394d" }, "downloads": -1, "filename": "scoring-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "f6a908aa18740ce711bc8934e35863a5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11030, "upload_time": "2019-03-27T09:19:19", "url": "https://files.pythonhosted.org/packages/d8/7a/f9a4ba32585c8ff589e3f702c6aa33ead990209d468537cd40b15b3b39ef/scoring-0.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4dc2ebf5900bb621a31c8253c2b1a296", "sha256": "58835e217d4a0a97a4dccefb2b757b60177444ecb1d34589fbbd2872007439d8" }, "downloads": -1, "filename": "scoring-0.0.6.tar.gz", "has_sig": false, "md5_digest": "4dc2ebf5900bb621a31c8253c2b1a296", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8454, "upload_time": "2019-03-27T09:19:21", "url": "https://files.pythonhosted.org/packages/aa/50/277285d883d196e1a60d5ce2bd791cf51571afbaaed018a7f828da8daa43/scoring-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "53e54e53efdcd96c07a4ac0cdd6e35f7", "sha256": "632fdfb274e77d15e8c6833dd385b15f84a1e7cd2d34445b225dd528e1798f52" }, "downloads": -1, "filename": "scoring-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "53e54e53efdcd96c07a4ac0cdd6e35f7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13036, "upload_time": "2019-03-28T10:08:03", "url": "https://files.pythonhosted.org/packages/17/ea/936733c0b5829aeb70c7a8c1333efaff07c1ff5fc1e616c6f23f6d64c89a/scoring-0.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bb514bf56ab96ac351f61dcdd21c280e", "sha256": "93202f6821478ec39c4e2464fb653e23c6de29a37cb69d6ed8c2a7075da824de" }, "downloads": -1, "filename": "scoring-0.0.7.tar.gz", "has_sig": false, "md5_digest": "bb514bf56ab96ac351f61dcdd21c280e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12789, "upload_time": "2019-03-28T10:08:05", "url": "https://files.pythonhosted.org/packages/2d/29/30b9d264469f269fff278d625f5aa7ec2dcd108e7699d949675f6fa09337/scoring-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "6f2a322ef1f2a396b44498a4bc398034", "sha256": "4881340560d0a9c9c55a11ea42abca4a44f5a70c4a48f8adee1534e255d8120d" }, "downloads": -1, "filename": "scoring-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "6f2a322ef1f2a396b44498a4bc398034", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13156, "upload_time": "2019-03-29T07:09:07", "url": "https://files.pythonhosted.org/packages/fa/a6/02810a0463fde303980651a2dc6d13626a16ea722fe164717f8defb06589/scoring-0.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "52e5af12e3a73f379737ccf63c27db91", "sha256": "ee147cd558d37832e348741d4786b02488206477431f4c9fff3ee0044ab61e47" }, "downloads": -1, "filename": "scoring-0.0.8.tar.gz", "has_sig": false, "md5_digest": "52e5af12e3a73f379737ccf63c27db91", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12888, "upload_time": "2019-03-29T07:09:09", "url": "https://files.pythonhosted.org/packages/f0/a3/76b311ad78b1a1292a5514bb4ee7c0979e732d518fee90f1e007cc4feeb9/scoring-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "3d8b112ed34a0fddd8b141629bceb6cf", "sha256": "9d09b74ae9a5f0af5c0fb16aaf9bc522e41c2dad32ca09b24104e8e21e561b5b" }, "downloads": -1, "filename": "scoring-0.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "3d8b112ed34a0fddd8b141629bceb6cf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13398, "upload_time": "2019-03-29T10:25:56", "url": "https://files.pythonhosted.org/packages/e8/c9/c8810ace9550d70755e5343f6d931278fdabff257c2b569777b818e57662/scoring-0.0.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d4bb336c0308feb78ada079ac7ef3f8b", "sha256": "f4080b449d7f5202ad5ea9841f5ad9b2a4e056fe354e4cd21e93a294326a388c" }, "downloads": -1, "filename": "scoring-0.0.9.tar.gz", "has_sig": false, "md5_digest": "d4bb336c0308feb78ada079ac7ef3f8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13077, "upload_time": "2019-03-29T10:25:58", "url": "https://files.pythonhosted.org/packages/72/eb/2c2b5b7cd7bbd7c8722ecb30da0c2666dc039c59c0ccbc172fcd498a8bfd/scoring-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3d8b112ed34a0fddd8b141629bceb6cf", "sha256": "9d09b74ae9a5f0af5c0fb16aaf9bc522e41c2dad32ca09b24104e8e21e561b5b" }, "downloads": -1, "filename": "scoring-0.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "3d8b112ed34a0fddd8b141629bceb6cf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13398, "upload_time": "2019-03-29T10:25:56", "url": "https://files.pythonhosted.org/packages/e8/c9/c8810ace9550d70755e5343f6d931278fdabff257c2b569777b818e57662/scoring-0.0.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d4bb336c0308feb78ada079ac7ef3f8b", "sha256": "f4080b449d7f5202ad5ea9841f5ad9b2a4e056fe354e4cd21e93a294326a388c" }, "downloads": -1, "filename": "scoring-0.0.9.tar.gz", "has_sig": false, "md5_digest": "d4bb336c0308feb78ada079ac7ef3f8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13077, "upload_time": "2019-03-29T10:25:58", "url": "https://files.pythonhosted.org/packages/72/eb/2c2b5b7cd7bbd7c8722ecb30da0c2666dc039c59c0ccbc172fcd498a8bfd/scoring-0.0.9.tar.gz" } ] }