在 Scikit-learn 中运行 predict_proba() 后如何保持行索引?

Posted

技术标签:

【中文标题】在 Scikit-learn 中运行 predict_proba() 后如何保持行索引?【英文标题】:How to keep row index after running predict_proba() in Scikit-learn? 【发布时间】:2021-11-26 03:18:55 【问题描述】:

我创建了一个逻辑回归模型来预测活动的接受率,其中 0 = 不接受,1 = 接受。现在,我需要将三个特定的列放在一起:person_id、实际接受度score(1 或 0)以及 sklearn 的predict_proba() 的输出。

person_id 和它各自的实际接受度score 我都可以从测试集中得到,这样就解决了。但是,如果我想使用它们的行索引将来自predict_proba() 的输出与person_idscore 合并,那么我就有问题了。这是因为predict_proba() 重置了索引。所以,我不能保证如果我将它与person_id 和接受score 连接起来,它们将匹配其各自的行。这些是我的问题:

    有什么方法可以返回 predict_proba() 并保留 X_test 的原始行索引?下面是 X_test 集上 predict_proba() 的代码行。

    df_proba = pd.DataFrame(model.predict_proba(X_test)[:,1], columns=['proba'])
    

    尽管重置了索引,predict_proba() 是否仍保持行顺序?因此,我可以简单地按列 (axis=1) 连接?

【问题讨论】:

【参考方案1】:

predict_proba() 方法不打乱数据。应用上述方法后,将维护 X_test 的行索引。换句话说,预测的第一个条目对应于 X_test 的第一行。您可以简单地连接person_idscoreprediction

【讨论】:

以上是关于在 Scikit-learn 中运行 predict_proba() 后如何保持行索引?的主要内容,如果未能解决你的问题,请参考以下文章

python中使用scikit-learn的决策树算法运行错误

在 Scikit-learn 中运行 predict_proba() 后如何保持行索引?

Java—Java 8 新增特性详解(Predicate和Stream)

scikit-learn 谱聚类:无法找到潜伏在数据中的 NaN

如何让scikit-learn Nearest Neighbors算法运行得更快?

Guava中Predicate的常见用法