在处理变长目标大小的多输出回归问题时,可以使用Scikit-learn中的MultiOutputRegressor模块,并利用函数fit()进行训练和predict()进行预测。
代码示例:
from sklearn.multioutput import MultiOutputRegressor
from sklearn.svm import SVR
import numpy as np
#准备数据, 一个样本有1~5个特征,每个特征有2个输出值。
X_train = np.array([[[1,2], [2,4], [3,6]],
[[2,3],[3,5]],
[[3,4],[4,7],[5,9],[6,11]],
[[1,2]],
])
Y_train = np.array([[[2,4], [4,8]],
[[3,5], [5,9]],
[[4,7], [7,12], [9,16], [11,20]],
[[2,4]],
])
#选择回归模型
model = MultiOutputRegressor(SVR(kernel='linear'), n_jobs=-1)
#进行训练
model.fit(X_train, Y_train)
#进行预测
X_test = np.array([[[7,13]],
[[8,15],[9,17]],
[[10,18]],
[[2,3], [5,8], [7,11]],
])
Y_pred = model.predict(X_test)
下一篇:变长视频分类的数据准备