【问题标题】:Making python sklearn probability estimate into indexed series将python sklearn概率估计变成索引系列
【发布时间】:2017-12-05 06:19:33
【问题描述】:

我正在努力对 60,000 个争议索赔做出预测响应概率(二进制:是或否 (1, 0)),每个争议索赔都有其唯一的参考 ID。使用数据的前 3/4 作为训练集 (X_train, y_train) 以逻辑回归作为分类器来预测后 1/4 作为测试集 (X_test) 的响应概率,我想将输出变成 60,000 索引系列,使得输出看起来像

reference_id
   184932    0.531842
   185362    0.401958
   185361    0.105928
   185338    0.018572
             ...
   276499    0.208567
   276500    0.818759
   269851    0.018528
   Name: response, dtype: float32

我实现了以下 Python 代码:

y_score_lr = LogisticRegression(C=10).fit(X_train, y_train).predict_proba(X_test)[:,1]
y_proba = y_score_lr

结果是一个像这样的numpy数组

array([ 0.05225495,  0.00522493,  0.07369773, ...,  0.06994582, 0.06995239,  0.12659022])

这是一个 numpy 数组。

但是我不确定这个数组是否真的匹配原始 X_test 数据帧中对应的 reference_id,我还没有想出如何将它转换成一个索引“系列”,就像我在本文开头提到的那样发帖。

如果有人能指出有用的快捷方式来实现这一点,我们将不胜感激。

我也尝试过使用

y_score_lr = LogisticRegression(C=10).fit(X_train, y_train).predict_proba(X_test)[:,1]
y_proba = y_score_lr.tolist()

将数组转换为列表,但仍无法将其转换为带有“reference_id”索引的所需系列类型输出。

谢谢。

此致,

【问题讨论】:

    标签: python arrays dataframe indexing scikit-learn


    【解决方案1】:

    首先,是的,它匹配X_test 的值:第一行对应y_proba 数组中的第一个值。

    其次,有几种方法可以解决这个问题。

    假设您想要dtype=pandas.Series,可能的解决方案之一可能如下:

    import pandas as pd
    import numpy as np
    
    y_proba_indexed = pd.Series(
        data=y_proba, index=X_test['reference_id'], name='response', dtype=np.float32)
    
    print(y_proba_indexed)
    

    这会给你这样的东西:

    84932     0.531842
    185362    0.401958
    185361    0.105928
    185338    0.018572
          ....
    276499    0.208567
    276500    0.818759
    269851    0.018528
    Name: response, dtype: float32
    

    例如,要访问引用reference_id = 185338 的概率,您可以输入:y_proba_indexed.loc[[185338]],输出将为:

    185338    0.018572
    Name: respone, dtype: float32
    

    【讨论】:

    • 谢谢!这正是我想要达到的。我特别感谢您澄清了 X_test 的值与其在 y_proba 数组中的对应值之间的匹配。谢谢。
    猜你喜欢
    • 2014-08-11
    • 2015-02-13
    • 2016-03-25
    • 2014-04-07
    • 2021-03-14
    • 2023-03-05
    • 2013-12-24
    • 2018-07-29
    • 2015-07-29
    相关资源
    最近更新 更多