【问题标题】:KNN on mnist dataset in RR中mnist数据集上的KNN
【发布时间】:2017-11-13 01:54:01
【问题描述】:

我正在使用 R 包附带的 mnist 数据集。你可能知道,它的划分方式如下:

  1. mnist$train$x:60,000 行乘 784 列。我认为是我们正在分析的图像。
  2. mnist$train$y:60,000 行 x 10 列。每列代表我们试图识别的数字之一的目标。如果一个 例如,某行是 6,那么该行的第 6 列将有 1.
  3. mnist$test$x:10,000 行,784 列。
  4. mnist$test$y:10,000 行 x 10 列。

这个数据集没有标签,只有这 4 个矩阵。我想知道knn 是否可以在这个数据集上完成,因为它没有标记,knn 是一种监督学习技术。如果是这样,参数是什么(训练、测试和 cl = 训练集真实分类的因子)?

【问题讨论】:

  • 你确实是糊涂了; mnist$train$y 包含您的标签,一键编码。更仔细地阅读相关的 Keras 教程,看看他们也将问题作为一个监督学习者来处理......

标签: r keras knn


【解决方案1】:

我认为这里有些混乱。

数据集有标签(!!) - mnist$train$x 是用于训练的 28*28 扁平图像,mnist$train$y 是它们对应的标签。
正如您自己所说,mnist$train$y 中的第 i 行是 mnist$train$x 中图像 i 的 one-hot 编码标签。
所以数据被标记了。

可以在此数据集上完成 KNN(但它可能不会为您提供结果的状态)。
首先,将每个 one-hot 标签转换为整数(在行上使用 argmax)。
然后在 mnist$train$x 上运行你的 KNN 算法作为 x,你的整数标签作为 y 和你的 K(超参数)。

【讨论】:

    猜你喜欢
    • 2012-01-03
    • 2019-07-31
    • 2014-12-02
    • 2016-10-23
    • 2019-01-15
    • 1970-01-01
    • 1970-01-01
    • 2015-04-21
    • 2021-12-21
    相关资源
    最近更新 更多