我正在开展一个学校项目,我们正在使用SVR来预测一系列值的下一个值(例如股票价值)。我们在scikit(Python)上找到了一些示例代码,我们无法理解它的语法。
有人可以帮我们解读这个吗?
X = np.sort(5 * np.random.rand(40, 1), axis=0)
Y = np.sin(X).ravel()
from sklearn.svm import SVR
svr_rbf = SVR(kernel='rbf', C=1e3, gamma=0.1)
y_rbf = svr_rbf.fit(X, Y).predict(X)
我理解这段代码的前4行...我的问题更多的是y_rbf行...这究竟是如何工作的?我们是根据训练集进行曲线拟合,然后根据相同的输入向量进行预测吗?
我不确定语法是什么意思。任何帮助表示赞赏。
谢谢。
答案 0 :(得分:1)
最后一行可以分解为:
svr_rbf.fit(X, Y) # 1
y_rbf = svr_rbf.predict(X) # 2
您构建了一个输出y依赖于X的模型。根据documentation你:
根据给定的训练数据拟合SVM模型。
在此使用您之前构建的模型来预测每个点的值(y)。正如documention所说:
对X中的样本进行回归。
这对于实验来说很好,但只是为了让你明白:一般来说,你会想要在数据上测试你的模型,而不是用来拟合模型,以避免过度拟合。如果您不熟悉交叉验证,可以阅读。