← 返回题库
中级

用G-mean寻找最优分类阈值

未完成
中级参考 代码结构已给出,请填写 ____ 处
def solve():
    from pyodide.http import open_url
    from io import StringIO
    loans_featured_csv = open_url(____).read()
    import pandas as pd, numpy as np
    from sklearn.ensemble import GradientBoostingClassifier
    from sklearn.model_selection import train_test_split
    from sklearn.metrics import confusion_matrix
    from io import StringIO
    df = pd.read_csv(StringIO(____))
    num_cols=[c for c in df.select_dtypes(____).columns if c not in ['____','____'] and not c.endswith(____)]
    X=df[num_cols].fillna(____); y=df['____']
    X_tr,X_te,y_tr,y_te=train_test_split(____)
    gb=GradientBoostingClassifier(____)
    gb.fit(____)
    prob=gb.predict_proba(____)[:,____]
    best_gm,best_thr=____,____
    for thr in np.arange(____,____,____):
        pred=(____).astype(____)
        tn,fp,fn,tp=confusion_matrix(____).ravel()
        gm=np.sqrt(tp/(____)*tn/(____))
        if gm>best_gm: best_gm,best_thr=gm,thr
    print(____)
    print(____)

示例

输入
solve()
期望输出
最优阈值: 0.20
最优G-mean: 0.6440
Python 代码 🔒 登录后使用
🔒

登录后即可练习

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