Java 基本机器学习

Java 基本机器学习,java,machine-learning,Java,Machine Learning,我正在开发一个工具,需要根据多个变量的组合来预测一个变量的值 实现需要使用Java编程语言 谢谢。也许你可以先在维基百科上搜索各种类似的内容,或者斯坦福大学有一个很好的关于机器学习的开放课程,包括视频讲座等。 看一下。 < P>如果你想从简单的东西开始,考虑一个准线性模型,比如逻辑回归或线性判别分析:它们很容易理解,并且在互联网上都有代码。还考虑一些简单的(单节点)神经模型(感知器,delta规则等):它们非常容易编程。如果你想继续这样做,我建议你买一本书,比如Weiss和Kulikowski写

我正在开发一个工具,需要根据多个变量的组合来预测一个变量的值

实现需要使用Java编程语言


谢谢。

也许你可以先在维基百科上搜索各种类似的内容,或者

斯坦福大学有一个很好的关于机器学习的开放课程,包括视频讲座等。

看一下。

< P>如果你想从简单的东西开始,考虑一个准线性模型,比如逻辑回归或线性判别分析:它们很容易理解,并且在互联网上都有代码。还考虑一些简单的(单节点)神经模型(感知器,delta规则等):它们非常容易编程。如果你想继续这样做,我建议你买一本书,比如Weiss和Kulikowski写的《学习的计算机系统》。

听起来多元线性回归可以完成这项工作。

我也从K-近邻开始——它们最简单——人们可以尝试不同的数据预处理、距离测量,等等。它们也会导致非常好的(尽管非常慢)预测。

如果要预测的变量是连续变量,那么回归模型是关键。 有许多回归技术,包括最小二乘法、多项式模型、人工神经网络和支持向量机。 当然,每种技术都有其假设或参数

MATLAB是一个有良好文档记录的计算环境。 我建议访问关于非线性回归的MATLAB文档的以下页面:

您可以使用全局搜索方法(如遗传算法GAs)来调整给定多项式回归模型的参数


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

在深入研究代码之前,由于您是一名初学者,我建议您阅读基础知识,并牢牢掌握它。你不必读博士论文,但至少支持向量机、逻辑回归和神经网络的基本术语会有所帮助。通过斯坦福大学、Coursera课程和其他答案中建议的书籍,互联网上有大量的资料

尽管互联网上有现成的代码可供您使用,但我之所以说您需要阅读基础知识,是因为在典型的分类器(如SVM、神经网络甚至逻辑回归)中,有各种参数需要您进行调整,并且不了解基础知识,使用这些软件包既困难又混乱。当我还是初学者的时候,我也经历过同样的经历


有了对如何处理SVM中的倾斜数据集、如何调整逻辑回归的参数,甚至如何减少数据集的维数的强大掌握,它将使您的实现更快、更高效—这样您可以获得更好的准确性。否则,直接跳入代码可能会让您再次带着一些基本问题回到这里。我希望这是有帮助的

符合您的需要。它有回归,用Java实现。

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

这是作业吗?不:)我知道我的问题很抽象。。。我需要一个想法来开始我的工作……我强烈建议你看看Weka()——基于Java的非常好的机器学习工具。如果没有更多细节,你将收到的建议不太可能对你的特定任务非常有用。