如果你想从简单的东西开始,可以考虑使用准线性模型,例如逻辑回归或线性判别分析:它们易于理解,并且在互联网上有大量的代码。此外,还可以考虑一些更简单的(单节点)神经模型(感知器、Delta规则等):它们非常容易编程。如果你想深入学习,我建议购买一本书,如Weiss和Kulikowski的《学习计算机系统》。
如果要预测的变量是连续的,那么回归模型就是关键。包括最小二乘法、多项式模型、人工神经网络和支持向量机等多种回归技术。当然,每种技术都可能有其假设或参数。MATLAB是一个文档完备的计算环境之一。我建议访问 MATLAB 文档中关于非线性回归的以下页面:http://www.mathworks.com/help/stats/nonlinear-regression-1.html#btcgzas-1 您可以从使用全局搜索方法(如遗传算法)开始,来调整给定多项式回归模型的参数。对于预测离散变量,可以应用上述列出的回归模型,只需给定阈值即可。决策树也是一个不错的选择。
在深入研究代码之前,由于您是初学者,我建议您先了解基础知识并掌握它。您不需要阅读博士论文,但至少了解SVM、逻辑回归和神经网络的基本术语会很有帮助。互联网上有大量材料可供参考,包括斯坦福大学、Coursera课程和其他答案中推荐的书籍。即使互联网上有现成的代码可供使用,我之所以说您需要了解基础知识,是因为在典型的分类器(如SVM、神经网络甚至逻辑回归)中,有各种参数需要调整,如果没有对基础知识的理解,使用这些软件包将会很困难和混乱。当我还是个初学者时,我也有同样的经历。掌握如何处理SVM中的偏斜数据集、如何调整逻辑回归的参数以及如何减少数据集的维数,将使您的实现更快、更高效,从而获得更好的准确性。否则,直接深入代码可能会让您再次提出一些基本问题。希望这对您有所帮助!
如果这是一个回归问题,我建议您从Matlab中的逻辑回归或线性回归等方面开始。有许多库和代码可供使用。通过这种方式,首先测试并比较样本内误差(来自您考虑用于生产的数据)和样本外误差(将您的预测与未考虑进行预测的数据进行比较),以确定所需的特征数量、顺序和训练数据量。如果训练数据较少,则使用较少的特征或正则化。如果特征的数量和顺序非常大且难以确定,则转向神经网络或SVM(请查看是否有Java的SVM库),当您在Matlab中拥有完美的系统后,再将其部署到Java中。就我所见,机器学习系统在实际使用前需要进行大量手动微调,而像Matlab / Octave这样的环境是进行微调的最佳平台。