用于数据分类的机器学习算法。

时间:2010-06-03 15:49:33

标签: machine-learning classification

我正在寻找一些关于我应该研究哪些技术/算法来解决以下问题的指导。我目前有一种算法可以使用声学指纹识别类似声音的mp3。在每个群集中,我拥有每个文件的所有不同元数据(歌曲/艺术​​家/专辑)。对于该群集,我想选择与我的数据库中现有行匹配的“最佳”歌曲/艺术​​家/专辑元数据,或者如果没有最佳匹配,则决定插入新行。

对于群集,通常会有一些正确的元数据,但单个文件有许多类型的问题:

  • 艺术家/歌曲完全被错误命名,或者只是略有错误
  • 缺少艺术家/歌曲/专辑,但剩下的信息是
  • 该歌曲实际上是一个实时录制,但只有一些群集中的文件被标记为这样。
  • 可能只有很少的元数据,在某些情况下只是文件名,可能是艺术家 - 歌曲.mp3,或艺术家 - 专辑 - 歌曲.mp3,或其他变体

一个简单的投票算法运作得相当好,但是我希望有一些我可以训练的大量数据,这些数据可能会比我现在所获得的更多细微差别。任何与论文或类似项目的链接都将不胜感激。

谢谢!

2 个答案:

答案 0 :(得分:3)

如果我正确理解你的问题,你就有了将歌曲等分成簇的现有技术,现在想要根据定义的特征来选择该群集内容的“最佳”例子。

我会看看Bayesian classifiers。这些可以帮助推断数据中任何给定集群的关键定义特征(假设集群不是基于明确的,定义明确的分类法),并为元数据或其他参数中的噪声和错误提供一些容差。然后,根据数据和集群的性质,您可以使用maximum likelihood或抽样方法来确定给定集群中的一个或多个最具代表性的示例。

贝叶斯方法也可用于推断丢失的数据,例如丢失的元数据值。样本分布可用于根据其他数据字段中的已知值为丢失数据生成可能的值。

答案 1 :(得分:2)

Levenshtein距离是衡量两个弦之间“距离”的度量。它通过添加/删除/更改字符来计算将一个字符串更改为另一个字符串的操作数。

您可以使用此算法来帮助处理拼写错误。如果两个字符串非常接近,则很可能是拼写错误。

http://en.wikipedia.org/wiki/Levenshtein_distance