使用支持向量回归的预测

Posted

技术标签:

【中文标题】使用支持向量回归的预测【英文标题】:Predictions using Support Vector Regression 【发布时间】:2018-12-23 08:06:31 【问题描述】:

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

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

这是我迄今为止在 sklearn 文档中的示例帮助下所做的。

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

svr_rbf = SVR(kernel='rbf', C=1e3, gamma=0.1)
y_rbf = svr_rbf.fit(X, y).predict(X)

lw = 2
plt.scatter(X, y, color='darkorange', label='data')
plt.plot(X, y_rbf, color='navy', lw=lw, label='RBF model')
plt.xlabel('data')
plt.ylabel('target')
plt.title('Support Vector Regression')
plt.legend()
plt.show()

这给出了错误,

ValueError: Expected 2D array, got 1D array instead: : 如果您的数据具有单个特征,则使用 array.reshape(-1, 1) 重塑您的数据,如果数据包含单个样本,则使用 array.reshape(1, -1)。

【问题讨论】:

您究竟需要什么帮助?拟合还是预测? 您想同时预测e and f ,例如新样本 N 有 e,f = [0,1] 或独立 ?? Pandas 索引在这里为您的 X 变量显示错误 - 您正在选择单列 感谢您指出。我将其更改为选择正确的列。 【参考方案1】:

我假设您的目标变量需要在这里独立预测,如果我错了,请纠正我。我稍微修改了 sklearn 文档示例以说明您需要做什么。请在执行回归之前考虑缩放您的数据。

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)

【讨论】:

@KrishiH 将该数据从 csv 加载到变量 X 和 y 并使用它。【参考方案2】:

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

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

【讨论】:

以上是关于使用支持向量回归的预测的主要内容,如果未能解决你的问题,请参考以下文章

支持向量回归的时间序列预测

LSSVM回归预测基于matlab人工蜂群算法优化最小二乘支持向量机LSSVM数据回归预测含Matlab源码 2213期

LSSVM回归预测基于matlab天鹰算法优化最小二乘支持向量机AO-LSSVM数据回归预测含Matlab源码 1848期

LSSVM回归预测基于matlab天鹰算法优化最小二乘支持向量机AO-LSSVM数据回归预测含Matlab源码 1848期

支持向量机回归预测SVR——MATLAB超详细代码实现过程

LSSVM回归预测基于matlab灰狼算法优化最小支持向量机GWO-LSSVM数据预测含Matlab源码 2259期