我正在处理一个二进制分类问题,即需要将我的数据分为两类。对于每个实体都提取了5个特征。
现在我想决定我应该使用哪种算法。另外,我想知道哪种语言最方便,它的库可能已经支持这个算法,并且我可以实现它。
我只是ML的初学者。所以这可能是一个非常愚蠢的问题。但任何帮助都是最好的。
谢谢和问候,罗希特
发布于 2011-12-28 07:52:38
如果你是机器学习的新手,你应该采取一种温和的方法来学习它。不要期望使用“最佳”算法(它并不存在)。取而代之的是,找到一些关于机器学习的好资源,在互联网上有很多免费的信息,比如维基百科或课堂讲稿。或者,如果你需要更多的结构,也有书可用。所以考虑到这一点...
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?
发布于 2011-12-28 20:27:45
为了解决简单的分类问题,我建议使用逻辑回归。它很容易理解和实现。您可以试验更复杂的算法,例如支持向量机、神经网络等。但是,请记住,在机器学习中,通常不是您选择使用的算法,因为拥有良好的数据集以及精心选择的特征非常重要。
还存在使用分类或聚类算法的问题。如果您有一个已经标记的数据集,我建议您进行分类。但是,如果您的数据集是而不是标签的,则分类算法将无法工作,您将不得不使用聚类。K-means是一种简单但广泛使用且高效的解决方案。
就语言/工具/环境/工具而言,如果你没有扎实的编程背景,我建议你使用Octave、R或Matlab。如果你这样做了,试着用你最流利的语言找到一个好的库。我可以推荐一个好的,开源的java机器学习库- (Mahout)。
最后,我推荐this斯坦福大学关于机器学习的在线课程。它是免费的,适合初学者,而且它不需要任何其他科学或工程领域的背景。
发布于 2011-12-29 16:14:35
如果您是机器学习的新手,可以在斯坦福在线机器学习课程(http://www.ml-class.org/)中查看一些机器学习算法。这门课非常实用,你可以学习一些基本的分类算法(e.g.logistic回归,支持向量机,神经网络),还提供了一些分类作业(在octave/matlab中)。并且有一些实用的方法来开发分类系统。这可能会对你有帮助。
https://stackoverflow.com/questions/8650361
复制相似问题