2016-12-28 76 views
0

我正在研究machine learning book, written by Boštjan Kaluža, Pact publishing瞭解Weka的密碼

下面是代碼的簡短定義。

,旨在調查加熱和冷卻負載基於它們的結構 特性,如表面,牆壁和屋頂面積,高度,起霧 區域的建築物 要求的代碼,和compactness.The研究人員用模擬器來設計不同的房屋配置,同時改變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);  
} 

在代碼,我們已經移除「第二個目標變量冷卻負荷」 。我想問的問題是,我們爲什麼這樣做?提前致謝。

回答

1

x1到xn是輸入 y1到y2是目標(輸出)。他們首先想要對x1到y1進行線性迴歸,例如,加熱負荷。這就是爲什麼他們刪除最後一個。

1

最有可能會有兩個模型;一個用於預測加熱負載,另一個用於預測製冷負載。原因在於試圖一起預測它們會導致多元迴歸,而不是線性迴歸。在線性迴歸中,只有一個因變量。