{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "402afffb",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"日志路径:/root/project/easy_ml/logs/app.log\n"
]
}
],
"source": [
"%matplotlib agg\n",
"import matplotlib.pyplot as plt\n",
"import sys\n",
"sys.path.append(\"/root/project\")\n",
"from easy_ml import DataSplitEntity, OnlineLearningTrainer\n",
"\n",
"\n",
"# 加载demo数据\n",
"import scorecardpy as sc\n",
"\n",
"# 加载数据\n",
"dat = sc.germancredit()\n",
"dat_columns = dat.columns.tolist()\n",
"dat_columns = [c.replace(\".\",\"_\") for c in dat_columns]\n",
"dat.columns = dat_columns\n",
"\n",
"dat[\"creditability\"] = dat[\"creditability\"].apply(lambda x: 1 if x == \"bad\" else 0)\n",
"train_data=dat[:709]\n",
"test_data=dat[709:]\n",
"data = DataSplitEntity(train_data=train_data, test_data=test_data)\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "71f54feb",
"metadata": {
"code_folding": [],
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"项目路径:【./cache/train/OnlineLearningDemo】\n",
"coef load from【/root/notebook/ol_resources_demo/coef.dict】success.\n",
"feature load from【/root/notebook/ol_resources_demo/feature.csv】success.\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|██████████| 20/20 [00:04<00:00, 4.12it/s]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"选择epoch:【3】的参数:\n",
"{'age_in_years': 0.30540947796839885, 'credit_history': 0.336316924212706, 'duration_in_month': 0.31766018659713036, 'present_employment_since': 0.28917071986582443, 'purpose': 0.3451668602655048, 'savings_account_and_bonds': 0.3143211829465453, 'status_of_existing_checking_account': 0.37895404100465513, 'auc_test': 0.7922, 'ks_test': 0.4823, 'epoch': 3, 'loss_train': 0.5830171033930547, 'loss_test': 0.5842627196638215}\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
},
{
"data": {
"text/html": [
"
模型系数优化过程
"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" age_in_years | \n",
" credit_history | \n",
" duration_in_month | \n",
" present_employment_since | \n",
" purpose | \n",
" savings_account_and_bonds | \n",
" status_of_existing_checking_account | \n",
" auc_test | \n",
" ks_test | \n",
" epoch | \n",
" loss_train | \n",
" loss_test | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.016041 | \n",
" 0.027348 | \n",
" 0.020125 | \n",
" 0.046092 | \n",
" 0.036348 | \n",
" 0.061915 | \n",
" 0.066426 | \n",
" 0.7799 | \n",
" 0.4434 | \n",
" 0 | \n",
" 0 | \n",
" 0.672917 | \n",
"
\n",
" \n",
" 1 | \n",
" 0.127637 | \n",
" 0.138923 | \n",
" 0.126704 | \n",
" 0.146461 | \n",
" 0.147873 | \n",
" 0.159531 | \n",
" 0.179727 | \n",
" 0.7907 | \n",
" 0.4611 | \n",
" 1 | \n",
" 0.634075 | \n",
" 0.632831 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.222678 | \n",
" 0.242722 | \n",
" 0.226155 | \n",
" 0.224116 | \n",
" 0.250743 | \n",
" 0.243126 | \n",
" 0.285142 | \n",
" 0.7921 | \n",
" 0.4773 | \n",
" 2 | \n",
" 0.603433 | \n",
" 0.604080 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.305409 | \n",
" 0.336317 | \n",
" 0.317660 | \n",
" 0.289171 | \n",
" 0.345167 | \n",
" 0.314321 | \n",
" 0.378954 | \n",
" 0.7922 | \n",
" 0.4823 | \n",
" 3 | \n",
" 0.583017 | \n",
" 0.584263 | \n",
"
\n",
" \n",
" 4 | \n",
" 0.374689 | \n",
" 0.418012 | \n",
" 0.399959 | \n",
" 0.342215 | \n",
" 0.430126 | \n",
" 0.372425 | \n",
" 0.458761 | \n",
" 0.7929 | \n",
" 0.4773 | \n",
" 4 | \n",
" 0.570191 | \n",
" 0.571214 | \n",
"
\n",
" \n",
" 5 | \n",
" 0.431048 | \n",
" 0.487905 | \n",
" 0.473089 | \n",
" 0.384739 | \n",
" 0.505833 | \n",
" 0.418384 | \n",
" 0.524264 | \n",
" 0.7928 | \n",
" 0.4674 | \n",
" 5 | \n",
" 0.562404 | \n",
" 0.562849 | \n",
"
\n",
" \n",
" 6 | \n",
" 0.476043 | \n",
" 0.547094 | \n",
" 0.537789 | \n",
" 0.418701 | \n",
" 0.573108 | \n",
" 0.454044 | \n",
" 0.576556 | \n",
" 0.7934 | \n",
" 0.4697 | \n",
" 6 | \n",
" 0.557712 | \n",
" 0.557549 | \n",
"
\n",
" \n",
" 7 | \n",
" 0.511554 | \n",
" 0.597026 | \n",
" 0.595010 | \n",
" 0.445995 | \n",
" 0.632912 | \n",
" 0.481432 | \n",
" 0.617377 | \n",
" 0.7935 | \n",
" 0.4702 | \n",
" 7 | \n",
" 0.554825 | \n",
" 0.554202 | \n",
"
\n",
" \n",
" 8 | \n",
" 0.539380 | \n",
" 0.639132 | \n",
" 0.645672 | \n",
" 0.468201 | \n",
" 0.686135 | \n",
" 0.502385 | \n",
" 0.648630 | \n",
" 0.7935 | \n",
" 0.4653 | \n",
" 8 | \n",
" 0.552954 | \n",
" 0.552085 | \n",
"
\n",
" \n",
" 9 | \n",
" 0.561078 | \n",
" 0.674681 | \n",
" 0.690580 | \n",
" 0.486549 | \n",
" 0.733534 | \n",
" 0.518418 | \n",
" 0.672125 | \n",
" 0.7932 | \n",
" 0.4630 | \n",
" 9 | \n",
" 0.551646 | \n",
" 0.550746 | \n",
"
\n",
" \n",
" 10 | \n",
" 0.577934 | \n",
" 0.704747 | \n",
" 0.730418 | \n",
" 0.501964 | \n",
" 0.775742 | \n",
" 0.530729 | \n",
" 0.689467 | \n",
" 0.7943 | \n",
" 0.4676 | \n",
" 10 | \n",
" 0.55065 | \n",
" 0.549902 | \n",
"
\n",
" \n",
" 11 | \n",
" 0.590980 | \n",
" 0.730222 | \n",
" 0.765766 | \n",
" 0.515126 | \n",
" 0.813295 | \n",
" 0.540243 | \n",
" 0.702018 | \n",
" 0.7943 | \n",
" 0.4676 | \n",
" 11 | \n",
" 0.549835 | \n",
" 0.549376 | \n",
"
\n",
" \n",
" 12 | \n",
" 0.601039 | \n",
" 0.751842 | \n",
" 0.797117 | \n",
" 0.526537 | \n",
" 0.846657 | \n",
" 0.547659 | \n",
" 0.710901 | \n",
" 0.7948 | \n",
" 0.4748 | \n",
" 12 | \n",
" 0.549134 | \n",
" 0.549058 | \n",
"
\n",
" \n",
" 13 | \n",
" 0.608759 | \n",
" 0.770219 | \n",
" 0.824903 | \n",
" 0.536565 | \n",
" 0.876236 | \n",
" 0.553508 | \n",
" 0.717026 | \n",
" 0.7946 | \n",
" 0.4748 | \n",
" 13 | \n",
" 0.548515 | \n",
" 0.548876 | \n",
"
\n",
" \n",
" 14 | \n",
" 0.614650 | \n",
" 0.785859 | \n",
" 0.849502 | \n",
" 0.545480 | \n",
" 0.902404 | \n",
" 0.558185 | \n",
" 0.721109 | \n",
" 0.7948 | \n",
" 0.4811 | \n",
" 14 | \n",
" 0.547963 | \n",
" 0.548785 | \n",
"
\n",
" \n",
" 15 | \n",
" 0.619113 | \n",
" 0.799183 | \n",
" 0.871250 | \n",
" 0.553484 | \n",
" 0.925497 | \n",
" 0.561983 | \n",
" 0.723711 | \n",
" 0.7948 | \n",
" 0.4811 | \n",
" 15 | \n",
" 0.547474 | \n",
" 0.548754 | \n",
"
\n",
" \n",
" 16 | \n",
" 0.622462 | \n",
" 0.810544 | \n",
" 0.890451 | \n",
" 0.560725 | \n",
" 0.945825 | \n",
" 0.565121 | \n",
" 0.725258 | \n",
" 0.7950 | \n",
" 0.4811 | \n",
" 16 | \n",
" 0.547042 | \n",
" 0.548763 | \n",
"
\n",
" \n",
" 17 | \n",
" 0.624941 | \n",
" 0.820238 | \n",
" 0.907377 | \n",
" 0.567316 | \n",
" 0.963676 | \n",
" 0.567757 | \n",
" 0.726073 | \n",
" 0.7951 | \n",
" 0.4874 | \n",
" 17 | \n",
" 0.546666 | \n",
" 0.548798 | \n",
"
\n",
" \n",
" 18 | \n",
" 0.626743 | \n",
" 0.828513 | \n",
" 0.922275 | \n",
" 0.573342 | \n",
" 0.979311 | \n",
" 0.570007 | \n",
" 0.726393 | \n",
" 0.7952 | \n",
" 0.4874 | \n",
" 18 | \n",
" 0.546343 | \n",
" 0.548848 | \n",
"
\n",
" \n",
" 19 | \n",
" 0.628017 | \n",
" 0.835579 | \n",
" 0.935366 | \n",
" 0.578869 | \n",
" 0.992975 | \n",
" 0.571956 | \n",
" 0.726392 | \n",
" 0.7954 | \n",
" 0.4923 | \n",
" 19 | \n",
" 0.546069 | \n",
" 0.548907 | \n",
"
\n",
" \n",
" 20 | \n",
" 0.628881 | \n",
" 0.841614 | \n",
" 0.946853 | \n",
" 0.583949 | \n",
" 1.004887 | \n",
" 0.573665 | \n",
" 0.726192 | \n",
" 0.7956 | \n",
" 0.4923 | \n",
" 20 | \n",
" 0.545839 | \n",
" 0.548970 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" age_in_years credit_history duration_in_month present_employment_since \\\n",
"0 0.016041 0.027348 0.020125 0.046092 \n",
"1 0.127637 0.138923 0.126704 0.146461 \n",
"2 0.222678 0.242722 0.226155 0.224116 \n",
"3 0.305409 0.336317 0.317660 0.289171 \n",
"4 0.374689 0.418012 0.399959 0.342215 \n",
"5 0.431048 0.487905 0.473089 0.384739 \n",
"6 0.476043 0.547094 0.537789 0.418701 \n",
"7 0.511554 0.597026 0.595010 0.445995 \n",
"8 0.539380 0.639132 0.645672 0.468201 \n",
"9 0.561078 0.674681 0.690580 0.486549 \n",
"10 0.577934 0.704747 0.730418 0.501964 \n",
"11 0.590980 0.730222 0.765766 0.515126 \n",
"12 0.601039 0.751842 0.797117 0.526537 \n",
"13 0.608759 0.770219 0.824903 0.536565 \n",
"14 0.614650 0.785859 0.849502 0.545480 \n",
"15 0.619113 0.799183 0.871250 0.553484 \n",
"16 0.622462 0.810544 0.890451 0.560725 \n",
"17 0.624941 0.820238 0.907377 0.567316 \n",
"18 0.626743 0.828513 0.922275 0.573342 \n",
"19 0.628017 0.835579 0.935366 0.578869 \n",
"20 0.628881 0.841614 0.946853 0.583949 \n",
"\n",
" purpose savings_account_and_bonds status_of_existing_checking_account \\\n",
"0 0.036348 0.061915 0.066426 \n",
"1 0.147873 0.159531 0.179727 \n",
"2 0.250743 0.243126 0.285142 \n",
"3 0.345167 0.314321 0.378954 \n",
"4 0.430126 0.372425 0.458761 \n",
"5 0.505833 0.418384 0.524264 \n",
"6 0.573108 0.454044 0.576556 \n",
"7 0.632912 0.481432 0.617377 \n",
"8 0.686135 0.502385 0.648630 \n",
"9 0.733534 0.518418 0.672125 \n",
"10 0.775742 0.530729 0.689467 \n",
"11 0.813295 0.540243 0.702018 \n",
"12 0.846657 0.547659 0.710901 \n",
"13 0.876236 0.553508 0.717026 \n",
"14 0.902404 0.558185 0.721109 \n",
"15 0.925497 0.561983 0.723711 \n",
"16 0.945825 0.565121 0.725258 \n",
"17 0.963676 0.567757 0.726073 \n",
"18 0.979311 0.570007 0.726393 \n",
"19 0.992975 0.571956 0.726392 \n",
"20 1.004887 0.573665 0.726192 \n",
"\n",
" auc_test ks_test epoch loss_train loss_test \n",
"0 0.7799 0.4434 0 0 0.672917 \n",
"1 0.7907 0.4611 1 0.634075 0.632831 \n",
"2 0.7921 0.4773 2 0.603433 0.604080 \n",
"3 0.7922 0.4823 3 0.583017 0.584263 \n",
"4 0.7929 0.4773 4 0.570191 0.571214 \n",
"5 0.7928 0.4674 5 0.562404 0.562849 \n",
"6 0.7934 0.4697 6 0.557712 0.557549 \n",
"7 0.7935 0.4702 7 0.554825 0.554202 \n",
"8 0.7935 0.4653 8 0.552954 0.552085 \n",
"9 0.7932 0.4630 9 0.551646 0.550746 \n",
"10 0.7943 0.4676 10 0.55065 0.549902 \n",
"11 0.7943 0.4676 11 0.549835 0.549376 \n",
"12 0.7948 0.4748 12 0.549134 0.549058 \n",
"13 0.7946 0.4748 13 0.548515 0.548876 \n",
"14 0.7948 0.4811 14 0.547963 0.548785 \n",
"15 0.7948 0.4811 15 0.547474 0.548754 \n",
"16 0.7950 0.4811 16 0.547042 0.548763 \n",
"17 0.7951 0.4874 17 0.546666 0.548798 \n",
"18 0.7952 0.4874 18 0.546343 0.548848 \n",
"19 0.7954 0.4923 19 0.546069 0.548907 \n",
"20 0.7956 0.4923 20 0.545839 0.548970 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"样本分布
"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" 样本 | \n",
" 样本数 | \n",
" 样本占比 | \n",
" 坏样本数 | \n",
" 坏样本比例 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 训练集 | \n",
" 709 | \n",
" 70.90% | \n",
" 211 | \n",
" 29.76% | \n",
"
\n",
" \n",
" 1 | \n",
" 测试集 | \n",
" 291 | \n",
" 29.10% | \n",
" 89 | \n",
" 30.58% | \n",
"
\n",
" \n",
" 2 | \n",
" 合计 | \n",
" 1000 | \n",
" 100% | \n",
" 300 | \n",
" 30.00% | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" 样本 样本数 样本占比 坏样本数 坏样本比例\n",
"0 训练集 709 70.90% 211 29.76%\n",
"1 测试集 291 29.10% 89 30.58%\n",
"2 合计 1000 100% 300 30.00%"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"模型结果
"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"原模型\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" 样本集 | \n",
" AUC | \n",
" KS | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 建模数据 | \n",
" 0.7838 | \n",
" 0.4333 | \n",
"
\n",
" \n",
" 1 | \n",
" 训练集 | \n",
" 0.7851 | \n",
" 0.4507 | \n",
"
\n",
" \n",
" 2 | \n",
" 测试集 | \n",
" 0.7799 | \n",
" 0.4434 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" 样本集 AUC KS\n",
"0 建模数据 0.7838 0.4333\n",
"1 训练集 0.7851 0.4507\n",
"2 测试集 0.7799 0.4434"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"新模型\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" 样本集 | \n",
" AUC | \n",
" KS | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 建模数据 | \n",
" 0.7969 | \n",
" 0.4638 | \n",
"
\n",
" \n",
" 1 | \n",
" 训练集 | \n",
" 0.7990 | \n",
" 0.4714 | \n",
"
\n",
" \n",
" 2 | \n",
" 测试集 | \n",
" 0.7922 | \n",
" 0.4823 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" 样本集 AUC KS\n",
"0 建模数据 0.7969 0.4638\n",
"1 训练集 0.7990 0.4714\n",
"2 测试集 0.7922 0.4823"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"模型系数
"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" 变量 | \n",
" 原变量WOE拟合系数 | \n",
" 新变量WOE拟合系数 | \n",
" 释义 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" age_in_years | \n",
" 0.0160 | \n",
" 0.3054 | \n",
" 年龄 | \n",
"
\n",
" \n",
" 1 | \n",
" credit_history | \n",
" 0.0273 | \n",
" 0.3363 | \n",
" - | \n",
"
\n",
" \n",
" 2 | \n",
" duration_in_month | \n",
" 0.0201 | \n",
" 0.3177 | \n",
" - | \n",
"
\n",
" \n",
" 3 | \n",
" present_employment_since | \n",
" 0.0461 | \n",
" 0.2892 | \n",
" - | \n",
"
\n",
" \n",
" 4 | \n",
" purpose | \n",
" 0.0363 | \n",
" 0.3452 | \n",
" - | \n",
"
\n",
" \n",
" 5 | \n",
" savings_account_and_bonds | \n",
" 0.0619 | \n",
" 0.3143 | \n",
" - | \n",
"
\n",
" \n",
" 6 | \n",
" status_of_existing_checking_account | \n",
" 0.0664 | \n",
" 0.3790 | \n",
" - | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" 变量 原变量WOE拟合系数 新变量WOE拟合系数 释义\n",
"0 age_in_years 0.0160 0.3054 年龄\n",
"1 credit_history 0.0273 0.3363 -\n",
"2 duration_in_month 0.0201 0.3177 -\n",
"3 present_employment_since 0.0461 0.2892 -\n",
"4 purpose 0.0363 0.3452 -\n",
"5 savings_account_and_bonds 0.0619 0.3143 -\n",
"6 status_of_existing_checking_account 0.0664 0.3790 -"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"分数分箱
"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"建模数据上分数分箱\n",
"原模型\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" MODEL_SCORE_BIN | \n",
" 样本数 | \n",
" 坏样本数 | \n",
" 好样本数 | \n",
" 坏样本比例 | \n",
" 样本数比例 | \n",
" 总坏样本数 | \n",
" 总好样本数 | \n",
" 平均坏样本率 | \n",
" 累计坏样本数 | \n",
" 累计好样本数 | \n",
" 累计样本数 | \n",
" 累计坏样本比例 | \n",
" 累计好样本比例 | \n",
" KS | \n",
" LIFT | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" (0.52, inf] | \n",
" 100 | \n",
" 72 | \n",
" 28 | \n",
" 0.720 | \n",
" 0.100 | \n",
" 300 | \n",
" 700 | \n",
" 0.3 | \n",
" 72 | \n",
" 28 | \n",
" 100 | \n",
" 0.240 | \n",
" 0.040 | \n",
" 0.200 | \n",
" 2.400 | \n",
"
\n",
" \n",
" 1 | \n",
" (0.516, 0.52] | \n",
" 100 | \n",
" 56 | \n",
" 44 | \n",
" 0.560 | \n",
" 0.100 | \n",
" 300 | \n",
" 700 | \n",
" 0.3 | \n",
" 128 | \n",
" 72 | \n",
" 200 | \n",
" 0.427 | \n",
" 0.103 | \n",
" 0.324 | \n",
" 2.133 | \n",
"
\n",
" \n",
" 2 | \n",
" (0.511, 0.516] | \n",
" 99 | \n",
" 44 | \n",
" 55 | \n",
" 0.444 | \n",
" 0.099 | \n",
" 300 | \n",
" 700 | \n",
" 0.3 | \n",
" 172 | \n",
" 127 | \n",
" 299 | \n",
" 0.573 | \n",
" 0.181 | \n",
" 0.392 | \n",
" 1.918 | \n",
"
\n",
" \n",
" 3 | \n",
" (0.506, 0.511] | \n",
" 101 | \n",
" 37 | \n",
" 64 | \n",
" 0.366 | \n",
" 0.101 | \n",
" 300 | \n",
" 700 | \n",
" 0.3 | \n",
" 209 | \n",
" 191 | \n",
" 400 | \n",
" 0.697 | \n",
" 0.273 | \n",
" 0.424 | \n",
" 1.742 | \n",
"
\n",
" \n",
" 4 | \n",
" (0.499, 0.506] | \n",
" 100 | \n",
" 25 | \n",
" 75 | \n",
" 0.250 | \n",
" 0.100 | \n",
" 300 | \n",
" 700 | \n",
" 0.3 | \n",
" 234 | \n",
" 266 | \n",
" 500 | \n",
" 0.780 | \n",
" 0.380 | \n",
" 0.400 | \n",
" 1.560 | \n",
"
\n",
" \n",
" 5 | \n",
" (0.488, 0.499] | \n",
" 100 | \n",
" 31 | \n",
" 69 | \n",
" 0.310 | \n",
" 0.100 | \n",
" 300 | \n",
" 700 | \n",
" 0.3 | \n",
" 265 | \n",
" 335 | \n",
" 600 | \n",
" 0.883 | \n",
" 0.479 | \n",
" 0.404 | \n",
" 1.472 | \n",
"
\n",
" \n",
" 6 | \n",
" (0.481, 0.488] | \n",
" 100 | \n",
" 14 | \n",
" 86 | \n",
" 0.140 | \n",
" 0.100 | \n",
" 300 | \n",
" 700 | \n",
" 0.3 | \n",
" 279 | \n",
" 421 | \n",
" 700 | \n",
" 0.930 | \n",
" 0.601 | \n",
" 0.329 | \n",
" 1.329 | \n",
"
\n",
" \n",
" 7 | \n",
" (0.475, 0.481] | \n",
" 100 | \n",
" 10 | \n",
" 90 | \n",
" 0.100 | \n",
" 0.100 | \n",
" 300 | \n",
" 700 | \n",
" 0.3 | \n",
" 289 | \n",
" 511 | \n",
" 800 | \n",
" 0.963 | \n",
" 0.730 | \n",
" 0.233 | \n",
" 1.204 | \n",
"
\n",
" \n",
" 8 | \n",
" (0.466, 0.475] | \n",
" 100 | \n",
" 8 | \n",
" 92 | \n",
" 0.080 | \n",
" 0.100 | \n",
" 300 | \n",
" 700 | \n",
" 0.3 | \n",
" 297 | \n",
" 603 | \n",
" 900 | \n",
" 0.990 | \n",
" 0.861 | \n",
" 0.129 | \n",
" 1.100 | \n",
"
\n",
" \n",
" 9 | \n",
" (-inf, 0.466] | \n",
" 100 | \n",
" 3 | \n",
" 97 | \n",
" 0.030 | \n",
" 0.100 | \n",
" 300 | \n",
" 700 | \n",
" 0.3 | \n",
" 300 | \n",
" 700 | \n",
" 1000 | \n",
" 1.000 | \n",
" 1.000 | \n",
" 0.000 | \n",
" 1.000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" MODEL_SCORE_BIN 样本数 坏样本数 好样本数 坏样本比例 样本数比例 总坏样本数 总好样本数 平均坏样本率 \\\n",
"0 (0.52, inf] 100 72 28 0.720 0.100 300 700 0.3 \n",
"1 (0.516, 0.52] 100 56 44 0.560 0.100 300 700 0.3 \n",
"2 (0.511, 0.516] 99 44 55 0.444 0.099 300 700 0.3 \n",
"3 (0.506, 0.511] 101 37 64 0.366 0.101 300 700 0.3 \n",
"4 (0.499, 0.506] 100 25 75 0.250 0.100 300 700 0.3 \n",
"5 (0.488, 0.499] 100 31 69 0.310 0.100 300 700 0.3 \n",
"6 (0.481, 0.488] 100 14 86 0.140 0.100 300 700 0.3 \n",
"7 (0.475, 0.481] 100 10 90 0.100 0.100 300 700 0.3 \n",
"8 (0.466, 0.475] 100 8 92 0.080 0.100 300 700 0.3 \n",
"9 (-inf, 0.466] 100 3 97 0.030 0.100 300 700 0.3 \n",
"\n",
" 累计坏样本数 累计好样本数 累计样本数 累计坏样本比例 累计好样本比例 KS LIFT \n",
"0 72 28 100 0.240 0.040 0.200 2.400 \n",
"1 128 72 200 0.427 0.103 0.324 2.133 \n",
"2 172 127 299 0.573 0.181 0.392 1.918 \n",
"3 209 191 400 0.697 0.273 0.424 1.742 \n",
"4 234 266 500 0.780 0.380 0.400 1.560 \n",
"5 265 335 600 0.883 0.479 0.404 1.472 \n",
"6 279 421 700 0.930 0.601 0.329 1.329 \n",
"7 289 511 800 0.963 0.730 0.233 1.204 \n",
"8 297 603 900 0.990 0.861 0.129 1.100 \n",
"9 300 700 1000 1.000 1.000 0.000 1.000 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"新模型\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" MODEL_SCORE_BIN | \n",
" 样本数 | \n",
" 坏样本数 | \n",
" 好样本数 | \n",
" 坏样本比例 | \n",
" 样本数比例 | \n",
" 总坏样本数 | \n",
" 总好样本数 | \n",
" 平均坏样本率 | \n",
" 累计坏样本数 | \n",
" 累计好样本数 | \n",
" 累计样本数 | \n",
" 累计坏样本比例 | \n",
" 累计好样本比例 | \n",
" KS | \n",
" LIFT | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" (0.644, inf] | \n",
" 99 | \n",
" 69 | \n",
" 30 | \n",
" 0.697 | \n",
" 0.099 | \n",
" 300 | \n",
" 700 | \n",
" 0.3 | \n",
" 69 | \n",
" 30 | \n",
" 99 | \n",
" 0.230 | \n",
" 0.043 | \n",
" 0.187 | \n",
" 2.323 | \n",
"
\n",
" \n",
" 1 | \n",
" (0.599, 0.644] | \n",
" 101 | \n",
" 60 | \n",
" 41 | \n",
" 0.594 | \n",
" 0.101 | \n",
" 300 | \n",
" 700 | \n",
" 0.3 | \n",
" 129 | \n",
" 71 | \n",
" 200 | \n",
" 0.430 | \n",
" 0.101 | \n",
" 0.329 | \n",
" 2.150 | \n",
"
\n",
" \n",
" 2 | \n",
" (0.561, 0.599] | \n",
" 100 | \n",
" 43 | \n",
" 57 | \n",
" 0.430 | \n",
" 0.100 | \n",
" 300 | \n",
" 700 | \n",
" 0.3 | \n",
" 172 | \n",
" 128 | \n",
" 300 | \n",
" 0.573 | \n",
" 0.183 | \n",
" 0.390 | \n",
" 1.911 | \n",
"
\n",
" \n",
" 3 | \n",
" (0.516, 0.561] | \n",
" 100 | \n",
" 39 | \n",
" 61 | \n",
" 0.390 | \n",
" 0.100 | \n",
" 300 | \n",
" 700 | \n",
" 0.3 | \n",
" 211 | \n",
" 189 | \n",
" 400 | \n",
" 0.703 | \n",
" 0.270 | \n",
" 0.433 | \n",
" 1.758 | \n",
"
\n",
" \n",
" 4 | \n",
" (0.476, 0.516] | \n",
" 100 | \n",
" 34 | \n",
" 66 | \n",
" 0.340 | \n",
" 0.100 | \n",
" 300 | \n",
" 700 | \n",
" 0.3 | \n",
" 245 | \n",
" 255 | \n",
" 500 | \n",
" 0.817 | \n",
" 0.364 | \n",
" 0.453 | \n",
" 1.633 | \n",
"
\n",
" \n",
" 5 | \n",
" (0.423, 0.476] | \n",
" 99 | \n",
" 23 | \n",
" 76 | \n",
" 0.232 | \n",
" 0.099 | \n",
" 300 | \n",
" 700 | \n",
" 0.3 | \n",
" 268 | \n",
" 331 | \n",
" 599 | \n",
" 0.893 | \n",
" 0.473 | \n",
" 0.420 | \n",
" 1.491 | \n",
"
\n",
" \n",
" 6 | \n",
" (0.383, 0.423] | \n",
" 101 | \n",
" 12 | \n",
" 89 | \n",
" 0.119 | \n",
" 0.101 | \n",
" 300 | \n",
" 700 | \n",
" 0.3 | \n",
" 280 | \n",
" 420 | \n",
" 700 | \n",
" 0.933 | \n",
" 0.600 | \n",
" 0.333 | \n",
" 1.333 | \n",
"
\n",
" \n",
" 7 | \n",
" (0.339, 0.383] | \n",
" 100 | \n",
" 12 | \n",
" 88 | \n",
" 0.120 | \n",
" 0.100 | \n",
" 300 | \n",
" 700 | \n",
" 0.3 | \n",
" 292 | \n",
" 508 | \n",
" 800 | \n",
" 0.973 | \n",
" 0.726 | \n",
" 0.247 | \n",
" 1.217 | \n",
"
\n",
" \n",
" 8 | \n",
" (0.293, 0.339] | \n",
" 100 | \n",
" 6 | \n",
" 94 | \n",
" 0.060 | \n",
" 0.100 | \n",
" 300 | \n",
" 700 | \n",
" 0.3 | \n",
" 298 | \n",
" 602 | \n",
" 900 | \n",
" 0.993 | \n",
" 0.860 | \n",
" 0.133 | \n",
" 1.104 | \n",
"
\n",
" \n",
" 9 | \n",
" (-inf, 0.293] | \n",
" 100 | \n",
" 2 | \n",
" 98 | \n",
" 0.020 | \n",
" 0.100 | \n",
" 300 | \n",
" 700 | \n",
" 0.3 | \n",
" 300 | \n",
" 700 | \n",
" 1000 | \n",
" 1.000 | \n",
" 1.000 | \n",
" 0.000 | \n",
" 1.000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" MODEL_SCORE_BIN 样本数 坏样本数 好样本数 坏样本比例 样本数比例 总坏样本数 总好样本数 平均坏样本率 \\\n",
"0 (0.644, inf] 99 69 30 0.697 0.099 300 700 0.3 \n",
"1 (0.599, 0.644] 101 60 41 0.594 0.101 300 700 0.3 \n",
"2 (0.561, 0.599] 100 43 57 0.430 0.100 300 700 0.3 \n",
"3 (0.516, 0.561] 100 39 61 0.390 0.100 300 700 0.3 \n",
"4 (0.476, 0.516] 100 34 66 0.340 0.100 300 700 0.3 \n",
"5 (0.423, 0.476] 99 23 76 0.232 0.099 300 700 0.3 \n",
"6 (0.383, 0.423] 101 12 89 0.119 0.101 300 700 0.3 \n",
"7 (0.339, 0.383] 100 12 88 0.120 0.100 300 700 0.3 \n",
"8 (0.293, 0.339] 100 6 94 0.060 0.100 300 700 0.3 \n",
"9 (-inf, 0.293] 100 2 98 0.020 0.100 300 700 0.3 \n",
"\n",
" 累计坏样本数 累计好样本数 累计样本数 累计坏样本比例 累计好样本比例 KS LIFT \n",
"0 69 30 99 0.230 0.043 0.187 2.323 \n",
"1 129 71 200 0.430 0.101 0.329 2.150 \n",
"2 172 128 300 0.573 0.183 0.390 1.911 \n",
"3 211 189 400 0.703 0.270 0.433 1.758 \n",
"4 245 255 500 0.817 0.364 0.453 1.633 \n",
"5 268 331 599 0.893 0.473 0.420 1.491 \n",
"6 280 420 700 0.933 0.600 0.333 1.333 \n",
"7 292 508 800 0.973 0.726 0.247 1.217 \n",
"8 298 602 900 0.993 0.860 0.133 1.104 \n",
"9 300 700 1000 1.000 1.000 0.000 1.000 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"变量趋势
"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"建模数据上变量趋势\n"
]
},
{
"data": {
"text/html": [
""
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"压力测试
"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" 违约率 | \n",
" 抽样次数 | \n",
" 样本数 | \n",
" 好样本数 | \n",
" 坏样本数 | \n",
" 平均AUC | \n",
" 最大AUC | \n",
" 最小AUC | \n",
" AUC标准差 | \n",
" 95%置信区间AUC | \n",
" 平均KS | \n",
" 最大KS | \n",
" 最小KS | \n",
" KS标准差 | \n",
" 95%置信区间KS | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.01 | \n",
" 10 | \n",
" 30000 | \n",
" 29700 | \n",
" 300 | \n",
" 0.796924 | \n",
" 0.797077 | \n",
" 0.796754 | \n",
" 0.000097 | \n",
" 0.7967 - 0.7971 | \n",
" 0.4429 | \n",
" 0.443 | \n",
" 0.442 | \n",
" 0.000300 | \n",
" 0.4423 - 0.4435 | \n",
"
\n",
" \n",
" 1 | \n",
" 0.07 | \n",
" 10 | \n",
" 4285 | \n",
" 3985 | \n",
" 300 | \n",
" 0.797033 | \n",
" 0.797663 | \n",
" 0.796141 | \n",
" 0.000406 | \n",
" 0.7962 - 0.7978 | \n",
" 0.4509 | \n",
" 0.454 | \n",
" 0.449 | \n",
" 0.001446 | \n",
" 0.4481 - 0.4537 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.13 | \n",
" 10 | \n",
" 2307 | \n",
" 2007 | \n",
" 300 | \n",
" 0.796875 | \n",
" 0.798837 | \n",
" 0.794905 | \n",
" 0.001121 | \n",
" 0.7947 - 0.7991 | \n",
" 0.4595 | \n",
" 0.468 | \n",
" 0.452 | \n",
" 0.005500 | \n",
" 0.4487 - 0.4703 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.19 | \n",
" 10 | \n",
" 1578 | \n",
" 1278 | \n",
" 300 | \n",
" 0.797170 | \n",
" 0.800902 | \n",
" 0.793067 | \n",
" 0.002082 | \n",
" 0.7931 - 0.8012 | \n",
" 0.4451 | \n",
" 0.448 | \n",
" 0.443 | \n",
" 0.001513 | \n",
" 0.4421 - 0.4481 | \n",
"
\n",
" \n",
" 4 | \n",
" 0.25 | \n",
" 10 | \n",
" 1200 | \n",
" 900 | \n",
" 300 | \n",
" 0.796900 | \n",
" 0.802730 | \n",
" 0.790598 | \n",
" 0.003239 | \n",
" 0.7906 - 0.8032 | \n",
" 0.4497 | \n",
" 0.463 | \n",
" 0.444 | \n",
" 0.004713 | \n",
" 0.4405 - 0.4589 | \n",
"
\n",
" \n",
" 5 | \n",
" 0.31 | \n",
" 10 | \n",
" 967 | \n",
" 667 | \n",
" 300 | \n",
" 0.796036 | \n",
" 0.798848 | \n",
" 0.791334 | \n",
" 0.002108 | \n",
" 0.7919 - 0.8002 | \n",
" 0.4522 | \n",
" 0.455 | \n",
" 0.447 | \n",
" 0.002227 | \n",
" 0.4478 - 0.4566 | \n",
"
\n",
" \n",
" 6 | \n",
" 0.37 | \n",
" 10 | \n",
" 810 | \n",
" 510 | \n",
" 300 | \n",
" 0.798148 | \n",
" 0.802484 | \n",
" 0.791023 | \n",
" 0.002940 | \n",
" 0.7924 - 0.8039 | \n",
" 0.4515 | \n",
" 0.472 | \n",
" 0.429 | \n",
" 0.013366 | \n",
" 0.4253 - 0.4777 | \n",
"
\n",
" \n",
" 7 | \n",
" 0.43 | \n",
" 10 | \n",
" 697 | \n",
" 397 | \n",
" 300 | \n",
" 0.798294 | \n",
" 0.804748 | \n",
" 0.789597 | \n",
" 0.004683 | \n",
" 0.7891 - 0.8075 | \n",
" 0.4490 | \n",
" 0.459 | \n",
" 0.427 | \n",
" 0.010982 | \n",
" 0.4275 - 0.4705 | \n",
"
\n",
" \n",
" 8 | \n",
" 0.49 | \n",
" 10 | \n",
" 612 | \n",
" 312 | \n",
" 300 | \n",
" 0.794246 | \n",
" 0.805844 | \n",
" 0.778953 | \n",
" 0.008147 | \n",
" 0.7783 - 0.8102 | \n",
" 0.4521 | \n",
" 0.471 | \n",
" 0.425 | \n",
" 0.013597 | \n",
" 0.4254 - 0.4788 | \n",
"
\n",
" \n",
" 9 | \n",
" 0.55 | \n",
" 10 | \n",
" 545 | \n",
" 245 | \n",
" 300 | \n",
" 0.795027 | \n",
" 0.813279 | \n",
" 0.773395 | \n",
" 0.012129 | \n",
" 0.7713 - 0.8188 | \n",
" 0.4599 | \n",
" 0.489 | \n",
" 0.410 | \n",
" 0.020369 | \n",
" 0.4200 - 0.4998 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" 违约率 抽样次数 样本数 好样本数 坏样本数 平均AUC 最大AUC 最小AUC AUC标准差 \\\n",
"0 0.01 10 30000 29700 300 0.796924 0.797077 0.796754 0.000097 \n",
"1 0.07 10 4285 3985 300 0.797033 0.797663 0.796141 0.000406 \n",
"2 0.13 10 2307 2007 300 0.796875 0.798837 0.794905 0.001121 \n",
"3 0.19 10 1578 1278 300 0.797170 0.800902 0.793067 0.002082 \n",
"4 0.25 10 1200 900 300 0.796900 0.802730 0.790598 0.003239 \n",
"5 0.31 10 967 667 300 0.796036 0.798848 0.791334 0.002108 \n",
"6 0.37 10 810 510 300 0.798148 0.802484 0.791023 0.002940 \n",
"7 0.43 10 697 397 300 0.798294 0.804748 0.789597 0.004683 \n",
"8 0.49 10 612 312 300 0.794246 0.805844 0.778953 0.008147 \n",
"9 0.55 10 545 245 300 0.795027 0.813279 0.773395 0.012129 \n",
"\n",
" 95%置信区间AUC 平均KS 最大KS 最小KS KS标准差 95%置信区间KS \n",
"0 0.7967 - 0.7971 0.4429 0.443 0.442 0.000300 0.4423 - 0.4435 \n",
"1 0.7962 - 0.7978 0.4509 0.454 0.449 0.001446 0.4481 - 0.4537 \n",
"2 0.7947 - 0.7991 0.4595 0.468 0.452 0.005500 0.4487 - 0.4703 \n",
"3 0.7931 - 0.8012 0.4451 0.448 0.443 0.001513 0.4421 - 0.4481 \n",
"4 0.7906 - 0.8032 0.4497 0.463 0.444 0.004713 0.4405 - 0.4589 \n",
"5 0.7919 - 0.8002 0.4522 0.455 0.447 0.002227 0.4478 - 0.4566 \n",
"6 0.7924 - 0.8039 0.4515 0.472 0.429 0.013366 0.4253 - 0.4777 \n",
"7 0.7891 - 0.8075 0.4490 0.459 0.427 0.010982 0.4275 - 0.4705 \n",
"8 0.7783 - 0.8102 0.4521 0.471 0.425 0.013597 0.4254 - 0.4788 \n",
"9 0.7713 - 0.8188 0.4599 0.489 0.410 0.020369 0.4200 - 0.4998 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"模型报告文件储存路径:./cache/train/OnlineLearningDemo/OnlineLearning报告.docx\n",
"olcfg save to【./cache/train/OnlineLearningDemo/olcfg.json】success. \n",
"feature save to【./cache/train/OnlineLearningDemo/feature.csv】success. \n",
"model save to【./cache/train/OnlineLearningDemo/coef.dict】success. \n"
]
}
],
"source": [
"# 特征处理\n",
"cfg = {\n",
"# 模型系数,分箱信息等,请参考ol_resources_demo目录下文件\n",
"# 模型系数文件 coef.dict(如果有常数项(截距)请用const作为key)\n",
"# 分箱信息文件 feature.csv(数值型的分箱信息请按升序排列)\n",
"\"path_resources\": \"/root/notebook/ol_resources_demo\",\n",
"# 项目名称,影响数据存储位置\n",
"\"project_name\": \"OnlineLearningDemo\",\n",
"\"y_column\": \"creditability\",\n",
"# 学习率\n",
"\"lr\": 0.01,\n",
"# 单次更新批大小\n",
"\"batch_size\": 64,\n",
"# 训练轮数\n",
"\"epochs\": 20,\n",
"\"jupyter_print\": True,\n",
"# 压力测试\n",
"\"stress_test\": True,\n",
"# 压力测试抽样次数\n",
"\"stress_sample_times\": 10,\n",
"\"columns_anns\":{\n",
" \"age_in_years\":\"年龄\"\n",
"}\n",
"}\n",
"\n",
"# 训练并生成报告\n",
"trainer = OnlineLearningTrainer(data=data, **cfg)\n",
"trainer.train()\n",
"trainer.report(epoch=3)\n",
"trainer.save()"
]
},
{
"cell_type": "markdown",
"id": "b85d0e91",
"metadata": {
"pycharm": {
"name": "#%% md\n"
}
},
"source": [
"## 加载模型"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "60bac83d",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"olcfg load from【./cache/train/OnlineLearningDemo/olcfg.json】success. \n",
"项目路径:【./cache/train/OnlineLearningDemo】\n",
"coef load from【./cache/train/OnlineLearningDemo/coef.dict】success.\n",
"feature load from【./cache/train/OnlineLearningDemo/feature.csv】success.\n"
]
},
{
"data": {
"text/plain": [
"{'KS': 0.4823,\n",
" 'AUC': 0.7922,\n",
" 'Gini': 0.5843,\n",
" 'pic': }"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model = OnlineLearningTrainer.load(\"./cache/train/OnlineLearningDemo/\")\n",
"prob = model.prob(test_data)\n",
"sc.perf_eva(test_data[\"creditability\"], prob, title=\"test\", show_plot=True)"
]
},
{
"cell_type": "markdown",
"id": "51025e2d",
"metadata": {
"pycharm": {
"name": "#%% md\n"
}
},
"source": [
"## 计算psi"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "08077cb4",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"模型psi: 0.054\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" MODEL_SCORE_BIN | \n",
" psi | \n",
" 训练样本数 | \n",
" 测试样本数 | \n",
" 训练样本数比例 | \n",
" 测试样本数比例 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" (0.641, inf] | \n",
" 0.003 | \n",
" 70 | \n",
" 34 | \n",
" 0.099 | \n",
" 0.117 | \n",
"
\n",
" \n",
" 1 | \n",
" (0.599, 0.641] | \n",
" 0.001 | \n",
" 72 | \n",
" 27 | \n",
" 0.102 | \n",
" 0.093 | \n",
"
\n",
" \n",
" 2 | \n",
" (0.561, 0.599] | \n",
" 0.001 | \n",
" 71 | \n",
" 26 | \n",
" 0.100 | \n",
" 0.089 | \n",
"
\n",
" \n",
" 3 | \n",
" (0.518, 0.561] | \n",
" 0.001 | \n",
" 71 | \n",
" 27 | \n",
" 0.100 | \n",
" 0.093 | \n",
"
\n",
" \n",
" 4 | \n",
" (0.473, 0.518] | \n",
" 0.007 | \n",
" 70 | \n",
" 37 | \n",
" 0.099 | \n",
" 0.127 | \n",
"
\n",
" \n",
" 5 | \n",
" (0.422, 0.473] | \n",
" 0.000 | \n",
" 71 | \n",
" 28 | \n",
" 0.100 | \n",
" 0.096 | \n",
"
\n",
" \n",
" 6 | \n",
" (0.385, 0.422] | \n",
" 0.023 | \n",
" 71 | \n",
" 17 | \n",
" 0.100 | \n",
" 0.058 | \n",
"
\n",
" \n",
" 7 | \n",
" (0.342, 0.385] | \n",
" 0.001 | \n",
" 71 | \n",
" 27 | \n",
" 0.100 | \n",
" 0.093 | \n",
"
\n",
" \n",
" 8 | \n",
" (0.301, 0.342] | \n",
" 0.001 | \n",
" 71 | \n",
" 26 | \n",
" 0.100 | \n",
" 0.089 | \n",
"
\n",
" \n",
" 9 | \n",
" (-inf, 0.301] | \n",
" 0.016 | \n",
" 71 | \n",
" 42 | \n",
" 0.100 | \n",
" 0.144 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" MODEL_SCORE_BIN psi 训练样本数 测试样本数 训练样本数比例 测试样本数比例\n",
"0 (0.641, inf] 0.003 70 34 0.099 0.117\n",
"1 (0.599, 0.641] 0.001 72 27 0.102 0.093\n",
"2 (0.561, 0.599] 0.001 71 26 0.100 0.089\n",
"3 (0.518, 0.561] 0.001 71 27 0.100 0.093\n",
"4 (0.473, 0.518] 0.007 70 37 0.099 0.127\n",
"5 (0.422, 0.473] 0.000 71 28 0.100 0.096\n",
"6 (0.385, 0.422] 0.023 71 17 0.100 0.058\n",
"7 (0.342, 0.385] 0.001 71 27 0.100 0.093\n",
"8 (0.301, 0.342] 0.001 71 26 0.100 0.089\n",
"9 (-inf, 0.301] 0.016 71 42 0.100 0.144"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import numpy as np\n",
"# points=[0, 0.2, 0.3, 0.4, 1]\n",
"points=None\n",
"psi = model.psi(train_data, test_data, points=points)\n",
"psi\n",
"# psi[\"psi\"].sum()"
]
}
],
"metadata": {
"celltoolbar": "编辑元数据",
"kernelspec": {
"display_name": "Python [conda env:analysis]",
"language": "python",
"name": "conda-env-analysis-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.13"
},
"toc": {
"base_numbering": 1,
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {
"height": "calc(100% - 180px)",
"left": "10px",
"top": "150px",
"width": "372.364px"
},
"toc_section_display": true,
"toc_window_display": true
},
"toc-autonumbering": false,
"toc-showcode": false,
"toc-showmarkdowntxt": false,
"toc-showtags": false
},
"nbformat": 4,
"nbformat_minor": 5
}