【问题标题】:Scikit-Learn: How to retrieve prediction probabilities for a KFold CV?Scikit-Learn:如何检索 KFold CV 的预测概率?
【发布时间】:2015-09-02 20:26:48
【问题描述】:

我有一个由图像和相关描述组成的数据集。我已经将它们分成两个单独的数据集,它们有自己的分类器(视觉和文本),现在我想结合这两个分类器的预测来形成最终预测。

但是,我的类是二进制的,1 或 0。我最终得到两个 n_samples 列表,其中填充了 1 和 0。我假设对于大多数算法/分类器来说,这些信息不足以做出有用的预测(即当一个分类器预测 1 和另一个分类器时)。

因此,我认为我可以将预测的概率用作某种形式的决定性加权。 SKlearn 中的 SVC 具有svm.SVC.predict_proba 功能。返回一个可能如下所示的数组:

[[ 0.9486674   0.0513326 ]
 [ 0.97346471  0.02653529]
 [ 0.9486674   0.0513326 ]]

但我似乎无法将它与我的 Kfold 交叉验证函数 cross_validation.cross_val_predict 结合起来,因为它本身就是一个预测函数,不包括类似的概率预测输出。有没有办法将两者结合起来?还是我错过了什么?

可能:我是否完全错误地解决了我的问题?有没有更好的方法来结合两个二元分类器的预测?

提前致谢

【问题讨论】:

    标签: python scikit-learn classification


    【解决方案1】:

    您需要执行 GridSearchCrossValidation 而不仅仅是 CV。 CV 用于绩效评估,它本身并不适合估算器。

    from sklearn.datasets import make_classification
    from sklearn.svm import SVC
    from sklearn.grid_search import GridSearchCV
    
    # unbalanced classification
    X, y = make_classification(n_samples=1000, weights=[0.1, 0.9])
    
    # use grid search for tuning hyperparameters
    svc = SVC(class_weight='auto', probability=True)
    params_space = {'kernel': ['linear', 'poly', 'rbf']}
    # set cv to your K-fold cross-validation
    gs = GridSearchCV(svc, params_space, n_jobs=-1, cv=5)
    # fit the estimator
    gs.fit(X, y)
    gs.predict_proba(X)
    
    Out[136]: 
    array([[ 0.0074817 ,  0.9925183 ],
           [ 0.03655982,  0.96344018],
           [ 0.0074933 ,  0.9925067 ],
           ..., 
           [ 0.02487791,  0.97512209],
           [ 0.01426704,  0.98573296],
           [ 0.98574072,  0.01425928]])
    

    【讨论】:

    • 谢谢!这很好用!一个问题:如果我理解正确 GridSearchCV 用于查找最佳参数。您通过了 3 个不同的内核,这意味着他将测试所有三个正确的(导致更长的计算)?如果我只通过一个,它的行为是否与交叉验证相同,(唯一的)区别是它允许我拟合估计器并输出概率?还是我弄错了?
    • 是的,你是对的。 GridSearchCV 对每个参数组合执行 CV。因此,只提供您最喜欢的参数组合将使估计器只做 CV 部分。
    • 这是在 CV 期间完成的预测结​​果,还是在查看所有数据后预测每个观察结果?如果是后者,那不是过拟合模型吗?
    猜你喜欢
    • 2017-09-11
    • 2019-02-08
    • 2015-01-10
    • 2021-09-28
    • 2018-01-24
    • 2018-04-25
    • 2022-11-25
    • 2017-12-07
    • 2019-11-09
    相关资源
    最近更新 更多