基本的机器学习

时间:2011-01-27 12:54:40

标签: java machine-learning

我是机器学习的新手...我正在开发一个工具,其中我需要根据多个变量的组合来预测变量的值....实现需要在Java中。 ..

Plz帮助...

...谢谢

9 个答案:

答案 0 :(得分:6)

有一个很好的斯坦福开放课程,关于机器学习与视频讲座等 看看here

答案 1 :(得分:4)

如果你想从简单的事情开始,可以考虑一个准线性模型,比如逻辑回归或线性判别分析:它们很容易理解,并且在整个互联网上都有代码。还要考虑一些更简单的(单节点)神经模型(感知器,delta规则等):它们非常容易编程。如果你想追求这个,我建议你买一本书,比如Weiss和Kulikowski的“学习计算机系统”。

答案 2 :(得分:3)

也许您可以从维基百科中搜索各种classification algorithms,例如k-nearest-neighbourSVMneural network

答案 3 :(得分:2)

我也从K-Nearest-Neighbors开始 - 它们最简单 - 可以尝试不同的数据预处理,距离测量等。它们也会导致非常好(虽然非常慢)的预测。

答案 4 :(得分:2)

如果要预测的变量是连续变量,则回归模型是关键。 许多回归技术包括最小二乘法,多项式模型,ANN和SVM。 当然,每种技术都可能有其假设或参数。

MATLAB是一个记录良好的计算环境之一。 我建议访问关于非线性回归的MATLAB文档的以下页面: http://www.mathworks.com/help/stats/nonlinear-regression-1.html#btcgzas-1

您可以先使用遗传算法GA等全局搜索方法来调整给定多项式回归模型的参数。

对于预测离散变量,也可以在给定阈值的情况下应用列出的回归模型。决策树可以是一个很好的选择。

答案 5 :(得分:2)

Weka符合您的需求。它有回归并用Java实现。

答案 6 :(得分:1)

听起来像多变量线性回归就可以完成这项工作。

答案 7 :(得分:0)

在深入研究代码之前,由于您是初学者,我建议您阅读基础知识,并对此有所了解。您无需阅读博士论文,但至少SVM,Logistic回归和神经网络的基本术语会有所帮助。通过斯坦福大学,Coursera课程和其他答案中建议的书籍,互联网上有大量的资料。

即使有现成的代码供您在互联网上使用,我之所以说您需要阅读基础知识是因为在典型的分类器中,例如SVM,神经网络甚至Logistic回归,您需要调整的各种参数,如果不了解基础知识,使用这些软件包将会很困难和令人困惑。我初学者时经历过同样的经历。

强烈关注如何处理SVM中的偏斜数据集,如何调整Logistic回归的参数,甚至如何减少数据集的维度,这将使您的实现更快更有效 - 你可以获得更好的准确性。否则,直接进入代码可能会让您再次回到这里并提出一些基本问题。我希望这很有帮助!

答案 8 :(得分:0)

如果这是一个回归问题,我建议你从Matlab中的逻辑或线性回归开始。有库,您可以获得它的代码。通过这种方式,首先通过比较样本内错误(来自您考虑用于生产的数据)和样本外错误(以测试您的预测与未考虑用于进行这些预测的数据)的数量和顺序来进行测试和查找您需要的功能和培训数据量。如果训练数据较少,请使用较少的功能或正则化。如果要素的数量和顺序非常大并且难以确定,请转移到中性网络或SVM(如果有java的SVM库,请参阅),当您在Matlab中拥有完美的系统时,请将其部署在Java中。 据我所知,ML系统在适合实际使用之前需要进行一些手动微调,而Matlab / Ocatve等环境是这种微调的最佳平台。