机器学习入门好文——用java实现简单的机器学习
目的
机器学习的目的,就是让程序从已知的数据中自己找出规律,然后将规律应用到未知的数据中去。构建机器学习模型时,最重要的部分便是模型的评估。一个模型没有经过交叉验证的评估,那么得出的准确率都是不太可靠的。模型评估中,除了训练数据和测试数据,还会涉及到验证数据。
测试和训练
机器学习的目的,就是要让程序从已知的数据中自己找出规律,然后将规律应用到未知的数据中去。不同于常规程序的步骤,由程序员事先设置好各种条件与跳转指令或者步骤,由程序一步步执行,直到程序结尾。机器学习的程序,程序员只负责设计程序如何去学习,至于学到什么规律,那主要是由给定的数据来决定的。再将学到的规律,应用到未知的数据集上去,这才是机器学习的核心魅力。
这其中便涉及两份数据集,一份给“机器”用于学习的数据,通常也叫训练数据集(training data),机器学习到的知识,通常叫模型。最后机器使用学习到的模型,对未知数据进行预测,这份数据通常叫测试数据(testing data)。因此,在程序中,会看到大量的train和test相关的变量,基本上的意思都指训练数据与测试数据相关。
环境
Java 1.8
IntelliJ IDEA
下载Weka.jar库
下载链接:http://www.cs.waikato.ac.nz/ml/weka/snapshots/weka_snapshots.html
下载stable.XX.zip,解压缩文件,在IDEA中将weka.jar添加到Java项目的库路径中。
准备数据
3.使用Weka测试和训练
以下代码使用Weka提供的一组分类器。它在给定的数据集上使用训练模型,并使用10-split交叉验证。