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

5
我需要一些指导,了解应该研究哪些技术/算法来解决以下问题。我目前有一个使用声纹识别聚类相似mp3的算法。在每个聚类中,我有每个文件的所有不同元数据(歌曲/艺术家/专辑)。对于该聚类,我想挑选与现有数据库中的行最匹配的“最佳”歌曲/艺术家/专辑元数据,或者如果没有最佳匹配,则决定插入新行。
对于一个聚类,通常会有一些正确的元数据,但是单个文件可能存在许多问题:
  • 艺术家/歌曲名称完全错误,或者只是稍微拼错
  • 艺术家/歌曲/专辑缺失,但其他信息都在
  • 歌曲实际上是现场录音,但只有聚类中的某些文件被标记为这样。
  • 可能有非常少的元数据,在某些情况下仅有文件名,该文件名可能是artist-song.mp3,或artist-album-song.mp3或其他变化
简单的投票算法效果还不错,但我希望能够在大量数据集上进行训练,以便捕捉更多的细微差别。任何论文或类似项目的链接将不胜感激。
谢谢!

很棒的问题 - 我很想看看人们在这里提出什么。我在想,也许某种决策树学习方法可以帮助识别簇中的“最佳”歌曲?当然,无监督学习或机器学习的维基页面可能会给你一些更多的灵感。 - awshepard
1
尝试观看这里的一些讲座:机器学习课程,因为它们涵盖了许多适用技术。 - mlepage
2个回答

3
如果我正确理解您的问题,您已经有了将歌曲等内容分成群集的现有技术,现在想基于定义特征选择该群集内容的“最佳”示例。
我建议查看贝叶斯分类器。这些可以帮助推断您数据中任何给定群集的关键定义特征(假设聚类不是基于明确的、定义良好的分类法),并为元数据或其他参数中的噪声和误差提供一定的容忍度。然后,根据您的数据和群集的性质,您可以使用最大似然或抽样方法来确定一个或多个来自给定群集的最具代表性的示例。
贝叶斯方法也可用于推断缺失数据,例如缺少的元数据值。可以使用样本分布基于其他数据字段中的已知值生成缺失数据的可能值。

2
Levenshtein距离是衡量两个字符串“距离”的度量标准。它计算通过添加/删除/更改字符来将一个字符串变成另一个字符串的操作次数。
您可以使用此算法来处理拼写错误。如果两个字符串非常接近,则很可能是拼写错误。 http://en.wikipedia.org/wiki/Levenshtein_distance

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接