如何解决我们如何提供多个库存数据并获得多个输出?
通常,我们对由 HIGH、LOW、OPEN、CLOSE 列组成的美元/英镑等数据进行预测。这只是对单个数据集的预测。我的问题是如何对多个数据进行预测,例如美元/英镑、欧元/美元、XAU/美元、美元/日元。将所有这些数据馈送到单个模型并获得对所有这些数据集的预测,即多个输出。这可能吗??谢谢。
解决方法
如果我正确地回答了您的问题,您想要的是将数据输入到一个模型中,该模型中有两个模型,并根据输入的数据分别在一个模型 (model1 or model2)
上运行。为此,您可以创建一个具有最小接口的模型类,该类将创建一个 model
,它将根据特征的值进行选择
举个例子:
import pickle as pkl
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import LabelEncoder
#Combined of both df1 and df2
data= {
'HIGH': [1.0,1.0,0.0,0.0],'LOW': [0.0,2.0,3.0,3.0],'OPEN': [1.0,'END' : [3.0,4.0,6.0,1.0]
'target_price': [0.0,1.5,5.1,2.1,1.5]
}
df= pd.DataFrame(data)
X,y=df.iloc[:,:-1],df.iloc[:,-1]
X= X.astype('float32')
# create two models
model1= LinearRegression()
model2 = LinearRegression()
ser_model1= X['x']==0.0
model1.fit(X[ser_model1],y[ser_model1])
model2.fit(X[~ser_model1],y[~ser_model1])
# define a class that mocks the model interface
class CombinedModel:
def __init__(self,model1,model2):
self.model1= model1
self.model2= model2
def predict(self,X,**kwargs):
ser_model1= X['x']==0.0
return pd.concat([
pd.Series(self.model1.predict(X[ser_model1]),index=X.index[ser_model1]),pd.Series(self.model2.predict(X[~ser_model1]),index=X.index[~ser_model1])
]
).sort_index()
# create a model with the two trained sum models
# and pickle it
model= CombinedModel(model1,model2)
model.predict(X)
with open('model.pkl','wb') as fp:
pkl.dump(model,fp)
model= model1= model2= None
# test load it
with open('model.pkl','rb') as fp:
model= pkl.load(fp)
model.predict(X)
OR 如果您想集成
然后使用 VotingClassifier
投票分类器实现背后的想法是结合概念上不同的机器学习分类器,并使用多数票或平均预测概率(软投票)来预测类标签
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。