【问题标题】:Training and testing data in machine learning机器学习中的训练和测试数据
【发布时间】:2019-07-03 15:37:43
【问题描述】:

我想使用 K-means 算法训练数据,然后在另一种仅删除一列的类似数据上对其进行测试。我是机器学习的新手,因此将https://www.datacamp.com/community/tutorials/k-means-clustering-python 中的代码应用于我的一个数据集,但是在这个网站中,预测部分发生在哪里?我们只是提供数据并测试准确性。我们如何将算法应用于测试数据(显然会有所不同)来预测缺失属性的值?

【问题讨论】:

    标签: machine-learning k-means


    【解决方案1】:

    当您开始使用机器学习时,您经常会遇到困惑。

    来自Wikipedia

    监督学习是学习一个机器学习任务 根据示例输入输出将输入映射到输出的函数 对。它从标记的训练数据中推断出一个函数,包括 一组训练样例。在监督学习中,每个示例 是由一个输入对象(通常是一个向量)和一个 所需的输出值(也称为监控信号)。一种 监督学习算法分析训练数据并产生 一个推断函数,可用于映射新示例。一个 最佳方案将允许算法正确确定 未见实例的类标签。这需要学习 算法从训练数据泛化到看不见的情况 一种“合理”的方式(参见归纳偏差)。

    同样来自Wikipedia

    无监督学习是机器学习的一个分支,它从 未标记、分类或分类的测试数据。 无监督学习不是响应反馈,而是识别 数据中的共性并根据存在或不存在做出反应 每条新数据中的这些共性。

    K-means 聚类算法是一种无监督学习算法。 在无监督学习中,您没有标签,因为您没有尝试预测某些事情。相反,您正试图找到一种方法来聚类您的数据,将具有共同特征的数据点组合在一起。

    首先在监督学习中使用测试集(通常是validation)的原因是评估模型的泛化属性以避免over-fitting。然而,在无监督学习中,您无法评估这一点,因为您不知道数据的实际集群。因此,没有必要使用测试集。

    【讨论】:

    • 好的,这就是我们不需要在 K-means 聚类中训练数据的原因。您只需要提供数据集并预测输出值并检查准确性即可。对吗?
    • 正确,但是通常您无法检查 k-means 的准确性,因为您不知道实际输出。通常,当您知道实际答案时,使用监督算法(例如 SVM)几乎总是更好。 “隐藏”输出标签并训练无监督算法是一种非常糟糕的做法,几乎永远不会给您带来好的结果(在您的情况下为 62%)。我强烈建议您阅读 this 以获得更好的解决方法,并阅读 this 以获得更好的 k-means 用例。
    • 模糊 C 均值算法是否也一样?
    • 任何无监督或聚类算法都遵循相同的规则。
    猜你喜欢
    • 2020-02-21
    • 2020-07-01
    • 2016-12-03
    • 2018-06-12
    • 1970-01-01
    • 2015-12-21
    • 2017-06-25
    • 2017-04-06
    • 1970-01-01
    相关资源
    最近更新 更多