Python;SciKit Learn;SVM;形状不匹配

2024-09-30 01:21:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有40000个资产的时间序列。我把数据分为训练和目标数据。训练数据有119天的回报,目标数据有59天。我故意这样分的。在

列车:(119排回程,40000个不同系列) 目标:(59行退货,相同的40000系列)

我运行了以下代码以适应模型:

SVR_model = svm.SVR(kernel='rbf',C=100,gamma=.001).fit(t_train_scale.transpose(), t_test.transpose())
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-185-2a0fd827e2a4> in <module>()
      1 
      2 
----> 3 SVR_model = svm.SVR(kernel='rbf',C=100,gamma=.001).fit(t_train_scale.transpose(), t_test.transpose())

C:\Users\nnayyar\Anaconda\lib\site-packages\sklearn\svm\base.pyc in fit(self, X, y, sample_weight)
    174 
    175         seed = rnd.randint(np.iinfo('i').max)
--> 176         fit(X, y, sample_weight, solver_type, kernel, random_seed=seed)
    177         # see comment on the other call to np.iinfo in this file
    178 

C:\Users\nnayyar\Anaconda\lib\site-packages\sklearn\svm\base.pyc in _dense_fit(self, X, y, sample_weight, solver_type, kernel, random_seed)
    229                 cache_size=self.cache_size, coef0=self.coef0,
    230                 gamma=self._gamma, epsilon=self.epsilon,
--> 231                 max_iter=self.max_iter, random_seed=random_seed)
    232 
    233         self._warn_from_fit_status()

C:\Users\nnayyar\Anaconda\lib\site-packages\sklearn\svm\libsvm.pyd in sklearn.svm.libsvm.fit (sklearn\svm\libsvm.c:1864)()

ValueError: Buffer has wrong number of dimensions (expected 1, got 2)

从研究中,我发现使用支持向量机最常见的答案是形状必须“匹配”,但是我如何用不同大小的数据来拟合支持向量机呢?在

编辑:在这方面还需要一些帮助,我如何预测成千上万的预测,而不仅仅是下一个?在


Tags: 数据inself目标randomsklearnkernelusers
1条回答
网友
1楼 · 发布于 2024-09-30 01:21:54

问题出在fit调用中的第二个参数。在

作为per documentation,第二个参数需要是一个n个样本的数组,其中n是实例的数量,等于作为第一个参数(X)传递的矩阵的行数。在

fit(X, y, sample_weight=None)

X : {array-like, sparse matrix}, shape (n_samples, n_features)

y : array-like, shape (n_samples,)

因此,如果第一个参数的大小为40.000 x 119(因为您将其转置),那么第二个参数需要是一个大小为40.000 x 1的数组。在

但是,根据错误判断,您的第二个参数有可能超过1列(即2列)。在

相关问题 更多 >

    热门问题