之前研究完分类的逻辑回归,继续搞一下线性回归看看。线性回归在数据挖掘领域应也是非常常见,即根据现有的数据集(行向量组成的矩阵),(训练)模拟出一个合适的规律(函数),来推测任何新给出的数据组合(向量)应该得到的值。
具体的描述可以参见各种博客,怎么推导的看来看去一知半解,但总而言之结果也简单,就是计算得到一个“适当”的多元线性函数Y=a0+a1*x1+a2*x2+a3*x3+…+ak*xk。我就不在这里Ctrl+v了。下面只看看代码上如何集成。
Weka中有对应的线性回归LinearRegression。使用起来道理也一样,就是先构造模型,然后使用;使用时就是构造一个Instance,然后用classifyInstance函数来得到预测值。
训练模型
static AbstractClassifier trainModel(String arffFile, int classIndex) throws Exception {
File inputFile = new File(arffFile); //训练文件
ArffLoader loader = new ArffLoader();
loader.setFile(inputFile);
Instances insTrain = loader.getDataSet(); // 读入训练文件
insTrain.setClassIndex(classIndex);
LinearRegression linear = new LinearRegression();
linear.buildClassifier(insTrain);//根据训练数据构造分类器
return linear;<