【问题标题】:Include Labels from SciKit Learn Prediction包括来自 SciKit Learn Prediction 的标签
【发布时间】:2020-11-13 05:45:56
【问题描述】:

我已经成功地对下面的数据集进行了预测,但我正试图弄清楚如何将模型的预测输出映射回 TEAM 标签。我正在使用 Python 3、Pandas 和 SciKit Learn。

样本数据:

Team    A   B    C  Score
Red     5   7   15  100
Green   4   8   22  57
Blue    3   8   33  23
Yellow  6   8   44  122 

这是我设置的简单线性回归的示例。

#file input
learning = sample_data

#features
feature_cols = ['A','B','C']


#feature harness
X = learning.loc[:, feature_cols]

#target harness
Y = learning.Score

#model fit
model = LinearRegression()
model.fit(X, Y)

# set up model harness for X
Xnew = learning.values

# set up model harness for Y
ynew = model.predict(Xnew)

print(ynew)

使用它,我可以生成如下预测数组:

[108.3970182  181.02527571 230.70598661 120.18243645]

但我正在尝试获得如下所示的结果,因此当我将没有 SCORE 的新数据输入模型时,我可以预测每个团队的 SCORE:

[Red:108.3970182  Green:181.02527571 Blue:230.70598661 Yellow:120.18243645]

我对格式很灵活,我只需要将预测输出与输入中的每个特定团队进行匹配。

【问题讨论】:

    标签: python python-3.x pandas machine-learning scikit-learn


    【解决方案1】:

    您可以将它们作为新列添加到数据集。

    
    # new data new_data (assumes DataFrame)
    # You don’t have to pass new_data.values to Scikit-learn 
    # Scikit-learn accepts DataFrame as it is
    
    predictions = model.predict(new_data)
    
    new_data['predictions'] = predictions 
    
    print(new_data)
    

    【讨论】:

      【解决方案2】:

      您想要在数据中添加新列吗:

      learning['prediction'] = ynew
      

      或者你想要一本字典:

      d = {k:v for k,v in zip(learning['Team'], ynew)}
      

      【讨论】:

      • 与上述相同的评论 - 当我尝试将 Team 作为 feature_col 运行时,我收到一个错误 > ValueError: could not convert string to float: 'Red'
      猜你喜欢
      • 2016-10-17
      • 2019-06-28
      • 2012-10-29
      • 2017-08-05
      • 2018-05-18
      • 2015-04-12
      • 2016-06-18
      • 2014-12-31
      • 1970-01-01
      相关资源
      最近更新 更多