← 返回题库
初级

计算模型的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): 是
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码