【问题标题】:What is the correct way to prepare dataset for machine learning? [closed]为机器学习准备数据集的正确方法是什么? [关闭]
【发布时间】:2013-10-22 01:14:12
【问题描述】:

首先,感谢您阅读这篇文章。

在机器学习方面我是个菜鸟,我正在尝试使用 ML 对一些数据进行分类。现在我已经完成了一些有监督和无监督学习算法的基本阅读,例如决策树、聚类、神经网络等。

我正在努力理解的是为 ML 问题准备数据集的正确整体过程。

如何为机器学习准备数据集,以便衡量算法的准确性?

我目前的理解是,为了评估准确性,应该为算法提供预先标记的结果(来自数据集的重要子集?),以便评估预期结果与算法决策之间的差异?

如果这是正确的,那么如何对大型数据集进行预标记?我的数据集很大,手动标注不可行。

另外,任何有关在 Python 中进行机器学习的技巧都将不胜感激!

非常感谢您提前提供的帮助!

最好的问候,

迈克

【问题讨论】:

  • 这是一个非常广泛的问题。标记/注释数据很昂贵:研究人员支付学生费用,支付 Mechanical Turk 上的匿名陌生人,并且可能使用一堆我不熟悉的其他方法。使用标准数据集进行了大量研究,以 a) 实现技术之间的定量比较 b) 不必担心标签...... 987654322@
  • 感谢 E. Mechanical Turk 先生是个好人!

标签: python machine-learning data-analysis statistics


【解决方案1】:

这是任何机器学习算法中最重要的部分。您需要构建数据集、提取、制作、缩放、规范化特征。

如果你想使用一些监督学习算法,你需要标记数据。有几种方法可以实现这一点:

  1. 用手划线。
  2. 使用一些无监督学习算法来标记数据。

您需要使用一些 python 机器学习工具包,例如 - scikit-learn。 scikit-learn 包含许多有用的数据处理、特征提取和预处理工具。例如,它可以使用 DictVictorizer 对您的数据进行矢量化。您可以仅使用 scikit-learn 添加缺失值、缩放和标准化特征。

我建议从这里开始 - http://scikit-learn.org/stable/

【讨论】:

  • 我强烈反对选项“2”。虽然使用半监督方法得到了一些有趣的结果(比如标记部分数据,以监督方式训练模型,然后在用模型本身标记的集合上进行训练)——以无监督方式进行标记是相当没有意义的方法。如果可以找到一个无监督模型来对数据进行聚类,那么我们为什么要通过在该数据上训练另一个模型来近似该模型?当然有一些场景和高级方法使用这种方法,但是将其作为 ML 领域初学者的选择是完全错误的
  • 感谢 Lain 和 lejlot 的回复。遗憾的是,没有对这个程序给予足够的关注,因为它对结果有很大的影响。这就引出了下一个问题,比如如果我手动标记数据,训练数据集的可接受大小是多少?数据集大小是否有任何“规范”或“可接受”阈值?
  • 您还可以使用一些自动和手动程序...例如使用 Amawon Mechanical Turk 或 Fiverr...
猜你喜欢
  • 1970-01-01
  • 2011-02-06
  • 1970-01-01
  • 2021-09-21
  • 2014-05-19
  • 2019-02-23
  • 2011-03-11
  • 2022-01-15
  • 2012-09-22
相关资源
最近更新 更多