在我的问题中,有四个功能(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)来重塑数据。
答案 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]