使用支持向量回归的预测

时间:2018-07-15 17:31:02

标签: python machine-learning scikit-learn svm prediction

在我的问题中,有四个功能(X); a,b,c,d和两个受抚养人(Y); e,f。我有一个数据集,其中包含所有这些变量的一组值。当给出新的e,f值时,如何使用python中的scikit learning通过支持向量回归通过scikit learning预测这些值?

我是ML的新手,我非常感谢一些指导,因为我发现很难遵循SVR上的scikit学习文档。

到目前为止,这是我在sklearn文档中的一个示例的帮助下完成的。

a,b,c,d

这给出了错误,

  

ValueError:预期的2D数组,取而代之的是1D数组:   :   如果数据具有单个功能,则使用array.reshape(-1,1)来重塑数据;如果包含单个样本,则使用array.reshape(1,-1)来重塑数据。

2 个答案:

答案 0 :(得分:2)

我假设您的目标变量需要在此处进行独立预测,所以如果我错了,请纠正我。我对sklearn doc示例进行了略微修改,以说明您需要执行的操作。在进行回归之前,请务必考虑缩放数据。

import numpy as np
from sklearn import svm
import matplotlib.pyplot as plt

n_samples, n_features = 10, 4 # your four features a,b,c,d are the n_features
np.random.seed(0)
y_e = np.random.randn(n_samples)
y_f = np.random.randn(n_samples)

# your input array should be formatted like this.
X = np.random.randn(n_samples, n_features)

#dummy parameters - use grid search etc to find best params
svr_rbf = svm.SVR(kernel='rbf', C=1e3, gamma=0.1)
# Fit and predict for one target, do the same for the other
y_pred_e = svr_rbf.fit(X, y_e).predict(X)

答案 1 :(得分:0)

假设您的数据文件有6列,特征值在前4列中,目标(您称为“从属”)在最后2列中,那么我认为您需要这样做:

train = pd.read_csv('/Desktop/test.csv')
X = train.iloc[:, 0:3]
y = train.iloc[:, 4:5]