【问题标题】:Using LIBLINEAR to train 2D features使用 LIBLINEAR 训练 2D 特征
【发布时间】:2015-01-30 09:55:16
【问题描述】:

这是我的第一个机器学习练习,我想使用 LIBLINEAR 来训练一些数据。我工作过的训练数据存储为一个大小为 mxmxn 的多维矩阵,其中有 n 个 mxm 矩阵,mxm 矩阵中的每个单元格包含一个介于 1-255 之间的值来表示像素价值观。

包含在此数据中的是一个 nx1 标签向量。但是,尝试使用 LIBLINEAR 函数 train(training_labels, sparse(training_data)) 会产生错误。我认为这是因为 training_data 是一个 3d 矩阵。我错过或不理解哪些步骤?我假设因为 training_labels 是 nx1,所以 training_labels 向量中的每个值都映射到一个 mxm 数据矩阵。不是这样吗?

谢谢!

【问题讨论】:

  • 因此,您数据中的 m x m 矩阵本质上只有一个标签。一种方法是将m x m 矩阵转换为行向量(通过执行(M(:)).')。然后将其用作功能。

标签: matlab machine-learning liblinear


【解决方案1】:

是的,一个 m x m 数组是一个特征向量,但它具有矩阵的形式。 liblinear 可能无法处理这个问题。正如评论中所写,您必须更改数据格式。如果 A 是你的 3d 数组,那么

reshape(A, m * m, n)

为您提供 m² 行和 n 列的二维矩阵。

【讨论】:

    猜你喜欢
    • 2013-02-13
    • 2014-02-15
    • 2015-04-12
    • 2020-12-29
    • 2016-03-14
    • 1970-01-01
    • 2013-07-28
    • 2018-12-16
    • 2011-10-08
    相关资源
    最近更新 更多