【发布时间】:2011-01-13 22:43:43
【问题描述】:
是否有任何数据挖掘算法比较?在性能、准确性和生成稳健模型所需的数据量方面进行比较。 目前看来,像 bagging 和 boosting 这样的集成学习算法被认为是最准确的。 我没有要解决的具体问题。这只是一个理论问题。
【问题讨论】:
标签: algorithm data-mining
是否有任何数据挖掘算法比较?在性能、准确性和生成稳健模型所需的数据量方面进行比较。 目前看来,像 bagging 和 boosting 这样的集成学习算法被认为是最准确的。 我没有要解决的具体问题。这只是一个理论问题。
【问题讨论】:
标签: algorithm data-mining
您应该在网上搜索有关数据挖掘的调查论文。
这是一个:Top Ten Algorithms in Data Mining,它给出了排名而不是并排。 (它可能有,但我还没有通过论文)。
【讨论】:
在鲁棒性和准确性方面一般很难比较机器学习算法。然而,人们可以研究他们的一些优点和缺点。我考虑了以下一些最著名的机器学习算法(这绝不是对事物的完整描述,只是我的看法):
决策树:最突出的 C4.5 算法。它们具有生成易于解释的模型的优势。然而,它们容易过度拟合。存在许多变体。
贝叶斯网络具有强大的统计根。它们在对不完整数据进行推理的领域特别有用。
人工神经网络是一种应用广泛且功能强大的技术。理论上,它们能够逼近任意函数。然而,它们需要调整大量参数(网络结构、节点数量、激活函数……)。它们也有作为黑匣子工作的缺点(难以解释模型)
支持向量机可能被认为是最强大的技术之一。使用著名的核技巧,理论上总是可以实现 100% 的可分离性。与 ANN 不同,他们寻求优化一个唯一可解决的问题(没有局部最小值)。然而,它们可能是计算密集型的,并且难以应用于大型数据集。 SVM 绝对是一个开放的研究领域。
还有一类元学习算法,如集成学习技术,如 bagging、boosting、stacking 等……它们本身并不完整,而是用作改进和组合其他算法的方法。
最后我应该提到,一般来说,没有一种算法比另一种更好,选择哪种算法在很大程度上取决于我们所处的领域、数据以及数据的预处理方式以及许多其他因素。
【讨论】:
ROC curves 已被证明可用于评估机器学习技术,特别是在比较和评估不同的分类算法方面。 introduction to ROC analysis 可能对您有所帮助。
【讨论】:
根据您的问题,您似乎对分类算法感兴趣。首先,我想让您知道,数据挖掘不仅限于分类。还有其他一些数据挖掘任务,例如挖掘频繁模式、聚类等。
要回答您的问题,性能取决于算法,但也取决于数据集。对于某些数据集,某些算法可能比其他一些数据集提供更好的准确性。除了大多数数据挖掘书籍(C4.5 等)中描述的经典分类算法外,还有很多关于这些主题的研究论文。如果您想知道现在哪些算法通常表现更好,我建议您阅读研究论文。研究论文通常提供与以前算法的一些性能比较。但就像我说的,性能可能取决于您的数据。所以你可能不得不尝试算法来找出答案!
【讨论】: