在Python

时间:2018-02-01 06:06:36

标签: python machine-learning scikit-learn svm

我正在尝试在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])

认为根据文档可以解决问题,但这变成了一些混乱。

感谢您的支持。

1 个答案:

答案 0 :(得分:1)

假设您没有处理空间结构化数据(例如图像,声音,时间序列等),那么特征的顺序和形状对模型并不重要。 如果是这种情况,那么简单的重塑应该可以解决这个问题:

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

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

干杯