我已经成功地对下面的数据集进行了预测,但我在尝试弄清楚如何将模型的预测输出映射回TEAM标签。我使用的是Python 3、Pandas和SciKit Learn。
样本数据:
Team A B C ScoreRed 5 7 15 100Green 4 8 22 57Blue 3 8 33 23Yellow 6 8 44 122
这是我设置的简单线性回归的一个例子。
#file inputlearning = sample_data#featuresfeature_cols = ['A','B','C']#feature harnessX = learning.loc[:, feature_cols]#target harnessY = learning.Score#model fitmodel = LinearRegression()model.fit(X, Y)# set up model harness for XXnew = learning.values# set up model harness for Yynew = 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]
我对格式持开放态度,我只需要将预测输出与输入中的每个特定团队匹配即可。
回答:
你可以在数据集上添加一个新列来实现这一点。
# new data new_data (assumes DataFrame)# You don’t have to pass new_data.values to Scikit-learn # Scikit-learn accepts DataFrame as it ispredictions = model.predict(new_data)new_data['predictions'] = predictions print(new_data)