【问题标题】:Adding Probability to the predicted value将概率添加到预测值
【发布时间】:2017-01-07 03:56:03
【问题描述】:

我有一个这样的 testDF 并尝试进行二进制分类 [0;1]:

我还有一个结构相同的 trainDF,其中填充了错误值,用于训练目的。

我从 trainDF 制作目标和训练集:

target = trainDF.bad.values
train = trainDF.drop('bad', axis=1).values

然后我附加逻辑回归模型并进行交叉验证:

model=[]
model.append (linear_model.LogisticRegression(C=1e5))
TRNtrain, TRNtest, TARtrain, TARtest = train_test_split(train, target,test_size=0.3, random_state=0)

然后适应验证并进行预测:

model.fit(TRNtrain, TARtrain)
pred_scr = model.predict_proba(TRNtest)[:, 1]

然后拟合整个集合并预测坏值:

model.fit(train, target)
test = testDF.drop('bad', axis=1).values
testDF.bad=model.predict(test)

我收到一个填充值的df:

我的问题:如何在附加列中添加坏值 = 1 的逻辑回归概率?我应该采取什么措施?

任何帮助将不胜感激!

【问题讨论】:

    标签: python pandas scikit-learn logistic-regression prediction


    【解决方案1】:

    .predict 方法为您的输入选择最可能的分配。如果您想访问可以使用的概率:

    log_prob = model.predict_log_proba(test)  # Log of probability estimates.
    prob = model.predict_proba(test)   # Probability estimates.
    

    您可以通过列分配将其中任何一个直接添加到数据框中。

    testDF['bad_prob'] = model.predict_proba(test)
    

    【讨论】:

      【解决方案2】:

      上面的解决方案给出了一个错误,它掩盖了 predict_proba 中存在的错误!

      给出一个错误的结果:

      y_pred_prob_df = pd.DataFrame(model.predict_proba(test))
      testDF['Prob_0'] = y_pred_prob_df[0]
      testDF['Prob_1'] = y_pred_prob_df[1]
      print test.shape
      

      验证:

      predicted = test.loc[y_pred_test == 1]
      predicted.reset_index(inplace=True)
      prob_predicted = y_pred_prob_df.loc[y_pred_test == 1]
      prob_predicted.reset_index(inplace=True)
      

      Concat_all 显示索引是否匹配。 简单地进行分配会将不匹配的数据放在同一行! 做一个 concat 可以清楚地显示错误,并且可以处理。

      concat_all = pd.concat([predicted, prob_predicted], axis=1)  
      print shape.concat_all
      
      concat_all['a']=concat_all[0]+concat_all[1]
      concat_all=concat_all[-concat_all['a'].isnull()]
      
      print shape.concat_all
      

      【讨论】:

        猜你喜欢
        • 2016-05-23
        • 1970-01-01
        • 1970-01-01
        • 2019-09-16
        • 1970-01-01
        • 2019-06-16
        • 2013-05-22
        • 1970-01-01
        相关资源
        最近更新 更多