SVM做多标签回归时遇到的问题及相关解决方式和解释说明
SVM可以实现多输出吗?
情况说明
这是我自己亲身遇到的问题,写在这里只是为了自己查看方便,不管问题大小。遇到的问题我是随机选入的,所以有时候上下文可能没有逻辑关系。
要解决的回归问题
输入:某结构的结构参数,总共有7个features。所有数据共5000组
输出:此结构对应的一条曲线,选取曲线上的100个点,故输出共有100个(labels)。
由于这里提到的是SVM算法,所以就算这种问题可以使用DNN之类的模型,也直接略去。
选用sklearn来编译多标签的SVR
由于sklearn中有相应的包能直接调用,所以选用sklearn。这里要调用MultiOutputRegressor,它又可以调用所有回归器,如这里的SVR。相关语句如下:
from sklearn.multioutput import MultiOutputRegressor
model = MultiOutputRegressor(SVR(kernel='poly', C=1, degree=2, verbose=1,shrinking=0))
SVR中的语意可以自己查,中文文档如下链接:
链接: sklearn中文文档.
代码实现
#coding=utf-8
from sklearn import metrics
from sklearn.model_selection import train_test_split
from sklearn.svm import SVR
from sklearn.multioutput