初级
计算模型的Gini系数
未完成
初级参考
完整示例代码供参考,建议自己理解后重新输入
def solve():
from pyodide.http import open_url
from io import StringIO
loans_clean_csv = open_url("https://data.zuihe.com/dbd/riskctrl/state_04/loans_clean.csv").read()
loans_featured_csv = open_url("https://data.zuihe.com/dbd/riskctrl/state_04/loans_featured.csv").read()
scorecard_data_csv = open_url("https://data.zuihe.com/dbd/riskctrl/state_04/scorecard_data.csv").read()
woe_table_csv = open_url("https://data.zuihe.com/dbd/riskctrl/state_04/woe_table.csv").read()
import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import roc_auc_score
from io import StringIO
df = pd.read_csv(StringIO(scorecard_data_csv))
woe_cols=[c for c in df.columns if c.endswith('_woe')]
X=df[woe_cols].fillna(0); y=df['isDefault']
X_tr,X_te,y_tr,y_te=train_test_split(X,y,test_size=0.2,random_state=42,stratify=y)
lr=LogisticRegression(C=0.1,max_iter=500,random_state=42); lr.fit(X_tr,y_tr)
auc_val=roc_auc_score(y_te,lr.predict_proba(X_te)[:,1])
gini=2*auc_val-1
print(f"AUC: {auc_val:.4f}")
print(f"Gini: {gini:.4f}")
print(f"是否达标(Gini>0.3): {'是' if gini>0.3 else '否'}")
示例
输入
solve()
期望输出
AUC: 0.6949 Gini: 0.3899 是否达标(Gini>0.3): 是
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199