【问题标题】:Passing 3D data for SVM training in scikit在 scikit 中为 SVM 训练传递 3D 数据
【发布时间】:2020-06-22 12:33:02
【问题描述】:

我正在尝试使用从实验中收集的数据来使用 sci-kit 创建 SVM 模型。我的输入数据是 3D 数组(下面的示例 x),标签是布尔标签(示例 y)。

X = [[[00, 00], [01, 01],[02,02]],[[10,10],[11,11],[12,12]],[[20,20],[21,21],[22,22]]]
y = [0, 1,1]
clf = svm.SVC()
clf.fit(X, y) 

但是,每当我尝试执行上面的代码时,都会收到以下错误。

ValueError: Found array with dim 3. Estimator expected <= 2.

我是机器学习和 scikit 的新手。我将不胜感激任何有助于解决此问题的帮助和指导。

【问题讨论】:

  • 这个矩阵X永远不能在python中定义。十进制整数文字中的前导零是不允许的;对八进制整数使用 0o 前缀

标签: python scikit-learn svm


【解决方案1】:

出于计算目的,X 必须是二维矩阵。对于 3+ 维度,它必须是神经网络,例如 卷积神经网络循环神经网络

在您的情况下,您应该也许展平导致二维矩阵的最后一个维度,例如:

X = [[00, 00, 01, 01, 02, 02],
     [10, 10, 11, 11, 12, 12],
     [20, 20, 21, 21, 22, 22]]

我说也许,因为这实际上取决于您的数据是什么。如果第 3 维与时间相关,则应考虑使用循环神经网络。如果它与动态有关,例如,您可以计算导数。这是一个个案应用,有时这个想法并不简单

【讨论】:

    猜你喜欢
    • 2015-05-04
    • 2013-04-14
    • 2017-06-21
    • 2013-08-27
    • 2013-10-31
    • 2014-11-03
    • 2013-07-04
    • 2015-09-26
    • 2017-04-16
    相关资源
    最近更新 更多