选择机器学习算法和工具

时间:2011-12-27 23:36:01

标签: machine-learning computer-vision

我正在研究二进制分类问题,即需要将我的数据分为两类。为每个实体提取了5个功能。

现在我想决定应该使用哪种算法。 另外我想知道什么是最方便的语言,它有可能已经支持这个算法的库,我可以实现它。

我只是ML的初学者。所以这可能是一个非常愚蠢的问题。但任何帮助都会很棒。

谢谢和问候, 罗希特夏尔

3 个答案:

答案 0 :(得分:4)

如果您不熟悉机器学习,那么您应该采取适度的方法来学习它。不要期望潜入“最佳”算法(它不存在)。相反,在机器学习上找到一些好的资源,互联网上有很多免费信息,比如维基百科或讲义。或者,如果您需要更多结构,也可以使用书籍。所以考虑到这一点......

1)选择一个简单的分类算法开始。它不一定是'最好',但它必须是一个你可以掌握的简单。尝试使用更复杂的方法毫无意义,因为如果它产生意外的输出,你将无法弄清楚原因。也许从简单的聚类算法开始,例如k-means

2)选择您熟悉的语言/环境。许多地方都有基本的机器学习算法。数学家可能熟悉Matlab或R.程序员可以在Python,C,Java,Fortran中找到库...如果您不熟悉任何统计软件包并且不熟悉编程,也许这会有所帮助 - https://stackoverflow.com/questions/335063/whats-the-easiest-way-to-learn-programming

如果您不熟悉机器学习并熟悉几种方法,我建议您查看以下问题: When to choose which machine learning classifier?

答案 1 :(得分:2)

为了解决一个简单的分类问题,我建议使用逻辑回归。理解和实施起来很简单。您可以尝试更复杂的算法,例如支持向量机神经网络等。但是,请记住,通常在机器学习中,它不是您选择使用的算法,因为通过精心选择的功能获得良好的数据集非常重要。

还有使用分类或聚类算法的问题。如果您有一个已标记的数据集,我会建议分类。但是,如果您的数据集标记为,则分类算法将不起作用,您必须使用群集。 K-means 是一种简单但广泛使用且有效的解决方案。

就语言/工具/环境/工具而言,如果你没有扎实的编程背景,我会建议使用Octave,R或Matlab。如果你这样做,尝试用你最熟练的语言找到一个好的库。我可以为java建议一个好的,开源的机器学习库 - (Mahout)。

最后,我推荐this斯坦福机器学习在线课程。它是免费的,适合初学者,并且不需要任何其他科学或工程领域的任何背景。

答案 2 :(得分:1)

如果您不熟悉机器学习,可以在斯坦福在线机器学习课程(http://www.ml-class.org/)查看一些机器学习算法。该课程非常实用,您可以学习一些基本的分类算法(例如逻辑回归,SVM,神经网络)。还提供了一些分类练习作业(八度/ matlab)。并且有一些实用的方法来开发分类系统。它可能对你有帮助。