Machine learning 我们如何输入多个库存数据并获得多个输出?

Machine learning 我们如何输入多个库存数据并获得多个输出?,machine-learning,deep-learning,time-series,stock,forex,Machine Learning,Deep Learning,Time Series,Stock,Forex,通常,我们对数据进行预测,例如美元/英镑,它由高、低、开、关列组成。这只是对单个数据集的预测。我的问题是如何对多种数据进行预测,如美元/英镑、欧元/美元、美元/美元、美元/日元。将所有这些数据输入到单个模型,并获得所有数据集的预测,即多个输出。这可能吗??谢谢。如果我没有弄错您的问题,您想要的是将数据输入到一个模型中,该模型中有两个模型,并根据输入的数据分别在一个模型上运行(模型1或模型2)。为此,您可以创建一个具有最小接口的模型类,该接口将创建一个基于特征值选择的模型 举个例子: import

通常,我们对数据进行预测,例如美元/英镑,它由高、低、开、关列组成。这只是对单个数据集的预测。我的问题是如何对多种数据进行预测,如美元/英镑、欧元/美元、美元/美元、美元/日元。将所有这些数据输入到单个模型,并获得所有数据集的预测,即多个输出。这可能吗??谢谢。

如果我没有弄错您的问题,您想要的是将数据输入到一个模型中,该模型中有两个模型,并根据输入的数据分别在一个模型上运行
(模型1或模型2)
。为此,您可以创建一个具有最小接口的模型类,该接口将创建一个基于特征值选择的
模型

举个例子:

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, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0],
 'LOW': [0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0],
 'OPEN': [1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0],
 'END' : [3.0, 1.0, 3.0, 4.0, 2.0, 3.0, 1.0, 2.0, 6.0, 1.0, 2.0, 1.0]
 'target_price': [0.0, 2.0, 1.5, 0.0, 5.1, 4.0, 0.0, 1.0, 2.0, 0.0, 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)
如果要合奏

然后使用


投票分类器实现背后的思想是结合概念上不同的机器学习分类器,并使用多数投票或平均预测概率(软投票)要预测类标签

如果其他数据集具有相同的功能和列,并且模型的训练也已在这些数据集的接触下完成,则可以将所有数据帧附加到一个数据帧中,以便进行预测。但这是一种通用方法,取决于您编写的数据集和代码。提供问题所在的样本数据集和代码总是一件好事。我的意思是,我如何用8列(高、低、开、关、高1、低1、开1、,关闭1并获得2个预测,一个在前4列上,另一个在后4列上。通用方法是将数据帧分成两部分,前4列
df1=df.iloc[:,0:3]
和后4列
df2=df.iloc[:,4:7]
然后分别使用您的
模型对这两个DF进行预测。predict()
但是要根据您训练模型的方式再次进行迭代,我们将立即进行训练和预测,而不是分别对df1和df2进行训练和预测?您的问题不清楚,您是否仍处于模型构建阶段?还是已经建立了一个模型?如果您正在构建一个模型,那么您必须创建两个数据帧,并且必须分别进行
测试、培训
,或者可以通过将最后4列附加到前四列
(高、低、开、关)
来进行单次培训,前提是您已经对每个货币值正确进行了预处理。如果您已经进行了预构建,您可以根据自己的意愿预测df,我们可以只使用一个模型吗?我认为您应该清楚自己的需求。如果您有两个数据集的两个模型,并且希望根据数据集的需要运行模型,则上述答案将起作用;如果您希望集成模型并获得结果,则可以使用
VotingClassier
。我已经更新了这两种情况的答案,请选择适合您情况的答案