【问题标题】:Fitting an SVM model in Python在 Python 中拟合 SVM 模型
【发布时间】:2018-07-11 09:36:48
【问题描述】:

我正在尝试在 scikit-learn 中拟合一个 SVM 模型,如下所示:

model.fit(trainFeatures, trainLabels)

问题是我的trainFeatures 大小是(127, 9, 6, 1),而我的trainLabels 大小是(127,2)

当我回到documentation,尤其是fit(X, y, sample_weight=None)时,它提到:

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

我应该怎么做才能使我的数据格式适合fit

我尝试从尺寸中提取特定部分,例如说:

trainFeatures = (trainFeatures[0],trainFeatures[1]*trainFeatures[2])

认为根据文档可以解决问题,但结果变得一团糟。

感谢您的支持。

【问题讨论】:

  • 请添加更多关于数据描述的细节。为什么形状是(127, 9, 6, 1)?假设127是样本数,(9,6,1)代表什么?为什么目标有 2 列?是多标签问题吗?或者你有一个热编码的类?

标签: python machine-learning scikit-learn svm


【解决方案1】:

假设您不使用空间结构化数据(例如图像、声音、时间序列等),那么特征的顺序和形状与模型无关。 如果是这样的话,那么一个简单的重塑应该可以解决问题:

model.fit(trainFeatures.reshape(127, -1), trainLabels)

无论如何,我建议您使用trainFeatures.squeeze() 删除第四个维度。
如果您觉得特征的 9 x 6 结构很重要,那么您可以尝试使用卷积神经网络(如果每个样本在语义上是一个网格)或递归神经网络(如果每个样本是 9 个步骤的序列) 6 维信号)。

干杯

【讨论】:

    猜你喜欢
    • 2020-10-02
    • 2019-07-16
    • 1970-01-01
    • 2013-09-07
    • 2017-05-19
    • 2016-05-17
    • 2017-08-19
    • 1970-01-01
    • 2021-12-29
    相关资源
    最近更新 更多