【问题标题】:How to get indices of instances during cross-validation如何在交叉验证期间获取实例索引
【发布时间】:2021-08-29 13:21:27
【问题描述】:

我正在做一个二元分类。请问在进行K折交叉验证时,如何提取训练数据框的错误分类或分类实例的真实索引?我没有找到这个问题的答案here

here 所述,我得到了折叠中的值:

skf=StratifiedKFold(n_splits=10,random_state=111,shuffle=False)
cv_results = cross_val_score(model, X_train, y_train, cv=skf, scoring='roc_auc')
fold_pred = [pred[j] for i, j in skf.split(X_train,y_train)]
fold_pred

有什么方法可以获取错误分类(或分类)的索引吗?所以输出是一个数据框,在进行交叉验证时只有错误分类(或分类)的实例。

期望的输出: 数据帧中具有真实索引的错误分类实例。

     col1 col2 col3 col4  target
13    0    1    0    0    0
14    0    1    0    0    0
18    0    1    0    0    1
22    0    1    0    0    0

输入有 100 个实例,其中 4 个在进行 CV 时被错误分类(索引号 13、14、18 和 22)

【问题讨论】:

    标签: python classification cross-validation training-data indices


    【解决方案1】:

    来自cross_val_predict 你已经有了预测。这是在预测与真实标签不同的情况下对数据框进行子集化的问题,例如:

    from sklearn.ensemble import RandomForestClassifier
    from sklearn.model_selection import cross_val_predict, StratifiedKFold 
    from sklearn.datasets import load_breast_cancer
    import pandas as pd
    
    data = load_breast_cancer()
    df = pd.DataFrame(data.data[:,:5],columns=data.feature_names[:5])
    df['label'] = data.target
    
    rfc = RandomForestClassifier()
    skf = StratifiedKFold(n_splits=10,random_state=111,shuffle=True)
    
    pred = cross_val_predict(rfc, df.iloc[:,:5], df['label'], cv=skf)
    
    df[df['label']!=pred]
     
         mean radius  mean texture  ...  mean smoothness  label
    3          11.42         20.38  ...          0.14250      0
    5          12.45         15.70  ...          0.12780      0
    9          12.46         24.04  ...          0.11860      0
    22         15.34         14.26  ...          0.10730      0
    31         11.84         18.70  ...          0.11090      0
    

    【讨论】:

    • 嗨,据我所知,pred 会在这里给出数据集所有输入的预测。你能告诉我,我如何匹配哪个预测是哪个输入值(通过索引)。详细地说,我如何为现有的dataFrame创建一个新列,除了相应的原始标签之外,我还有预测值
    猜你喜欢
    • 2021-05-19
    • 2023-03-30
    • 1970-01-01
    • 2017-04-22
    • 2017-05-04
    • 1970-01-01
    • 1970-01-01
    • 2018-10-05
    • 2020-05-30
    相关资源
    最近更新 更多