2016-12-28 11 views
0

私はmachine learning book, written by Boštjan Kaluža, Pact publishingを研究しています。Wekaのコードを理解する

コードの簡単な定義を以下に示します。

領域を曇り、そのような表面、壁および屋根領域としてその構造 特性に基づいて、建物の加熱および冷却負荷 要件、高さを調査することを目的とcompactness.Theの研究者が使用するコードシミュレータを設計する12 異なる建物構成1835 特性。私たちの第一の目標は、各建物の特性変数である の影響を体系的に分析することです。それは であり、暖房または冷房負荷です。推定には線形回帰 モデルを使用します。線形回帰モデルは、 負荷を推定する入力変数を線形結合した関数 を構築しました。

以下の表は、我々が分析データを示す:ここ 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はtarget(出力)です。彼らはx1からy1の線形回帰を最初に必要とします。加熱負荷。だから彼らは最後のものを取り除いている。

1

ほとんどの場合、2つのモデルがあります。 1つは加熱負荷を予測し、もう1つは冷却負荷を予測する。その理由は、両方を一緒に予測しようとすると、線形回帰ではなく多変量回帰が生じるからです。線形回帰では、従属変数は1つだけです。