我一直致力于尝试的事情 通过使用我自己的数据集找出列的作者。
我打算使用mlpy python库。它有很好的文档, (约100页pdf)。我也对其他图书馆开放 建议。
问题是,我迷失在数据挖掘和机器学习中 概念。有太多的工作,太多的算法和 概念。
我在问路,我应该学习哪些算法/概念, 并搜索我的具体问题。
到目前为止,我已经构建了一个类似这样的数据集。
| author | feature x | feature y | feature z | some more features |
|--------+-----------+-----------+-----------+--------------------|
| A | 2 | 4 | 6 | .. |
| A | 1 | 1 | 5 | .. |
| B | 12 | 15 | 9 | .. |
| B | 13 | 13 | 13 | .. |
现在,我将获得一个新列并解析它,之后我将拥有所有 专栏的功能,我的目标是弄清楚谁 该专栏的作者是。
因为我不是ML家伙,所以我只能想到在两者之间找到距离 所有行上的功能并选择最接近的行。但我很确定 这不是我应该去的方式。
我会欣赏任何指示,链接,阅读等。
答案 0 :(得分:3)
如果您有足够的训练数据,那么您可以使用kNN(k-Nearest Neighbor)分类器。它很容易理解,但功能强大。
检查scikits.ann是否有可能的实施。
This tutorial这里是scikits-learn中的一个很好的参考。
修改:此外,这是kNN of scikits-learn的页面。您可以从给定的示例中轻松理解它。
而且,mlpy也是seems to have kNN。
答案 1 :(得分:2)
你有很多选择在mlpy上实现的算法,所以你应该没问题。我同意Steve L说支持向量机很棒,但即使它更容易使用内部细节也不容易掌握,特别是如果你是ML的新手。
除了kNN,您还可以考虑分类树(http://en.wikipedia.org/wiki/Decision_tree_learning)和Logistic回归(http://en.wikipedia.org/wiki/Logistic_regression)。
对于初学者来说,决策树的优势在于可以产生易于理解且易于调试的输出。
另一方面,如果您需要更多数据,Logistic回归可以为您提供良好的结果并且可以很好地扩展。我会说,在你的情况下,你会寻找算法,在读了一下之后你会发现使用起来更舒服。大多数时候,他们都非常有能力给你非常好的结果。祝你好运!
答案 2 :(得分:2)
正如其他人提到的,您可以使用大量算法进行作者身份归因。 kNN是一个很好的起点。此外,您可以尝试其他几种算法,例如Logistic Regression,朴素贝叶斯分类器和神经网络,这些算法可能会提供更准确的预测。
我也对作者归属和抄袭检测感兴趣。实际上,我已经将上述技术用于源代码作者归属。您可以使用以下研究论文了解更多相关信息。
此外,如果您打算使用Python,您还可以查看http://scikit-learn.org/stable/库。这也是一个综合性的库,附带了很好的文档。
答案 3 :(得分:1)
鉴于你不熟悉ML,我建议的前三种算法是:
1-逻辑回归 2-朴素贝叶斯 3-支持向量机
如果您只对预测性能感兴趣,拥有足够的训练数据且没有缺失值,您会发现使用更复杂的方法(如贝叶斯网络)不会在预测性能方面带来统计上显着的改善。即使他们这样做,您也应该从这三种(相对)简单的方法开始,并将它们用作参考基准。