了解Weka的代码

时间:2016-12-28 23:14:39

标签: java model regression weka linear

我正在研究machine learning book, written by Boštjan Kaluža, Pact publishing

以下是代码的简要定义。

  

旨在调查加热和冷却负荷的代码   基于建筑的建筑要求   表面,墙壁和屋顶区域,高度,雾化等特征   面积和紧凑性。研究人员使用模拟器设计12   不同的房屋配置,而不同的18建筑   特点。我们的第一个目标是系统地分析   影响每个建筑物特征对目标变量的影响   是,加热或冷却负载。我们将使用线性回归   估计模型。线性回归模型构造了一个函数   线性组合输入变量以估算加热   负荷。

下表显示了我们分析的数据: enter image description here

以下是代码:

public static void main(String[] args) throws Exception {
  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

  System.out.print("Enter the path of the data file:");      
  String s = br.readLine();

  // load CSV     
  CSVLoader loader = new CSVLoader();     
  loader.setSource(new File(s));

  Instances data = loader.getDataSet();

  //We will start with learning a model for heating load by setting the class 
  //attribute at the feature position
  data.setClassIndex(data.numAttributes() - 1);

  //The second target variable—cooling load—can be now removed:
  Remove remove = new Remove();
  remove.setOptions(new String[]{"-R", data.numAttributes()+""});
  remove.setInputFormat(data);  
  data = Filter.useFilter(data, remove);

  data.setClassIndex(data.numAttributes() - 1);
  LinearRegression model = new LinearRegression();
  model.buildClassifier(data); 
  System.out.println(model);      
}

在代码中,我们删除了#34;第二个目标变量冷却负载"。我想问的问题是,我们为什么要这样做?提前谢谢。

2 个答案:

答案 0 :(得分:1)

输入x1到xn y1到y2是目标(输出)。 他们首先想要对x1到y1进行线性回归,例如:加热负荷。这就是他们删除最后一个的原因。

答案 1 :(得分:1)

最有可能会有两种型号;一个预测加热负荷,一个预测冷负荷。原因是试图一起预测它们会导致多元回归,而不是线性回归。在线性回归中,只有一个因变量。