機器學習之AdaBoost原理與代碼實現

                                   AdaBoost原理與代碼實現

                                       本文系做者原創,轉載請註明出處: http://www.javashuo.com/article/p-mtcyztpt-g.html html

基本思路

Adaboost體現的是「三個臭皮匠,賽過一個諸葛亮」,它是一種迭代算法,其核心思想是針對同一個訓練集訓練不一樣的分類器(弱分類器),算法

而後把這些弱分類器集合起來,構成一個更強的最終分類器(強分類器)。訓練過程以下(參考Andy的機器學習--淺析Adaboost算法,他說得很是形象,貼切。)數組

       

簡單的來講:圖中的y1(x),y2(x)....ym(x)都是弱分類器(顧名思義,弱分類器就是分類能力很弱,僅比隨機分類好一點點的分類器)
步驟:
1.  初始化了弱分類器 
2.  對  進行迭代處理產生了分類器 
3.  對   迭代處理產生了 ......
4.  依次迭代最後產生弱分類器 
5.  將m個分類器加權處理,獲得一個強處理器
 

關鍵問題

1.  每一輪遍歷如何改變數據的權值或機率分佈?app

2.  如何將多個弱分類器組合成一個強分類器?less

對於這兩個問題的解答,就是下面介紹的Adaboost原理機器學習

AdaBoost原理

AdaBoos流程

AdaBoost(adaptive boosting)的運行過程以下:訓練數據中的每一個樣本,並賦予其一個權重,這些權重構成了向量D。一開始,ide

這些權重都初始化成相等值。首先在訓練數據上訓練出一個弱分類器並計算該分類器的錯誤率,而後在同一數據集上再次訓練學習

弱分類器。在分類器的第二次訓練中,將會從新調整每一個樣本的權重,其中第一次分對的樣本的權重會下降,而第一次分錯的樣本測試

權重將會提升。爲了從全部弱分類器中獲得最終的分類結果,Adaboost爲每一個分類器都分配了一個權重alpha,這些alpha值是基於優化

每一個弱分類器的錯誤率計算的。其中,錯誤率  的定義爲:

        

而alpha的計算公式以下:

      

D的計算方法以下(始終把握一個原則:正確分類時權重要下降,錯誤分類時權重要升高,權重升高意味着提高關注度,須要重點優化):

若是某個樣本被正確分類,那麼該樣本的權重更改成:

         

而若是某個樣本被錯分,那麼該樣本的權重更改成:

          

在計算出D以後,AdaBoost又開始進入下一輪迭代。AdaBoost算法會不斷地重複訓練和調整權重的過程,直到訓練錯誤率爲0或者分類器的數目達到用戶

的指定值爲止。

AdaBoost算法原理

假設咱們的訓練樣本是

訓練集的在第k個弱學習器的輸出權重爲

因爲多元分類是二元分類的推廣,這裏假設咱們是二元分類問題,輸出爲{-1,1},則第k個弱分類器Gk(x)在訓練集上的加權偏差率爲:

看弱學習器權重係數,對於二元分類問題,第k個弱分類器Gk(x)的權重係數爲:

更新更新樣本權重D。假設第k個弱分類器的樣本集權重係數爲 ,則對應的第k+1個弱分類器的樣本集權重係數爲:

 是規範化因子,它使  成爲一個機率分佈。

集合策略,Adaboost分類採用的是加權求和法,最終的強分類器爲

代碼實現

輸入數據

這裏一樣是使用一個訓練數據文件 horseColicTraining2.txt 和一個測試數據文件 horseColicTest2.txt

horseColicTraining2.txt

  1 2.000000    1.000000    38.500000    66.000000    28.000000    3.000000    3.000000    0.000000    2.000000    5.000000    4.000000    4.000000    0.000000    0.000000    0.000000    3.000000    5.000000    45.000000    8.400000    0.000000    0.000000    -1.000000
  2 1.000000    1.000000    39.200000    88.000000    20.000000    0.000000    0.000000    4.000000    1.000000    3.000000    4.000000    2.000000    0.000000    0.000000    0.000000    4.000000    2.000000    50.000000    85.000000    2.000000    2.000000    -1.000000
  3 2.000000    1.000000    38.300000    40.000000    24.000000    1.000000    1.000000    3.000000    1.000000    3.000000    3.000000    1.000000    0.000000    0.000000    0.000000    1.000000    1.000000    33.000000    6.700000    0.000000    0.000000    1.000000
  4 1.000000    9.000000    39.100000    164.000000    84.000000    4.000000    1.000000    6.000000    2.000000    2.000000    4.000000    4.000000    1.000000    2.000000    5.000000    3.000000    0.000000    48.000000    7.200000    3.000000    5.300000    -1.000000
  5 2.000000    1.000000    37.300000    104.000000    35.000000    0.000000    0.000000    6.000000    2.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    74.000000    7.400000    0.000000    0.000000    -1.000000
  6 2.000000    1.000000    0.000000    0.000000    0.000000    2.000000    1.000000    3.000000    1.000000    2.000000    3.000000    2.000000    2.000000    1.000000    0.000000    3.000000    3.000000    0.000000    0.000000    0.000000    0.000000    1.000000
  7 1.000000    1.000000    37.900000    48.000000    16.000000    1.000000    1.000000    1.000000    1.000000    3.000000    3.000000    3.000000    1.000000    1.000000    0.000000    3.000000    5.000000    37.000000    7.000000    0.000000    0.000000    1.000000
  8 1.000000    1.000000    0.000000    60.000000    0.000000    3.000000    0.000000    0.000000    1.000000    0.000000    4.000000    2.000000    2.000000    1.000000    0.000000    3.000000    4.000000    44.000000    8.300000    0.000000    0.000000    -1.000000
  9 2.000000    1.000000    0.000000    80.000000    36.000000    3.000000    4.000000    3.000000    1.000000    4.000000    4.000000    4.000000    2.000000    1.000000    0.000000    3.000000    5.000000    38.000000    6.200000    0.000000    0.000000    -1.000000
 10 2.000000    9.000000    38.300000    90.000000    0.000000    1.000000    0.000000    1.000000    1.000000    5.000000    3.000000    1.000000    2.000000    1.000000    0.000000    3.000000    0.000000    40.000000    6.200000    1.000000    2.200000    1.000000
 11 1.000000    1.000000    38.100000    66.000000    12.000000    3.000000    3.000000    5.000000    1.000000    3.000000    3.000000    1.000000    2.000000    1.000000    3.000000    2.000000    5.000000    44.000000    6.000000    2.000000    3.600000    1.000000
 12 2.000000    1.000000    39.100000    72.000000    52.000000    2.000000    0.000000    2.000000    1.000000    2.000000    1.000000    2.000000    1.000000    1.000000    0.000000    4.000000    4.000000    50.000000    7.800000    0.000000    0.000000    1.000000
 13 1.000000    1.000000    37.200000    42.000000    12.000000    2.000000    1.000000    1.000000    1.000000    3.000000    3.000000    3.000000    3.000000    1.000000    0.000000    4.000000    5.000000    0.000000    7.000000    0.000000    0.000000    1.000000
 14 2.000000    9.000000    38.000000    92.000000    28.000000    1.000000    1.000000    2.000000    1.000000    1.000000    3.000000    2.000000    3.000000    0.000000    7.200000    1.000000    1.000000    37.000000    6.100000    1.000000    0.000000    -1.000000
 15 1.000000    1.000000    38.200000    76.000000    28.000000    3.000000    1.000000    1.000000    1.000000    3.000000    4.000000    1.000000    2.000000    2.000000    0.000000    4.000000    4.000000    46.000000    81.000000    1.000000    2.000000    1.000000
 16 1.000000    1.000000    37.600000    96.000000    48.000000    3.000000    1.000000    4.000000    1.000000    5.000000    3.000000    3.000000    2.000000    3.000000    4.500000    4.000000    0.000000    45.000000    6.800000    0.000000    0.000000    -1.000000
 17 1.000000    9.000000    0.000000    128.000000    36.000000    3.000000    3.000000    4.000000    2.000000    4.000000    4.000000    3.000000    3.000000    0.000000    0.000000    4.000000    5.000000    53.000000    7.800000    3.000000    4.700000    -1.000000
 18 2.000000    1.000000    37.500000    48.000000    24.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    1.000000
 19 1.000000    1.000000    37.600000    64.000000    21.000000    1.000000    1.000000    2.000000    1.000000    2.000000    3.000000    1.000000    1.000000    1.000000    0.000000    2.000000    5.000000    40.000000    7.000000    1.000000    0.000000    1.000000
 20 2.000000    1.000000    39.400000    110.000000    35.000000    4.000000    3.000000    6.000000    0.000000    0.000000    3.000000    3.000000    0.000000    0.000000    0.000000    0.000000    0.000000    55.000000    8.700000    0.000000    0.000000    1.000000
 21 1.000000    1.000000    39.900000    72.000000    60.000000    1.000000    1.000000    5.000000    2.000000    5.000000    4.000000    4.000000    3.000000    1.000000    0.000000    4.000000    4.000000    46.000000    6.100000    2.000000    0.000000    1.000000
 22 2.000000    1.000000    38.400000    48.000000    16.000000    1.000000    0.000000    1.000000    1.000000    1.000000    3.000000    1.000000    2.000000    3.000000    5.500000    4.000000    3.000000    49.000000    6.800000    0.000000    0.000000    1.000000
 23 1.000000    1.000000    38.600000    42.000000    34.000000    2.000000    1.000000    4.000000    0.000000    2.000000    3.000000    1.000000    0.000000    0.000000    0.000000    1.000000    0.000000    48.000000    7.200000    0.000000    0.000000    1.000000
 24 1.000000    9.000000    38.300000    130.000000    60.000000    0.000000    3.000000    0.000000    1.000000    2.000000    4.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    50.000000    70.000000    0.000000    0.000000    1.000000
 25 1.000000    1.000000    38.100000    60.000000    12.000000    3.000000    3.000000    3.000000    1.000000    0.000000    4.000000    3.000000    3.000000    2.000000    2.000000    0.000000    0.000000    51.000000    65.000000    0.000000    0.000000    1.000000
 26 2.000000    1.000000    37.800000    60.000000    42.000000    0.000000    0.000000    0.000000    1.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    1.000000
 27 1.000000    1.000000    38.300000    72.000000    30.000000    4.000000    3.000000    3.000000    2.000000    3.000000    3.000000    3.000000    2.000000    1.000000    0.000000    3.000000    5.000000    43.000000    7.000000    2.000000    3.900000    1.000000
 28 1.000000    1.000000    37.800000    48.000000    12.000000    3.000000    1.000000    1.000000    1.000000    0.000000    3.000000    2.000000    1.000000    1.000000    0.000000    1.000000    3.000000    37.000000    5.500000    2.000000    1.300000    1.000000
 29 1.000000    1.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    -1.000000
 30 2.000000    1.000000    37.700000    48.000000    0.000000    2.000000    1.000000    1.000000    1.000000    1.000000    1.000000    1.000000    1.000000    1.000000    0.000000    0.000000    0.000000    45.000000    76.000000    0.000000    0.000000    1.000000
 31 2.000000    1.000000    37.700000    96.000000    30.000000    3.000000    3.000000    4.000000    2.000000    5.000000    4.000000    4.000000    3.000000    2.000000    4.000000    4.000000    5.000000    66.000000    7.500000    0.000000    0.000000    -1.000000
 32 2.000000    1.000000    37.200000    108.000000    12.000000    3.000000    3.000000    4.000000    2.000000    2.000000    4.000000    2.000000    0.000000    3.000000    6.000000    3.000000    3.000000    52.000000    8.200000    3.000000    7.400000    -1.000000
 33 1.000000    1.000000    37.200000    60.000000    0.000000    2.000000    1.000000    1.000000    1.000000    3.000000    3.000000    3.000000    2.000000    1.000000    0.000000    4.000000    5.000000    43.000000    6.600000    0.000000    0.000000    1.000000
 34 1.000000    1.000000    38.200000    64.000000    28.000000    1.000000    1.000000    1.000000    1.000000    3.000000    1.000000    0.000000    0.000000    0.000000    0.000000    4.000000    4.000000    49.000000    8.600000    2.000000    6.600000    1.000000
 35 1.000000    1.000000    0.000000    100.000000    30.000000    3.000000    3.000000    4.000000    2.000000    5.000000    4.000000    4.000000    3.000000    3.000000    0.000000    4.000000    4.000000    52.000000    6.600000    0.000000    0.000000    1.000000
 36 2.000000    1.000000    0.000000    104.000000    24.000000    4.000000    3.000000    3.000000    2.000000    4.000000    4.000000    3.000000    0.000000    3.000000    0.000000    0.000000    2.000000    73.000000    8.400000    0.000000    0.000000    -1.000000
 37 2.000000    1.000000    38.300000    112.000000    16.000000    0.000000    3.000000    5.000000    2.000000    0.000000    0.000000    1.000000    1.000000    2.000000    0.000000    0.000000    5.000000    51.000000    6.000000    2.000000    1.000000    -1.000000
 38 1.000000    1.000000    37.800000    72.000000    0.000000    0.000000    3.000000    0.000000    1.000000    5.000000    3.000000    1.000000    0.000000    1.000000    0.000000    1.000000    1.000000    56.000000    80.000000    1.000000    2.000000    1.000000
 39 2.000000    1.000000    38.600000    52.000000    0.000000    1.000000    1.000000    1.000000    1.000000    3.000000    3.000000    2.000000    1.000000    1.000000    0.000000    1.000000    3.000000    32.000000    6.600000    1.000000    5.000000    1.000000
 40 1.000000    9.000000    39.200000    146.000000    96.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    -1.000000
 41 1.000000    1.000000    0.000000    88.000000    0.000000    3.000000    3.000000    6.000000    2.000000    5.000000    3.000000    3.000000    1.000000    3.000000    0.000000    4.000000    5.000000    63.000000    6.500000    3.000000    0.000000    -1.000000
 42 2.000000    9.000000    39.000000    150.000000    72.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    47.000000    8.500000    0.000000    0.100000    1.000000
 43 2.000000    1.000000    38.000000    60.000000    12.000000    3.000000    1.000000    3.000000    1.000000    3.000000    3.000000    1.000000    1.000000    1.000000    0.000000    2.000000    2.000000    47.000000    7.000000    0.000000    0.000000    1.000000
 44 1.000000    1.000000    0.000000    120.000000    0.000000    3.000000    4.000000    4.000000    1.000000    4.000000    4.000000    4.000000    1.000000    1.000000    0.000000    0.000000    5.000000    52.000000    67.000000    2.000000    2.000000    -1.000000
 45 1.000000    1.000000    35.400000    140.000000    24.000000    3.000000    3.000000    4.000000    2.000000    4.000000    4.000000    0.000000    2.000000    1.000000    0.000000    0.000000    5.000000    57.000000    69.000000    3.000000    2.000000    -1.000000
 46 2.000000    1.000000    0.000000    120.000000    0.000000    4.000000    3.000000    4.000000    2.000000    5.000000    4.000000    4.000000    1.000000    1.000000    0.000000    4.000000    5.000000    60.000000    6.500000    3.000000    0.000000    -1.000000
 47 1.000000    1.000000    37.900000    60.000000    15.000000    3.000000    0.000000    4.000000    2.000000    5.000000    4.000000    4.000000    2.000000    2.000000    0.000000    4.000000    5.000000    65.000000    7.500000    0.000000    0.000000    1.000000
 48 2.000000    1.000000    37.500000    48.000000    16.000000    1.000000    1.000000    1.000000    1.000000    1.000000    1.000000    1.000000    1.000000    1.000000    0.000000    1.000000    0.000000    37.000000    6.500000    0.000000    0.000000    1.000000
 49 1.000000    1.000000    38.900000    80.000000    44.000000    3.000000    3.000000    3.000000    2.000000    2.000000    3.000000    3.000000    2.000000    2.000000    7.000000    3.000000    1.000000    54.000000    6.500000    3.000000    0.000000    -1.000000
 50 2.000000    1.000000    37.200000    84.000000    48.000000    3.000000    3.000000    5.000000    2.000000    4.000000    1.000000    2.000000    1.000000    2.000000    0.000000    2.000000    1.000000    73.000000    5.500000    2.000000    4.100000    -1.000000
 51 2.000000    1.000000    38.600000    46.000000    0.000000    1.000000    1.000000    2.000000    1.000000    1.000000    3.000000    2.000000    1.000000    1.000000    0.000000    0.000000    2.000000    49.000000    9.100000    1.000000    1.600000    1.000000
 52 1.000000    1.000000    37.400000    84.000000    36.000000    1.000000    0.000000    3.000000    2.000000    3.000000    3.000000    2.000000    0.000000    0.000000    0.000000    4.000000    5.000000    0.000000    0.000000    3.000000    0.000000    -1.000000
 53 2.000000    1.000000    0.000000    0.000000    0.000000    1.000000    1.000000    3.000000    1.000000    1.000000    3.000000    1.000000    0.000000    0.000000    0.000000    2.000000    2.000000    43.000000    7.700000    0.000000    0.000000    1.000000
 54 2.000000    1.000000    38.600000    40.000000    20.000000    0.000000    0.000000    0.000000    1.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    41.000000    6.400000    0.000000    0.000000    1.000000
 55 2.000000    1.000000    40.300000    114.000000    36.000000    3.000000    3.000000    1.000000    2.000000    2.000000    3.000000    3.000000    2.000000    1.000000    7.000000    1.000000    5.000000    57.000000    8.100000    3.000000    4.500000    -1.000000
 56 1.000000    9.000000    38.600000    160.000000    20.000000    3.000000    0.000000    5.000000    1.000000    3.000000    3.000000    4.000000    3.000000    0.000000    0.000000    4.000000    0.000000    38.000000    0.000000    2.000000    0.000000    -1.000000
 57 1.000000    1.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    24.000000    6.700000    0.000000    0.000000    1.000000
 58 1.000000    1.000000    0.000000    64.000000    36.000000    2.000000    0.000000    2.000000    1.000000    5.000000    3.000000    3.000000    2.000000    2.000000    0.000000    0.000000    0.000000    42.000000    7.700000    0.000000    0.000000    -1.000000
 59 1.000000    1.000000    0.000000    0.000000    20.000000    4.000000    3.000000    3.000000    0.000000    5.000000    4.000000    3.000000    2.000000    0.000000    0.000000    4.000000    4.000000    53.000000    5.900000    3.000000    0.000000    -1.000000
 60 2.000000    1.000000    0.000000    96.000000    0.000000    3.000000    3.000000    3.000000    2.000000    5.000000    4.000000    4.000000    1.000000    2.000000    0.000000    4.000000    5.000000    60.000000    0.000000    0.000000    0.000000    -1.000000
 61 2.000000    1.000000    37.800000    48.000000    32.000000    1.000000    1.000000    3.000000    1.000000    2.000000    1.000000    0.000000    1.000000    1.000000    0.000000    4.000000    5.000000    37.000000    6.700000    0.000000    0.000000    1.000000
 62 2.000000    1.000000    38.500000    60.000000    0.000000    2.000000    2.000000    1.000000    1.000000    1.000000    2.000000    2.000000    2.000000    1.000000    0.000000    1.000000    1.000000    44.000000    7.700000    0.000000    0.000000    1.000000
 63 1.000000    1.000000    37.800000    88.000000    22.000000    2.000000    1.000000    2.000000    1.000000    3.000000    0.000000    0.000000    2.000000    0.000000    0.000000    4.000000    0.000000    64.000000    8.000000    1.000000    6.000000    -1.000000
 64 2.000000    1.000000    38.200000    130.000000    16.000000    4.000000    3.000000    4.000000    2.000000    2.000000    4.000000    4.000000    1.000000    1.000000    0.000000    0.000000    0.000000    65.000000    82.000000    2.000000    2.000000    -1.000000
 65 1.000000    1.000000    39.000000    64.000000    36.000000    3.000000    1.000000    4.000000    2.000000    3.000000    3.000000    2.000000    1.000000    2.000000    7.000000    4.000000    5.000000    44.000000    7.500000    3.000000    5.000000    1.000000
 66 1.000000    1.000000    0.000000    60.000000    36.000000    3.000000    1.000000    3.000000    1.000000    3.000000    3.000000    2.000000    1.000000    1.000000    0.000000    3.000000    4.000000    26.000000    72.000000    2.000000    1.000000    1.000000
 67 2.000000    1.000000    37.900000    72.000000    0.000000    1.000000    1.000000    5.000000    2.000000    3.000000    3.000000    1.000000    1.000000    3.000000    2.000000    3.000000    4.000000    58.000000    74.000000    1.000000    2.000000    1.000000
 68 2.000000    1.000000    38.400000    54.000000    24.000000    1.000000    1.000000    1.000000    1.000000    1.000000    3.000000    1.000000    2.000000    1.000000    0.000000    3.000000    2.000000    49.000000    7.200000    1.000000    0.000000    1.000000
 69 2.000000    1.000000    0.000000    52.000000    16.000000    1.000000    0.000000    3.000000    1.000000    0.000000    0.000000    0.000000    2.000000    3.000000    5.500000    0.000000    0.000000    55.000000    7.200000    0.000000    0.000000    1.000000
 70 2.000000    1.000000    38.000000    48.000000    12.000000    1.000000    1.000000    1.000000    1.000000    1.000000    3.000000    0.000000    1.000000    1.000000    0.000000    3.000000    2.000000    42.000000    6.300000    2.000000    4.100000    1.000000
 71 2.000000    1.000000    37.000000    60.000000    20.000000    3.000000    0.000000    0.000000    1.000000    3.000000    0.000000    3.000000    2.000000    2.000000    4.500000    4.000000    4.000000    43.000000    7.600000    0.000000    0.000000    -1.000000
 72 1.000000    1.000000    37.800000    48.000000    28.000000    1.000000    1.000000    1.000000    1.000000    1.000000    2.000000    1.000000    2.000000    0.000000    0.000000    1.000000    1.000000    46.000000    5.900000    2.000000    7.000000    1.000000
 73 1.000000    1.000000    37.700000    56.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    -1.000000
 74 1.000000    1.000000    38.100000    52.000000    24.000000    1.000000    1.000000    5.000000    1.000000    4.000000    3.000000    1.000000    2.000000    3.000000    7.000000    1.000000    0.000000    54.000000    7.500000    2.000000    2.600000    -1.000000
 75 1.000000    9.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    37.000000    4.900000    0.000000    0.000000    -1.000000
 76 1.000000    9.000000    39.700000    100.000000    0.000000    3.000000    3.000000    5.000000    2.000000    2.000000    3.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    48.000000    57.000000    2.000000    2.000000    -1.000000
 77 1.000000    1.000000    37.600000    38.000000    20.000000    3.000000    3.000000    1.000000    1.000000    3.000000    3.000000    2.000000    0.000000    0.000000    0.000000    3.000000    0.000000    37.000000    68.000000    0.000000    0.000000    1.000000
 78 2.000000    1.000000    38.700000    52.000000    20.000000    2.000000    0.000000    1.000000    1.000000    1.000000    1.000000    1.000000    1.000000    1.000000    0.000000    1.000000    1.000000    33.000000    77.000000    0.000000    0.000000    1.000000
 79 1.000000    1.000000    0.000000    0.000000    0.000000    3.000000    3.000000    3.000000    3.000000    5.000000    3.000000    3.000000    3.000000    2.000000    0.000000    4.000000    5.000000    46.000000    5.900000    0.000000    0.000000    -1.000000
 80 1.000000    1.000000    37.500000    96.000000    18.000000    1.000000    3.000000    6.000000    2.000000    3.000000    4.000000    2.000000    2.000000    3.000000    5.000000    0.000000    4.000000    69.000000    8.900000    3.000000    0.000000    1.000000
 81 1.000000    1.000000    36.400000    98.000000    35.000000    3.000000    3.000000    4.000000    1.000000    4.000000    3.000000    2.000000    0.000000    0.000000    0.000000    4.000000    4.000000    47.000000    6.400000    3.000000    3.600000    -1.000000
 82 1.000000    1.000000    37.300000    40.000000    0.000000    0.000000    3.000000    1.000000    1.000000    2.000000    3.000000    2.000000    3.000000    1.000000    0.000000    3.000000    5.000000    36.000000    0.000000    3.000000    2.000000    1.000000
 83 1.000000    9.000000    38.100000    100.000000    80.000000    3.000000    1.000000    2.000000    1.000000    3.000000    4.000000    1.000000    0.000000    0.000000    0.000000    1.000000    0.000000    36.000000    5.700000    0.000000    0.000000    1.000000
 84 1.000000    1.000000    38.000000    0.000000    24.000000    3.000000    3.000000    6.000000    2.000000    5.000000    0.000000    4.000000    1.000000    1.000000    0.000000    0.000000    0.000000    68.000000    7.800000    0.000000    0.000000    -1.000000
 85 1.000000    1.000000    37.800000    60.000000    80.000000    1.000000    3.000000    2.000000    2.000000    2.000000    3.000000    3.000000    0.000000    2.000000    5.500000    4.000000    0.000000    40.000000    4.500000    2.000000    0.000000    1.000000
 86 2.000000    1.000000    38.000000    54.000000    30.000000    2.000000    3.000000    3.000000    3.000000    3.000000    1.000000    2.000000    2.000000    2.000000    0.000000    0.000000    4.000000    45.000000    6.200000    0.000000    0.000000    1.000000
 87 1.000000    1.000000    0.000000    88.000000    40.000000    3.000000    3.000000    4.000000    2.000000    5.000000    4.000000    3.000000    3.000000    0.000000    0.000000    4.000000    5.000000    50.000000    7.700000    3.000000    1.400000    -1.000000
 88 2.000000    1.000000    0.000000    40.000000    16.000000    0.000000    0.000000    0.000000    1.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    50.000000    7.000000    2.000000    3.900000    -1.000000
 89 2.000000    1.000000    39.000000    64.000000    40.000000    1.000000    1.000000    5.000000    1.000000    3.000000    3.000000    2.000000    2.000000    1.000000    0.000000    3.000000    3.000000    42.000000    7.500000    2.000000    2.300000    1.000000
 90 2.000000    1.000000    38.300000    42.000000    10.000000    1.000000    1.000000    1.000000    1.000000    1.000000    1.000000    1.000000    0.000000    0.000000    0.000000    0.000000    0.000000    38.000000    61.000000    0.000000    0.000000    1.000000
 91 2.000000    1.000000    38.000000    52.000000    16.000000    0.000000    0.000000    0.000000    0.000000    2.000000    0.000000    0.000000    0.000000    3.000000    1.000000    1.000000    1.000000    53.000000    86.000000    0.000000    0.000000    1.000000
 92 2.000000    1.000000    40.300000    114.000000    36.000000    3.000000    3.000000    1.000000    2.000000    2.000000    3.000000    3.000000    2.000000    1.000000    7.000000    1.000000    5.000000    57.000000    8.100000    3.000000    4.500000    -1.000000
 93 2.000000    1.000000    38.800000    50.000000    20.000000    3.000000    1.000000    1.000000    1.000000    1.000000    1.000000    1.000000    2.000000    1.000000    0.000000    3.000000    1.000000    42.000000    6.200000    0.000000    0.000000    1.000000
 94 2.000000    1.000000    0.000000    0.000000    0.000000    3.000000    3.000000    1.000000    1.000000    5.000000    3.000000    3.000000    1.000000    1.000000    0.000000    4.000000    5.000000    38.000000    6.500000    0.000000    0.000000    -1.000000
 95 2.000000    1.000000    37.500000    48.000000    30.000000    4.000000    1.000000    3.000000    1.000000    0.000000    2.000000    1.000000    1.000000    1.000000    0.000000    1.000000    1.000000    48.000000    8.600000    0.000000    0.000000    1.000000
 96 1.000000    1.000000    37.300000    48.000000    20.000000    0.000000    1.000000    2.000000    1.000000    3.000000    3.000000    3.000000    2.000000    1.000000    0.000000    3.000000    5.000000    41.000000    69.000000    0.000000    0.000000    1.000000
 97 2.000000    1.000000    0.000000    84.000000    36.000000    0.000000    0.000000    3.000000    1.000000    0.000000    3.000000    1.000000    2.000000    1.000000    0.000000    3.000000    2.000000    44.000000    8.500000    0.000000    0.000000    1.000000
 98 1.000000    1.000000    38.100000    88.000000    32.000000    3.000000    3.000000    4.000000    1.000000    2.000000    3.000000    3.000000    0.000000    3.000000    1.000000    4.000000    5.000000    55.000000    60.000000    0.000000    0.000000    -1.000000
 99 2.000000    1.000000    37.700000    44.000000    40.000000    2.000000    1.000000    3.000000    1.000000    1.000000    3.000000    2.000000    1.000000    1.000000    0.000000    1.000000    5.000000    41.000000    60.000000    0.000000    0.000000    1.000000
100 2.000000    1.000000    39.600000    108.000000    51.000000    3.000000    3.000000    6.000000    2.000000    2.000000    4.000000    3.000000    1.000000    2.000000    0.000000    3.000000    5.000000    59.000000    8.000000    2.000000    2.600000    1.000000
101 1.000000    1.000000    38.200000    40.000000    16.000000    3.000000    3.000000    1.000000    1.000000    1.000000    3.000000    0.000000    0.000000    0.000000    0.000000    1.000000    1.000000    34.000000    66.000000    0.000000    0.000000    1.000000
102 1.000000    1.000000    0.000000    60.000000    20.000000    4.000000    3.000000    4.000000    2.000000    5.000000    4.000000    0.000000    0.000000    1.000000    0.000000    4.000000    5.000000    0.000000    0.000000    0.000000    0.000000    -1.000000
103 2.000000    1.000000    38.300000    40.000000    16.000000    3.000000    0.000000    1.000000    1.000000    2.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    37.000000    57.000000    0.000000    0.000000    1.000000
104 1.000000    9.000000    38.000000    140.000000    68.000000    1.000000    1.000000    1.000000    1.000000    3.000000    3.000000    2.000000    0.000000    0.000000    0.000000    2.000000    1.000000    39.000000    5.300000    0.000000    0.000000    1.000000
105 1.000000    1.000000    37.800000    52.000000    24.000000    1.000000    3.000000    3.000000    1.000000    4.000000    4.000000    1.000000    2.000000    3.000000    5.700000    2.000000    5.000000    48.000000    6.600000    1.000000    3.700000    -1.000000
106 1.000000    1.000000    0.000000    70.000000    36.000000    1.000000    0.000000    3.000000    2.000000    2.000000    3.000000    2.000000    2.000000    0.000000    0.000000    4.000000    5.000000    36.000000    7.300000    0.000000    0.000000    1.000000
107 1.000000    1.000000    38.300000    52.000000    96.000000    0.000000    3.000000    3.000000    1.000000    0.000000    0.000000    0.000000    1.000000    1.000000    0.000000    1.000000    0.000000    43.000000    6.100000    0.000000    0.000000    1.000000
108 2.000000    1.000000    37.300000    50.000000    32.000000    1.000000    1.000000    3.000000    1.000000    1.000000    3.000000    2.000000    0.000000    0.000000    0.000000    1.000000    0.000000    44.000000    7.000000    0.000000    0.000000    1.000000
109 1.000000    1.000000    38.700000    60.000000    32.000000    4.000000    3.000000    2.000000    2.000000    4.000000    4.000000    4.000000    0.000000    0.000000    0.000000    4.000000    5.000000    53.000000    64.000000    3.000000    2.000000    -1.000000
110 1.000000    9.000000    38.400000    84.000000    40.000000    3.000000    3.000000    2.000000    1.000000    3.000000    3.000000    3.000000    1.000000    1.000000    0.000000    0.000000    0.000000    36.000000    6.600000    2.000000    2.800000    -1.000000
111 1.000000    1.000000    0.000000    70.000000    16.000000    3.000000    4.000000    5.000000    2.000000    2.000000    3.000000    2.000000    2.000000    1.000000    0.000000    4.000000    5.000000    60.000000    7.500000    0.000000    0.000000    -1.000000
112 1.000000    1.000000    38.300000    40.000000    16.000000    3.000000    0.000000    0.000000    1.000000    1.000000    3.000000    2.000000    0.000000    0.000000    0.000000    0.000000    0.000000    38.000000    58.000000    1.000000    2.000000    1.000000
113 1.000000    1.000000    0.000000    40.000000    0.000000    2.000000    1.000000    1.000000    1.000000    1.000000    3.000000    1.000000    1.000000    1.000000    0.000000    0.000000    5.000000    39.000000    56.000000    0.000000    0.000000    1.000000
114 1.000000    1.000000    36.800000    60.000000    28.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    10.000000    -1.000000
115 1.000000    1.000000    38.400000    44.000000    24.000000    3.000000    0.000000    4.000000    0.000000    5.000000    4.000000    3.000000    2.000000    1.000000    0.000000    4.000000    5.000000    50.000000    77.000000    0.000000    0.000000    1.000000
116 2.000000    1.000000    0.000000    0.000000    40.000000    3.000000    1.000000    1.000000    1.000000    3.000000    3.000000    2.000000    0.000000    0.000000    0.000000    0.000000    0.000000    45.000000    70.000000    0.000000    0.000000    1.000000
117 1.000000    1.000000    38.000000    44.000000    12.000000    1.000000    1.000000    1.000000    1.000000    3.000000    3.000000    3.000000    2.000000    1.000000    0.000000    4.000000    5.000000    42.000000    65.000000    0.000000    0.000000    1.000000
118 2.000000    1.000000    39.500000    0.000000    0.000000    3.000000    3.000000    4.000000    2.000000    3.000000    4.000000    3.000000    0.000000    3.000000    5.500000    4.000000    5.000000    0.000000    6.700000    1.000000    0.000000    -1.000000
119 1.000000    1.000000    36.500000    78.000000    30.000000    1.000000    0.000000    1.000000    1.000000    5.000000    3.000000    1.000000    0.000000    1.000000    0.000000    0.000000    0.000000    34.000000    75.000000    2.000000    1.000000    1.000000
120 2.000000    1.000000    38.100000    56.000000    20.000000    2.000000    1.000000    2.000000    1.000000    1.000000    3.000000    1.000000    1.000000    1.000000    0.000000    0.000000    0.000000    46.000000    70.000000    0.000000    0.000000    1.000000
121 1.000000    1.000000    39.400000    54.000000    66.000000    1.000000    1.000000    2.000000    1.000000    2.000000    3.000000    2.000000    1.000000    1.000000    0.000000    3.000000    4.000000    39.000000    6.000000    2.000000    0.000000    1.000000
122 1.000000    1.000000    38.300000    80.000000    40.000000    0.000000    0.000000    6.000000    2.000000    4.000000    3.000000    1.000000    0.000000    2.000000    0.000000    1.000000    4.000000    67.000000    10.200000    2.000000    1.000000    -1.000000
123 2.000000    1.000000    38.700000    40.000000    28.000000    2.000000    1.000000    1.000000    1.000000    3.000000    1.000000    1.000000    0.000000    0.000000    0.000000    1.000000    0.000000    39.000000    62.000000    1.000000    1.000000    1.000000
124 1.000000    1.000000    38.200000    64.000000    24.000000    1.000000    1.000000    3.000000    1.000000    4.000000    4.000000    3.000000    2.000000    1.000000    0.000000    4.000000    4.000000    45.000000    7.500000    1.000000    2.000000    -1.000000
125 2.000000    1.000000    37.600000    48.000000    20.000000    3.000000    1.000000    4.000000    1.000000    1.000000    1.000000    3.000000    2.000000    1.000000    0.000000    1.000000    1.000000    37.000000    5.500000    0.000000    0.000000    -1.000000
126 1.000000    1.000000    38.000000    42.000000    68.000000    4.000000    1.000000    1.000000    1.000000    3.000000    3.000000    2.000000    2.000000    2.000000    0.000000    4.000000    4.000000    41.000000    7.600000    0.000000    0.000000    1.000000
127 1.000000    1.000000    38.700000    0.000000    0.000000    3.000000    1.000000    3.000000    1.000000    5.000000    4.000000    2.000000    0.000000    0.000000    0.000000    0.000000    0.000000    33.000000    6.500000    2.000000    0.000000    1.000000
128 1.000000    1.000000    37.400000    50.000000    32.000000    3.000000    3.000000    0.000000    1.000000    4.000000    4.000000    1.000000    2.000000    1.000000    0.000000    1.000000    0.000000    45.000000    7.900000    2.000000    1.000000    1.000000
129 1.000000    1.000000    37.400000    84.000000    20.000000    0.000000    0.000000    3.000000    1.000000    2.000000    3.000000    3.000000    0.000000    0.000000    0.000000    0.000000    0.000000    31.000000    61.000000    0.000000    1.000000    -1.000000
130 1.000000    1.000000    38.400000    49.000000    0.000000    0.000000    0.000000    1.000000    1.000000    0.000000    0.000000    1.000000    2.000000    1.000000    0.000000    0.000000    0.000000    44.000000    7.600000    0.000000    0.000000    1.000000
131 1.000000    1.000000    37.800000    30.000000    12.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    -1.000000
132 2.000000    1.000000    37.600000    88.000000    36.000000    3.000000    1.000000    1.000000    1.000000    3.000000    3.000000    2.000000    1.000000    3.000000    1.500000    0.000000    0.000000    44.000000    6.000000    0.000000    0.000000    -1.000000
133 2.000000    1.000000    37.900000    40.000000    24.000000    1.000000    1.000000    1.000000    1.000000    2.000000    3.000000    1.000000    0.000000    0.000000    0.000000    0.000000    3.000000    40.000000    5.700000    0.000000    0.000000    1.000000
134 1.000000    1.000000    0.000000    100.000000    0.000000    3.000000    0.000000    4.000000    2.000000    5.000000    4.000000    0.000000    2.000000    0.000000    0.000000    2.000000    0.000000    59.000000    6.300000    0.000000    0.000000    -1.000000
135 1.000000    9.000000    38.100000    136.000000    48.000000    3.000000    3.000000    3.000000    1.000000    5.000000    1.000000    3.000000    2.000000    2.000000    4.400000    2.000000    0.000000    33.000000    4.900000    2.000000    2.900000    -1.000000
136 1.000000    1.000000    0.000000    0.000000    0.000000    3.000000    3.000000    3.000000    2.000000    5.000000    3.000000    3.000000    3.000000    2.000000    0.000000    4.000000    5.000000    46.000000    5.900000    0.000000    0.000000    -1.000000
137 1.000000    1.000000    38.000000    48.000000    0.000000    1.000000    1.000000    1.000000    1.000000    1.000000    2.000000    4.000000    2.000000    2.000000    0.000000    4.000000    5.000000    0.000000    0.000000    0.000000    0.000000    1.000000
138 2.000000    1.000000    38.000000    56.000000    0.000000    1.000000    2.000000    3.000000    1.000000    1.000000    1.000000    1.000000    1.000000    1.000000    0.000000    1.000000    1.000000    42.000000    71.000000    0.000000    0.000000    1.000000
139 2.000000    1.000000    38.000000    60.000000    32.000000    1.000000    1.000000    0.000000    1.000000    3.000000    3.000000    0.000000    1.000000    1.000000    0.000000    0.000000    0.000000    50.000000    7.000000    1.000000    1.000000    1.000000
140 1.000000    1.000000    38.100000    44.000000    9.000000    3.000000    1.000000    1.000000    1.000000    2.000000    2.000000    1.000000    1.000000    1.000000    0.000000    4.000000    5.000000    31.000000    7.300000    0.000000    0.000000    1.000000
141 2.000000    1.000000    36.000000    42.000000    30.000000    0.000000    0.000000    5.000000    1.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    64.000000    6.800000    0.000000    0.000000    -1.000000
142 1.000000    1.000000    0.000000    120.000000    0.000000    4.000000    3.000000    6.000000    2.000000    5.000000    4.000000    4.000000    0.000000    0.000000    0.000000    4.000000    5.000000    57.000000    4.500000    3.000000    3.900000    -1.000000
143 1.000000    1.000000    37.800000    48.000000    28.000000    1.000000    1.000000    1.000000    2.000000    1.000000    2.000000    1.000000    2.000000    0.000000    0.000000    1.000000    1.000000    46.000000    5.900000    2.000000    7.000000    1.000000
144 1.000000    1.000000    37.100000    84.000000    40.000000    3.000000    3.000000    6.000000    1.000000    2.000000    4.000000    4.000000    3.000000    2.000000    2.000000    4.000000    5.000000    75.000000    81.000000    0.000000    0.000000    -1.000000
145 2.000000    1.000000    0.000000    80.000000    32.000000    3.000000    3.000000    2.000000    1.000000    2.000000    3.000000    3.000000    2.000000    1.000000    0.000000    3.000000    0.000000    50.000000    80.000000    0.000000    0.000000    1.000000
146 1.000000    1.000000    38.200000    48.000000    0.000000    1.000000    3.000000    3.000000    1.000000    3.000000    4.000000    4.000000    1.000000    3.000000    2.000000    4.000000    5.000000    42.000000    71.000000    0.000000    0.000000    1.000000
147 2.000000    1.000000    38.000000    44.000000    12.000000    2.000000    1.000000    3.000000    1.000000    3.000000    4.000000    3.000000    1.000000    2.000000    6.500000    1.000000    4.000000    33.000000    6.500000    0.000000    0.000000    -1.000000
148 1.000000    1.000000    38.300000    132.000000    0.000000    0.000000    3.000000    6.000000    2.000000    2.000000    4.000000    2.000000    2.000000    3.000000    6.200000    4.000000    4.000000    57.000000    8.000000    0.000000    5.200000    1.000000
149 2.000000    1.000000    38.700000    48.000000    24.000000    0.000000    0.000000    0.000000    0.000000    1.000000    1.000000    0.000000    1.000000    1.000000    0.000000    1.000000    0.000000    34.000000    63.000000    0.000000    0.000000    1.000000
150 2.000000    1.000000    38.900000    44.000000    14.000000    3.000000    1.000000    1.000000    1.000000    2.000000    3.000000    2.000000    0.000000    0.000000    0.000000    0.000000    2.000000    33.000000    64.000000    0.000000    0.000000    1.000000
151 1.000000    1.000000    39.300000    0.000000    0.000000    4.000000    3.000000    6.000000    2.000000    4.000000    4.000000    2.000000    1.000000    3.000000    4.000000    4.000000    4.000000    75.000000    0.000000    3.000000    4.300000    -1.000000
152 1.000000    1.000000    0.000000    100.000000    0.000000    3.000000    3.000000    4.000000    2.000000    0.000000    4.000000    4.000000    2.000000    1.000000    2.000000    0.000000    0.000000    68.000000    64.000000    3.000000    2.000000    1.000000
153 2.000000    1.000000    38.600000    48.000000    20.000000    3.000000    1.000000    1.000000    1.000000    1.000000    3.000000    2.000000    2.000000    1.000000    0.000000    3.000000    2.000000    50.000000    7.300000    1.000000    0.000000    1.000000
154 2.000000    1.000000    38.800000    48.000000    40.000000    1.000000    1.000000    3.000000    1.000000    3.000000    3.000000    4.000000    2.000000    0.000000    0.000000    0.000000    5.000000    41.000000    65.000000    0.000000    0.000000    1.000000
155 2.000000    1.000000    38.000000    48.000000    20.000000    3.000000    3.000000    4.000000    1.000000    1.000000    4.000000    2.000000    2.000000    0.000000    5.000000    0.000000    2.000000    49.000000    8.300000    1.000000    0.000000    1.000000
156 2.000000    1.000000    38.600000    52.000000    20.000000    1.000000    1.000000    1.000000    1.000000    3.000000    3.000000    2.000000    1.000000    1.000000    0.000000    1.000000    3.000000    36.000000    6.600000    1.000000    5.000000    1.000000
157 1.000000    1.000000    37.800000    60.000000    24.000000    1.000000    0.000000    3.000000    2.000000    0.000000    4.000000    4.000000    2.000000    3.000000    2.000000    0.000000    5.000000    52.000000    75.000000    0.000000    0.000000    -1.000000
158 2.000000    1.000000    38.000000    42.000000    40.000000    3.000000    1.000000    1.000000    1.000000    3.000000    3.000000    1.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    1.000000
159 2.000000    1.000000    0.000000    0.000000    12.000000    1.000000    1.000000    2.000000    1.000000    2.000000    1.000000    2.000000    3.000000    1.000000    0.000000    1.000000    3.000000    44.000000    7.500000    2.000000    0.000000    1.000000
160 1.000000    1.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    4.000000    0.000000    0.000000    1.000000    1.000000    0.000000    0.000000    5.000000    35.000000    58.000000    2.000000    1.000000    1.000000
161 1.000000    1.000000    38.300000    42.000000    24.000000    0.000000    0.000000    0.000000    1.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    40.000000    8.500000    0.000000    0.000000    -1.000000
162 2.000000    1.000000    39.500000    60.000000    10.000000    3.000000    0.000000    0.000000    2.000000    3.000000    3.000000    2.000000    2.000000    1.000000    0.000000    3.000000    0.000000    38.000000    56.000000    1.000000    0.000000    1.000000
163 1.000000    1.000000    38.000000    66.000000    20.000000    1.000000    3.000000    3.000000    1.000000    5.000000    3.000000    1.000000    1.000000    1.000000    0.000000    3.000000    0.000000    46.000000    46.000000    3.000000    2.000000    -1.000000
164 1.000000    1.000000    38.700000    76.000000    0.000000    1.000000    1.000000    5.000000    2.000000    3.000000    3.000000    2.000000    2.000000    2.000000    0.000000    4.000000    4.000000    50.000000    8.000000    0.000000    0.000000    1.000000
165 1.000000    1.000000    39.400000    120.000000    48.000000    0.000000    0.000000    5.000000    1.000000    0.000000    3.000000    3.000000    1.000000    0.000000    0.000000    4.000000    0.000000    56.000000    64.000000    1.000000    2.000000    -1.000000
166 1.000000    1.000000    38.300000    40.000000    18.000000    1.000000    1.000000    1.000000    1.000000    3.000000    1.000000    1.000000    0.000000    0.000000    0.000000    2.000000    1.000000    43.000000    5.900000    1.000000    0.000000    1.000000
167 2.000000    1.000000    0.000000    44.000000    24.000000    1.000000    1.000000    1.000000    1.000000    3.000000    3.000000    1.000000    2.000000    1.000000    0.000000    0.000000    1.000000    0.000000    6.300000    0.000000    0.000000    1.000000
168 1.000000    1.000000    38.400000    104.000000    40.000000    1.000000    1.000000    3.000000    1.000000    2.000000    4.000000    2.000000    2.000000    3.000000    6.500000    0.000000    4.000000    55.000000    8.500000    0.000000    0.000000    1.000000
169 1.000000    1.000000    0.000000    65.000000    24.000000    0.000000    0.000000    0.000000    2.000000    5.000000    0.000000    4.000000    3.000000    1.000000    0.000000    0.000000    5.000000    0.000000    0.000000    0.000000    0.000000    -1.000000
170 2.000000    1.000000    37.500000    44.000000    20.000000    1.000000    1.000000    3.000000    1.000000    0.000000    1.000000    1.000000    0.000000    0.000000    0.000000    1.000000    0.000000    35.000000    7.200000    0.000000    0.000000    1.000000
171 2.000000    1.000000    39.000000    86.000000    16.000000    3.000000    3.000000    5.000000    0.000000    3.000000    3.000000    3.000000    0.000000    2.000000    0.000000    0.000000    0.000000    68.000000    5.800000    3.000000    6.000000    -1.000000
172 1.000000    1.000000    38.500000    129.000000    48.000000    3.000000    3.000000    3.000000    1.000000    2.000000    4.000000    3.000000    1.000000    3.000000    2.000000    0.000000    0.000000    57.000000    66.000000    3.000000    2.000000    1.000000
173 1.000000    1.000000    0.000000    104.000000    0.000000    3.000000    3.000000    5.000000    2.000000    2.000000    4.000000    3.000000    0.000000    3.000000    0.000000    4.000000    4.000000    69.000000    8.600000    2.000000    3.400000    -1.000000
174 2.000000    1.000000    0.000000    0.000000    0.000000    3.000000    4.000000    6.000000    0.000000    4.000000    0.000000    4.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    -1.000000
175 1.000000    1.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    1.000000
176 1.000000    1.000000    38.200000    60.000000    30.000000    1.000000    1.000000    3.000000    1.000000    3.000000    3.000000    1.000000    2.000000    1.000000    0.000000    3.000000    2.000000    48.000000    66.000000    0.000000    0.000000    1.000000
177 1.000000    1.000000    0.000000    68.000000    14.000000    0.000000    0.000000    4.000000    1.000000    4.000000    0.000000    0.000000    0.000000    1.000000    4.300000    0.000000    0.000000    0.000000    0.000000    2.000000    2.800000    -1.000000
178 1.000000    1.000000    0.000000    60.000000    30.000000    3.000000    3.000000    4.000000    2.000000    5.000000    4.000000    4.000000    1.000000    1.000000    0.000000    4.000000    0.000000    45.000000    70.000000    3.000000    2.000000    1.000000
179 2.000000    1.000000    38.500000    100.000000    0.000000    3.000000    3.000000    5.000000    2.000000    4.000000    3.000000    4.000000    2.000000    1.000000    0.000000    4.000000    5.000000    0.000000    0.000000    0.000000    0.000000    -1.000000
180 1.000000    1.000000    38.400000    84.000000    30.000000    3.000000    1.000000    5.000000    2.000000    4.000000    3.000000    3.000000    2.000000    3.000000    6.500000    4.000000    4.000000    47.000000    7.500000    3.000000    0.000000    -1.000000
181 2.000000    1.000000    37.800000    48.000000    14.000000    0.000000    0.000000    1.000000    1.000000    3.000000    0.000000    2.000000    1.000000    3.000000    5.300000    1.000000    0.000000    35.000000    7.500000    0.000000    0.000000    1.000000
182 1.000000    1.000000    38.000000    0.000000    24.000000    3.000000    3.000000    6.000000    2.000000    5.000000    0.000000    4.000000    1.000000    1.000000    0.000000    0.000000    0.000000    68.000000    7.800000    0.000000    0.000000    -1.000000
183 2.000000    1.000000    37.800000    56.000000    16.000000    1.000000    1.000000    2.000000    1.000000    2.000000    1.000000    1.000000    2.000000    1.000000    0.000000    1.000000    0.000000    44.000000    68.000000    1.000000    1.000000    1.000000
184 2.000000    1.000000    38.200000    68.000000    32.000000    2.000000    2.000000    2.000000    1.000000    1.000000    1.000000    1.000000    3.000000    1.000000    0.000000    1.000000    1.000000    43.000000    65.000000    0.000000    0.000000    1.000000
185 1.000000    1.000000    38.500000    120.000000    60.000000    4.000000    3.000000    6.000000    2.000000    0.000000    3.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    54.000000    0.000000    0.000000    0.000000    1.000000
186 1.000000    1.000000    39.300000    64.000000    90.000000    2.000000    3.000000    1.000000    1.000000    0.000000    3.000000    1.000000    1.000000    2.000000    0.000000    0.000000    0.000000    39.000000    6.700000    0.000000    0.000000    1.000000
187 1.000000    1.000000    38.400000    80.000000    30.000000    4.000000    3.000000    1.000000    1.000000    3.000000    3.000000    3.000000    3.000000    3.000000    0.000000    4.000000    5.000000    32.000000    6.100000    3.000000    4.300000    1.000000
188 1.000000    1.000000    38.500000    60.000000    0.000000    1.000000    1.000000    0.000000    1.000000    0.000000    1.000000    1.000000    0.000000    0.000000    0.000000    0.000000    0.000000    33.000000    53.000000    1.000000    0.000000    1.000000
189 1.000000    1.000000    38.300000    60.000000    16.000000    3.000000    1.000000    1.000000    1.000000    2.000000    1.000000    1.000000    2.000000    2.000000    3.000000    1.000000    4.000000    30.000000    6.000000    1.000000    3.000000    1.000000
190 1.000000    1.000000    37.100000    40.000000    8.000000    0.000000    1.000000    4.000000    1.000000    3.000000    3.000000    1.000000    1.000000    1.000000    0.000000    3.000000    3.000000    23.000000    6.700000    3.000000    0.000000    1.000000
191 2.000000    9.000000    0.000000    100.000000    44.000000    2.000000    1.000000    1.000000    1.000000    4.000000    1.000000    1.000000    0.000000    0.000000    0.000000    1.000000    0.000000    37.000000    4.700000    0.000000    0.000000    1.000000
192 1.000000    1.000000    38.200000    48.000000    18.000000    1.000000    1.000000    1.000000    1.000000    3.000000    3.000000    3.000000    1.000000    2.000000    0.000000    4.000000    0.000000    48.000000    74.000000    1.000000    2.000000    1.000000
193 1.000000    1.000000    0.000000    60.000000    48.000000    3.000000    3.000000    4.000000    2.000000    4.000000    3.000000    4.000000    0.000000    0.000000    0.000000    0.000000    0.000000    58.000000    7.600000    0.000000    0.000000    -1.000000
194 2.000000    1.000000    37.900000    88.000000    24.000000    1.000000    1.000000    2.000000    1.000000    2.000000    2.000000    1.000000    0.000000    0.000000    0.000000    4.000000    1.000000    37.000000    56.000000    0.000000    0.000000    1.000000
195 2.000000    1.000000    38.000000    44.000000    12.000000    3.000000    1.000000    1.000000    0.000000    0.000000    1.000000    2.000000    0.000000    0.000000    0.000000    1.000000    0.000000    42.000000    64.000000    0.000000    0.000000    1.000000
196 2.000000    1.000000    38.500000    60.000000    20.000000    1.000000    1.000000    5.000000    2.000000    2.000000    2.000000    1.000000    2.000000    1.000000    0.000000    2.000000    3.000000    63.000000    7.500000    2.000000    2.300000    -1.000000
197 2.000000    1.000000    38.500000    96.000000    36.000000    3.000000    3.000000    0.000000    2.000000    2.000000    4.000000    2.000000    1.000000    2.000000    0.000000    4.000000    5.000000    70.000000    8.500000    0.000000    0.000000    -1.000000
198 2.000000    1.000000    38.300000    60.000000    20.000000    1.000000    1.000000    1.000000    2.000000    1.000000    3.000000    1.000000    0.000000    0.000000    0.000000    3.000000    0.000000    34.000000    66.000000    0.000000    0.000000    1.000000
199 2.000000    1.000000    38.500000    60.000000    40.000000    3.000000    1.000000    2.000000    1.000000    2.000000    1.000000    2.000000    0.000000    0.000000    0.000000    3.000000    2.000000    49.000000    59.000000    0.000000    0.000000    1.000000
200 1.000000    1.000000    37.300000    48.000000    12.000000    1.000000    0.000000    3.000000    1.000000    3.000000    1.000000    3.000000    2.000000    1.000000    0.000000    3.000000    3.000000    40.000000    6.600000    2.000000    0.000000    1.000000
201 1.000000    1.000000    38.500000    86.000000    0.000000    1.000000    1.000000    3.000000    1.000000    4.000000    4.000000    3.000000    2.000000    1.000000    0.000000    3.000000    5.000000    45.000000    7.400000    1.000000    3.400000    -1.000000
202 1.000000    1.000000    37.500000    48.000000    40.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    1.000000    1.000000    0.000000    0.000000    5.000000    41.000000    55.000000    3.000000    2.000000    -1.000000
203 2.000000    1.000000    37.200000    36.000000    9.000000    1.000000    1.000000    1.000000    1.000000    2.000000    3.000000    1.000000    2.000000    1.000000    0.000000    4.000000    1.000000    35.000000    5.700000    0.000000    0.000000    1.000000
204 1.000000    1.000000    39.200000    0.000000    23.000000    3.000000    1.000000    3.000000    1.000000    4.000000    4.000000    2.000000    2.000000    0.000000    0.000000    0.000000    0.000000    36.000000    6.600000    1.000000    3.000000    1.000000
205 2.000000    1.000000    38.500000    100.000000    0.000000    3.000000    3.000000    5.000000    2.000000    4.000000    3.000000    4.000000    2.000000    1.000000    0.000000    4.000000    5.000000    0.000000    0.000000    0.000000    0.000000    -1.000000
206 1.000000    1.000000    38.500000    96.000000    30.000000    2.000000    3.000000    4.000000    2.000000    4.000000    4.000000    3.000000    2.000000    1.000000    0.000000    3.000000    5.000000    50.000000    65.000000    0.000000    0.000000    1.000000
207 1.000000    1.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    45.000000    8.700000    0.000000    0.000000    -1.000000
208 1.000000    1.000000    37.800000    88.000000    80.000000    3.000000    3.000000    5.000000    2.000000    0.000000    3.000000    3.000000    2.000000    3.000000    0.000000    4.000000    5.000000    64.000000    89.000000    0.000000    0.000000    -1.000000
209 2.000000    1.000000    37.500000    44.000000    10.000000    3.000000    1.000000    1.000000    1.000000    3.000000    1.000000    2.000000    2.000000    0.000000    0.000000    3.000000    3.000000    43.000000    51.000000    1.000000    1.000000    1.000000
210 1.000000    1.000000    37.900000    68.000000    20.000000    0.000000    1.000000    2.000000    1.000000    2.000000    4.000000    2.000000    0.000000    0.000000    0.000000    1.000000    5.000000    45.000000    4.000000    3.000000    2.800000    -1.000000
211 1.000000    1.000000    38.000000    86.000000    24.000000    4.000000    3.000000    4.000000    1.000000    2.000000    4.000000    4.000000    1.000000    1.000000    0.000000    4.000000    5.000000    45.000000    5.500000    1.000000    10.100000    -1.000000
212 1.000000    9.000000    38.900000    120.000000    30.000000    1.000000    3.000000    2.000000    2.000000    3.000000    3.000000    3.000000    3.000000    1.000000    3.000000    0.000000    0.000000    47.000000    6.300000    1.000000    0.000000    1.000000
213 1.000000    1.000000    37.600000    45.000000    12.000000    3.000000    1.000000    3.000000    1.000000    0.000000    2.000000    2.000000    2.000000    1.000000    0.000000    1.000000    4.000000    39.000000    7.000000    2.000000    1.500000    1.000000
214 2.000000    1.000000    38.600000    56.000000    32.000000    2.000000    1.000000    1.000000    1.000000    1.000000    1.000000    1.000000    2.000000    0.000000    0.000000    2.000000    0.000000    40.000000    7.000000    2.000000    2.100000    1.000000
215 1.000000    1.000000    37.800000    40.000000    12.000000    1.000000    1.000000    1.000000    1.000000    1.000000    2.000000    1.000000    2.000000    1.000000    0.000000    1.000000    2.000000    38.000000    7.000000    0.000000    0.000000    1.000000
216 2.000000    1.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    1.000000
217 1.000000    1.000000    38.000000    76.000000    18.000000    0.000000    0.000000    0.000000    2.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    71.000000    11.000000    0.000000    0.000000    1.000000
218 1.000000    1.000000    38.100000    40.000000    36.000000    1.000000    2.000000    2.000000    1.000000    2.000000    2.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    -1.000000
219 1.000000    1.000000    0.000000    52.000000    28.000000    3.000000    3.000000    4.000000    1.000000    3.000000    4.000000    3.000000    2.000000    1.000000    0.000000    4.000000    4.000000    37.000000    8.100000    0.000000    0.000000    1.000000
220 1.000000    1.000000    39.200000    88.000000    58.000000    4.000000    4.000000    0.000000    2.000000    5.000000    4.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    2.000000    2.000000    -1.000000
221 1.000000    1.000000    38.500000    92.000000    40.000000    4.000000    3.000000    0.000000    1.000000    2.000000    4.000000    3.000000    0.000000    0.000000    0.000000    4.000000    0.000000    46.000000    67.000000    2.000000    2.000000    1.000000
222 1.000000    1.000000    0.000000    112.000000    13.000000    4.000000    4.000000    4.000000    1.000000    2.000000    3.000000    1.000000    2.000000    1.000000    4.500000    4.000000    4.000000    60.000000    6.300000    3.000000    0.000000    1.000000
223 1.000000    1.000000    37.700000    66.000000    12.000000    1.000000    1.000000    3.000000    1.000000    3.000000    3.000000    2.000000    2.000000    0.000000    0.000000    4.000000    4.000000    31.500000    6.200000    2.000000    1.600000    1.000000
224 1.000000    1.000000    38.800000    50.000000    14.000000    1.000000    1.000000    1.000000    1.000000    3.000000    1.000000    1.000000    1.000000    1.000000    0.000000    3.000000    5.000000    38.000000    58.000000    0.000000    0.000000    1.000000
225 2.000000    1.000000    38.400000    54.000000    24.000000    1.000000    1.000000    1.000000    1.000000    1.000000    3.000000    1.000000    2.000000    1.000000    0.000000    3.000000    2.000000    49.000000    7.200000    1.000000    8.000000    1.000000
226 1.000000    1.000000    39.200000    120.000000    20.000000    4.000000    3.000000    5.000000    2.000000    2.000000    3.000000    3.000000    1.000000    3.000000    0.000000    0.000000    4.000000    60.000000    8.800000    3.000000    0.000000    -1.000000
227 1.000000    9.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    45.000000    6.500000    2.000000    0.000000    1.000000
228 1.000000    1.000000    37.300000    90.000000    40.000000    3.000000    0.000000    6.000000    2.000000    5.000000    4.000000    3.000000    2.000000    2.000000    0.000000    1.000000    5.000000    65.000000    50.000000    3.000000    2.000000    -1.000000
229 1.000000    9.000000    38.500000    120.000000    70.000000    0.000000    0.000000    0.000000    0.000000    0.000000    1.000000    0.000000    2.000000    0.000000    0.000000    1.000000    0.000000    35.000000    54.000000    1.000000    1.000000    1.000000
230 1.000000    1.000000    38.500000    104.000000    40.000000    3.000000    3.000000    0.000000    1.000000    4.000000    3.000000    4.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    1.000000
231 2.000000    1.000000    39.500000    92.000000    28.000000    3.000000    3.000000    6.000000    1.000000    5.000000    4.000000    1.000000    0.000000    3.000000    0.000000    4.000000    0.000000    72.000000    6.400000    0.000000    3.600000    -1.000000
232 1.000000    1.000000    38.500000    30.000000    18.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    40.000000    7.700000    0.000000    0.000000    1.000000
233 1.000000    1.000000    38.300000    72.000000    30.000000    4.000000    3.000000    3.000000    2.000000    3.000000    3.000000    3.000000    2.000000    1.000000    0.000000    3.000000    5.000000    43.000000    7.000000    2.000000    3.900000    1.000000
234 2.000000    1.000000    37.500000    48.000000    30.000000    4.000000    1.000000    3.000000    1.000000    0.000000    2.000000    1.000000    1.000000    1.000000    0.000000    1.000000    1.000000    48.000000    8.600000    0.000000    0.000000    1.000000
235 1.000000    1.000000    38.100000    52.000000    24.000000    1.000000    1.000000    5.000000    1.000000    4.000000    3.000000    1.000000    2.000000    3.000000    7.000000    1.000000    0.000000    54.000000    7.500000    2.000000    2.600000    -1.000000
236 2.000000    1.000000    38.200000    42.000000    26.000000    1.000000    1.000000    1.000000    1.000000    3.000000    1.000000    2.000000    0.000000    0.000000    0.000000    1.000000    0.000000    36.000000    6.900000    0.000000    0.000000    1.000000
237 2.000000    1.000000    37.900000    54.000000    42.000000    2.000000    1.000000    5.000000    1.000000    3.000000    1.000000    1.000000    0.000000    1.000000    0.000000    0.000000    2.000000    47.000000    54.000000    3.000000    1.000000    1.000000
238 2.000000    1.000000    36.100000    88.000000    0.000000    3.000000    3.000000    3.000000    1.000000    3.000000    3.000000    2.000000    2.000000    3.000000    0.000000    0.000000    4.000000    45.000000    7.000000    3.000000    4.800000    -1.000000
239 1.000000    1.000000    38.100000    70.000000    22.000000    0.000000    1.000000    0.000000    1.000000    5.000000    3.000000    0.000000    0.000000    0.000000    0.000000    0.000000    5.000000    36.000000    65.000000    0.000000    0.000000    -1.000000
240 1.000000    1.000000    38.000000    90.000000    30.000000    4.000000    3.000000    4.000000    2.000000    5.000000    4.000000    4.000000    0.000000    0.000000    0.000000    4.000000    5.000000    55.000000    6.100000    0.000000    0.000000    -1.000000
241 1.000000    1.000000    38.200000    52.000000    16.000000    1.000000    1.000000    2.000000    1.000000    1.000000    2.000000    1.000000    1.000000    1.000000    0.000000    1.000000    0.000000    43.000000    8.100000    0.000000    0.000000    1.000000
242 1.000000    1.000000    0.000000    36.000000    32.000000    1.000000    1.000000    4.000000    1.000000    5.000000    3.000000    3.000000    2.000000    3.000000    4.000000    0.000000    4.000000    41.000000    5.900000    0.000000    0.000000    -1.000000
243 1.000000    1.000000    38.400000    92.000000    20.000000    1.000000    0.000000    0.000000    2.000000    0.000000    3.000000    3.000000    0.000000    0.000000    0.000000    1.000000    0.000000    0.000000    0.000000    0.000000    0.000000    1.000000
244 1.000000    9.000000    38.200000    124.000000    88.000000    1.000000    3.000000    2.000000    1.000000    2.000000    3.000000    4.000000    0.000000    0.000000    0.000000    0.000000    0.000000    47.000000    8.000000    1.000000    0.000000    1.000000
245 2.000000    1.000000    0.000000    96.000000    0.000000    3.000000    3.000000    3.000000    2.000000    5.000000    4.000000    4.000000    0.000000    1.000000    0.000000    4.000000    5.000000    60.000000    0.000000    0.000000    0.000000    -1.000000
246 1.000000    1.000000    37.600000    68.000000    32.000000    3.000000    0.000000    3.000000    1.000000    4.000000    2.000000    4.000000    2.000000    2.000000    6.500000    1.000000    5.000000    47.000000    7.200000    1.000000    0.000000    1.000000
247 1.000000    1.000000    38.100000    88.000000    24.000000    3.000000    3.000000    4.000000    1.000000    5.000000    4.000000    3.000000    2.000000    1.000000    0.000000    3.000000    4.000000    41.000000    4.600000    0.000000    0.000000    -1.000000
248 1.000000    1.000000    38.000000    108.000000    60.000000    2.000000    3.000000    4.000000    1.000000    4.000000    3.000000    3.000000    2.000000    0.000000    0.000000    3.000000    4.000000    0.000000    0.000000    3.000000    0.000000    1.000000
249 2.000000    1.000000    38.200000    48.000000    0.000000    2.000000    0.000000    1.000000    2.000000    3.000000    3.000000    1.000000    2.000000    1.000000    0.000000    0.000000    2.000000    34.000000    6.600000    0.000000    0.000000    1.000000
250 1.000000    1.000000    39.300000    100.000000    51.000000    4.000000    4.000000    6.000000    1.000000    2.000000    4.000000    1.000000    1.000000    3.000000    2.000000    0.000000    4.000000    66.000000    13.000000    3.000000    2.000000    -1.000000
251 2.000000    1.000000    36.600000    42.000000    18.000000    3.000000    3.000000    2.000000    1.000000    1.000000    4.000000    1.000000    1.000000    1.000000    0.000000    0.000000    5.000000    52.000000    7.100000    0.000000    0.000000    -1.000000
252 1.000000    9.000000    38.800000    124.000000    36.000000    3.000000    1.000000    2.000000    1.000000    2.000000    3.000000    4.000000    1.000000    1.000000    0.000000    4.000000    4.000000    50.000000    7.600000    3.000000    0.000000    -1.000000
253 2.000000    1.000000    0.000000    112.000000    24.000000    3.000000    3.000000    4.000000    2.000000    5.000000    4.000000    2.000000    0.000000    0.000000    0.000000    4.000000    0.000000    40.000000    5.300000    3.000000    2.600000    1.000000
254 1.000000    1.000000    0.000000    80.000000    0.000000    3.000000    3.000000    3.000000    1.000000    4.000000    4.000000    4.000000    0.000000    0.000000    0.000000    4.000000    5.000000    43.000000    70.000000    0.000000    0.000000    1.000000
255 1.000000    9.000000    38.800000    184.000000    84.000000    1.000000    0.000000    1.000000    1.000000    4.000000    1.000000    3.000000    0.000000    0.000000    0.000000    2.000000    0.000000    33.000000    3.300000    0.000000    0.000000    -1.000000
256 1.000000    1.000000    37.500000    72.000000    0.000000    2.000000    1.000000    1.000000    1.000000    2.000000    1.000000    1.000000    1.000000    1.000000    0.000000    1.000000    0.000000    35.000000    65.000000    2.000000    2.000000    -1.000000
257 1.000000    1.000000    38.700000    96.000000    28.000000    3.000000    3.000000    4.000000    1.000000    0.000000    4.000000    0.000000    0.000000    3.000000    7.500000    0.000000    0.000000    64.000000    9.000000    0.000000    0.000000    -1.000000
258 2.000000    1.000000    37.500000    52.000000    12.000000    1.000000    1.000000    1.000000    1.000000    2.000000    3.000000    2.000000    2.000000    1.000000    0.000000    3.000000    5.000000    36.000000    61.000000    1.000000    1.000000    1.000000
259 1.000000    1.000000    40.800000    72.000000    42.000000    3.000000    3.000000    1.000000    1.000000    2.000000    3.000000    1.000000    2.000000    1.000000    0.000000    0.000000    0.000000    54.000000    7.400000    3.000000    0.000000    -1.000000
260 2.000000    1.000000    38.000000    40.000000    25.000000    0.000000    1.000000    1.000000    1.000000    4.000000    3.000000    2.000000    1.000000    1.000000    0.000000    4.000000    0.000000    37.000000    69.000000    0.000000    0.000000    1.000000
261 2.000000    1.000000    38.400000    48.000000    16.000000    2.000000    1.000000    1.000000    1.000000    1.000000    0.000000    2.000000    2.000000    1.000000    0.000000    0.000000    2.000000    39.000000    6.500000    0.000000    0.000000    1.000000
262 2.000000    9.000000    38.600000    88.000000    28.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    35.000000    5.900000    0.000000    0.000000    1.000000
263 1.000000    1.000000    37.100000    75.000000    36.000000    0.000000    0.000000    3.000000    2.000000    4.000000    4.000000    2.000000    2.000000    3.000000    5.000000    4.000000    4.000000    48.000000    7.400000    3.000000    3.200000    -1.000000
264 1.000000    1.000000    38.300000    44.000000    21.000000    3.000000    1.000000    2.000000    1.000000    3.000000    3.000000    3.000000    2.000000    1.000000    0.000000    1.000000    5.000000    44.000000    6.500000    2.000000    4.400000    1.000000
265 2.000000    1.000000    0.000000    56.000000    68.000000    3.000000    1.000000    1.000000    1.000000    3.000000    3.000000    1.000000    2.000000    1.000000    0.000000    1.000000    0.000000    40.000000    6.000000    0.000000    0.000000    -1.000000
266 2.000000    1.000000    38.600000    68.000000    20.000000    2.000000    1.000000    3.000000    1.000000    3.000000    3.000000    2.000000    1.000000    1.000000    0.000000    1.000000    5.000000    38.000000    6.500000    1.000000    0.000000    1.000000
267 2.000000    1.000000    38.300000    54.000000    18.000000    3.000000    1.000000    2.000000    1.000000    2.000000    3.000000    2.000000    0.000000    3.000000    5.400000    0.000000    4.000000    44.000000    7.200000    3.000000    0.000000    1.000000
268 1.000000    1.000000    38.200000    42.000000    20.000000    0.000000    0.000000    1.000000    1.000000    0.000000    3.000000    0.000000    0.000000    0.000000    0.000000    3.000000    0.000000    47.000000    60.000000    0.000000    0.000000    1.000000
269 1.000000    1.000000    39.300000    64.000000    90.000000    2.000000    3.000000    1.000000    1.000000    0.000000    3.000000    1.000000    1.000000    2.000000    6.500000    1.000000    5.000000    39.000000    6.700000    0.000000    0.000000    1.000000
270 1.000000    1.000000    37.500000    60.000000    50.000000    3.000000    3.000000    1.000000    1.000000    3.000000    3.000000    2.000000    2.000000    2.000000    3.500000    3.000000    4.000000    35.000000    6.500000    0.000000    0.000000    -1.000000
271 1.000000    1.000000    37.700000    80.000000    0.000000    3.000000    3.000000    6.000000    1.000000    5.000000    4.000000    1.000000    2.000000    3.000000    0.000000    3.000000    1.000000    50.000000    55.000000    3.000000    2.000000    1.000000
272 1.000000    1.000000    0.000000    100.000000    30.000000    3.000000    3.000000    4.000000    2.000000    5.000000    4.000000    4.000000    3.000000    3.000000    0.000000    4.000000    4.000000    52.000000    6.600000    0.000000    0.000000    1.000000
273 1.000000    1.000000    37.700000    120.000000    28.000000    3.000000    3.000000    3.000000    1.000000    5.000000    3.000000    3.000000    1.000000    1.000000    0.000000    0.000000    0.000000    65.000000    7.000000    3.000000    0.000000    -1.000000
274 1.000000    1.000000    0.000000    76.000000    0.000000    0.000000    3.000000    0.000000    0.000000    0.000000    4.000000    4.000000    0.000000    0.000000    0.000000    0.000000    5.000000    0.000000    0.000000    0.000000    0.000000    -1.000000
275 1.000000    9.000000    38.800000    150.000000    50.000000    1.000000    3.000000    6.000000    2.000000    5.000000    3.000000    2.000000    1.000000    1.000000    0.000000    0.000000    0.000000    50.000000    6.200000    0.000000    0.000000    -1.000000
276 1.000000    1.000000    38.000000    36.000000    16.000000    3.000000    1.000000    1.000000    1.000000    4.000000    2.000000    2.000000    3.000000    3.000000    2.000000    3.000000    0.000000    37.000000    75.000000    2.000000    1.000000    -1.000000
277 2.000000    1.000000    36.900000    50.000000    40.000000    2.000000    3.000000    3.000000    1.000000    1.000000    3.000000    2.000000    3.000000    1.000000    7.000000    0.000000    0.000000    37.500000    6.500000    0.000000    0.000000    1.000000
278 2.000000    1.000000    37.800000    40.000000    16.000000    1.000000    1.000000    1.000000    1.000000    1.000000    1.000000    1.000000    0.000000    0.000000    0.000000    1.000000    1.000000    37.000000    6.800000    0.000000    0.000000    1.000000
279 2.000000    1.000000    38.200000    56.000000    40.000000    4.000000    3.000000    1.000000    1.000000    2.000000    4.000000    3.000000    2.000000    2.000000    7.500000    0.000000    0.000000    47.000000    7.200000    1.000000    2.500000    1.000000
280 1.000000    1.000000    38.600000    48.000000    12.000000    0.000000    0.000000    1.000000    0.000000    1.000000    1.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    36.000000    67.000000    0.000000    0.000000    1.000000
281 2.000000    1.000000    40.000000    78.000000    0.000000    3.000000    3.000000    5.000000    1.000000    2.000000    3.000000    1.000000    1.000000    1.000000    0.000000    4.000000    1.000000    66.000000    6.500000    0.000000    0.000000    -1.000000
282 1.000000    1.000000    0.000000    70.000000    16.000000    3.000000    4.000000    5.000000    2.000000    2.000000    3.000000    2.000000    2.000000    1.000000    0.000000    4.000000    5.000000    60.000000    7.500000    0.000000    0.000000    -1.000000
283 1.000000    1.000000    38.200000    72.000000    18.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    35.000000    6.400000    0.000000    0.000000    1.000000
284 2.000000    1.000000    38.500000    54.000000    0.000000    1.000000    1.000000    1.000000    1.000000    3.000000    1.000000    1.000000    2.000000    1.000000    0.000000    1.000000    0.000000    40.000000    6.800000    2.000000    7.000000    1.000000
285 1.000000    1.000000    38.500000    66.000000    24.000000    1.000000    1.000000    1.000000    1.000000    3.000000    3.000000    1.000000    2.000000    1.000000    0.000000    4.000000    5.000000    40.000000    6.700000    1.000000    0.000000    1.000000
286 2.000000    1.000000    37.800000    82.000000    12.000000    3.000000    1.000000    1.000000    2.000000    4.000000    0.000000    3.000000    1.000000    3.000000    0.000000    0.000000    0.000000    50.000000    7.000000    0.000000    0.000000    -1.000000
287 2.000000    9.000000    39.500000    84.000000    30.000000    0.000000    0.000000    0.000000    1.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    28.000000    5.000000    0.000000    0.000000    1.000000
288 1.000000    1.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    1.000000
289 1.000000    1.000000    38.000000    50.000000    36.000000    0.000000    1.000000    1.000000    1.000000    3.000000    2.000000    2.000000    0.000000    0.000000    0.000000    3.000000    0.000000    39.000000    6.600000    1.000000    5.300000    1.000000
290 2.000000    1.000000    38.600000    45.000000    16.000000    2.000000    1.000000    2.000000    1.000000    1.000000    1.000000    0.000000    0.000000    0.000000    0.000000    1.000000    1.000000    43.000000    58.000000    0.000000    0.000000    1.000000
291 1.000000    1.000000    38.900000    80.000000    44.000000    3.000000    3.000000    3.000000    1.000000    2.000000    3.000000    3.000000    2.000000    2.000000    7.000000    3.000000    1.000000    54.000000    6.500000    3.000000    0.000000    -1.000000
292 1.000000    1.000000    37.000000    66.000000    20.000000    1.000000    3.000000    2.000000    1.000000    4.000000    3.000000    3.000000    1.000000    0.000000    0.000000    1.000000    5.000000    35.000000    6.900000    2.000000    0.000000    -1.000000
293 1.000000    1.000000    0.000000    78.000000    24.000000    3.000000    3.000000    3.000000    1.000000    0.000000    3.000000    0.000000    2.000000    1.000000    0.000000    0.000000    4.000000    43.000000    62.000000    0.000000    2.000000    -1.000000
294 2.000000    1.000000    38.500000    40.000000    16.000000    1.000000    1.000000    1.000000    1.000000    2.000000    1.000000    1.000000    0.000000    0.000000    0.000000    3.000000    2.000000    37.000000    67.000000    0.000000    0.000000    1.000000
295 1.000000    1.000000    0.000000    120.000000    70.000000    4.000000    0.000000    4.000000    2.000000    2.000000    4.000000    0.000000    0.000000    0.000000    0.000000    0.000000    5.000000    55.000000    65.000000    0.000000    0.000000    -1.000000
296 2.000000    1.000000    37.200000    72.000000    24.000000    3.000000    2.000000    4.000000    2.000000    4.000000    3.000000    3.000000    3.000000    1.000000    0.000000    4.000000    4.000000    44.000000    0.000000    3.000000    3.300000    -1.000000
297 1.000000    1.000000    37.500000    72.000000    30.000000    4.000000    3.000000    4.000000    1.000000    4.000000    4.000000    3.000000    2.000000    1.000000    0.000000    3.000000    5.000000    60.000000    6.800000    0.000000    0.000000    -1.000000
298 1.000000    1.000000    36.500000    100.000000    24.000000    3.000000    3.000000    3.000000    1.000000    3.000000    3.000000    3.000000    3.000000    1.000000    0.000000    4.000000    4.000000    50.000000    6.000000    3.000000    3.400000    1.000000
299 1.000000    1.000000    37.200000    40.000000    20.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    4.000000    1.000000    36.000000    62.000000    1.000000    1.000000    -1.000000
訓練數據集

horseColicTest2.txt

 1 2.000000    1.000000    38.500000    54.000000    20.000000    0.000000    1.000000    2.000000    2.000000    3.000000    4.000000    1.000000    2.000000    2.000000    5.900000    0.000000    2.000000    42.000000    6.300000    0.000000    0.000000    1.000000
 2 2.000000    1.000000    37.600000    48.000000    36.000000    0.000000    0.000000    1.000000    1.000000    0.000000    3.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    44.000000    6.300000    1.000000    5.000000    1.000000
 3 1.000000    1.000000    37.700000    44.000000    28.000000    0.000000    4.000000    3.000000    2.000000    5.000000    4.000000    4.000000    1.000000    1.000000    0.000000    3.000000    5.000000    45.000000    70.000000    3.000000    2.000000    1.000000
 4 1.000000    1.000000    37.000000    56.000000    24.000000    3.000000    1.000000    4.000000    2.000000    4.000000    4.000000    3.000000    1.000000    1.000000    0.000000    0.000000    0.000000    35.000000    61.000000    3.000000    2.000000    -1.000000
 5 2.000000    1.000000    38.000000    42.000000    12.000000    3.000000    0.000000    3.000000    1.000000    1.000000    0.000000    1.000000    0.000000    0.000000    0.000000    0.000000    2.000000    37.000000    5.800000    0.000000    0.000000    1.000000
 6 1.000000    1.000000    0.000000    60.000000    40.000000    3.000000    0.000000    1.000000    1.000000    0.000000    4.000000    0.000000    3.000000    2.000000    0.000000    0.000000    5.000000    42.000000    72.000000    0.000000    0.000000    1.000000
 7 2.000000    1.000000    38.400000    80.000000    60.000000    3.000000    2.000000    2.000000    1.000000    3.000000    2.000000    1.000000    2.000000    2.000000    0.000000    1.000000    1.000000    54.000000    6.900000    0.000000    0.000000    1.000000
 8 2.000000    1.000000    37.800000    48.000000    12.000000    2.000000    1.000000    2.000000    1.000000    3.000000    0.000000    1.000000    2.000000    0.000000    0.000000    2.000000    0.000000    48.000000    7.300000    1.000000    0.000000    1.000000
 9 2.000000    1.000000    37.900000    45.000000    36.000000    3.000000    3.000000    3.000000    2.000000    2.000000    3.000000    1.000000    2.000000    1.000000    0.000000    3.000000    0.000000    33.000000    5.700000    3.000000    0.000000    1.000000
10 2.000000    1.000000    39.000000    84.000000    12.000000    3.000000    1.000000    5.000000    1.000000    2.000000    4.000000    2.000000    1.000000    2.000000    7.000000    0.000000    4.000000    62.000000    5.900000    2.000000    2.200000    -1.000000
11 2.000000    1.000000    38.200000    60.000000    24.000000    3.000000    1.000000    3.000000    2.000000    3.000000    3.000000    2.000000    3.000000    3.000000    0.000000    4.000000    4.000000    53.000000    7.500000    2.000000    1.400000    1.000000
12 1.000000    1.000000    0.000000    140.000000    0.000000    0.000000    0.000000    4.000000    2.000000    5.000000    4.000000    4.000000    1.000000    1.000000    0.000000    0.000000    5.000000    30.000000    69.000000    0.000000    0.000000    -1.000000
13 1.000000    1.000000    37.900000    120.000000    60.000000    3.000000    3.000000    3.000000    1.000000    5.000000    4.000000    4.000000    2.000000    2.000000    7.500000    4.000000    5.000000    52.000000    6.600000    3.000000    1.800000    -1.000000
14 2.000000    1.000000    38.000000    72.000000    36.000000    1.000000    1.000000    3.000000    1.000000    3.000000    0.000000    2.000000    2.000000    1.000000    0.000000    3.000000    5.000000    38.000000    6.800000    2.000000    2.000000    1.000000
15 2.000000    9.000000    38.000000    92.000000    28.000000    1.000000    1.000000    2.000000    1.000000    1.000000    3.000000    2.000000    3.000000    0.000000    7.200000    0.000000    0.000000    37.000000    6.100000    1.000000    1.100000    1.000000
16 1.000000    1.000000    38.300000    66.000000    30.000000    2.000000    3.000000    1.000000    1.000000    2.000000    4.000000    3.000000    3.000000    2.000000    8.500000    4.000000    5.000000    37.000000    6.000000    0.000000    0.000000    1.000000
17 2.000000    1.000000    37.500000    48.000000    24.000000    3.000000    1.000000    1.000000    1.000000    2.000000    1.000000    0.000000    1.000000    1.000000    0.000000    3.000000    2.000000    43.000000    6.000000    1.000000    2.800000    1.000000
18 1.000000    1.000000    37.500000    88.000000    20.000000    2.000000    3.000000    3.000000    1.000000    4.000000    3.000000    3.000000    0.000000    0.000000    0.000000    0.000000    0.000000    35.000000    6.400000    1.000000    0.000000    -1.000000
19 2.000000    9.000000    0.000000    150.000000    60.000000    4.000000    4.000000    4.000000    2.000000    5.000000    4.000000    4.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    -1.000000
20 1.000000    1.000000    39.700000    100.000000    30.000000    0.000000    0.000000    6.000000    2.000000    4.000000    4.000000    3.000000    1.000000    0.000000    0.000000    4.000000    5.000000    65.000000    75.000000    0.000000    0.000000    -1.000000
21 1.000000    1.000000    38.300000    80.000000    0.000000    3.000000    3.000000    4.000000    2.000000    5.000000    4.000000    3.000000    2.000000    1.000000    0.000000    4.000000    4.000000    45.000000    7.500000    2.000000    4.600000    1.000000
22 2.000000    1.000000    37.500000    40.000000    32.000000    3.000000    1.000000    3.000000    1.000000    3.000000    2.000000    3.000000    2.000000    1.000000    0.000000    0.000000    5.000000    32.000000    6.400000    1.000000    1.100000    1.000000
23 1.000000    1.000000    38.400000    84.000000    30.000000    3.000000    1.000000    5.000000    2.000000    4.000000    3.000000    3.000000    2.000000    3.000000    6.500000    4.000000    4.000000    47.000000    7.500000    3.000000    0.000000    -1.000000
24 1.000000    1.000000    38.100000    84.000000    44.000000    4.000000    0.000000    4.000000    2.000000    5.000000    3.000000    1.000000    1.000000    3.000000    5.000000    0.000000    4.000000    60.000000    6.800000    0.000000    5.700000    -1.000000
25 2.000000    1.000000    38.700000    52.000000    0.000000    1.000000    1.000000    1.000000    1.000000    1.000000    3.000000    1.000000    0.000000    0.000000    0.000000    1.000000    3.000000    4.000000    74.000000    0.000000    0.000000    1.000000
26 2.000000    1.000000    38.100000    44.000000    40.000000    2.000000    1.000000    3.000000    1.000000    3.000000    3.000000    1.000000    0.000000    0.000000    0.000000    1.000000    3.000000    35.000000    6.800000    0.000000    0.000000    1.000000
27 2.000000    1.000000    38.400000    52.000000    20.000000    2.000000    1.000000    3.000000    1.000000    1.000000    3.000000    2.000000    2.000000    1.000000    0.000000    3.000000    5.000000    41.000000    63.000000    1.000000    1.000000    1.000000
28 1.000000    1.000000    38.200000    60.000000    0.000000    1.000000    0.000000    3.000000    1.000000    2.000000    1.000000    1.000000    1.000000    1.000000    0.000000    4.000000    4.000000    43.000000    6.200000    2.000000    3.900000    1.000000
29 2.000000    1.000000    37.700000    40.000000    18.000000    1.000000    1.000000    1.000000    0.000000    3.000000    2.000000    1.000000    1.000000    1.000000    0.000000    3.000000    3.000000    36.000000    3.500000    0.000000    0.000000    1.000000
30 1.000000    1.000000    39.100000    60.000000    10.000000    0.000000    1.000000    1.000000    0.000000    2.000000    3.000000    0.000000    0.000000    0.000000    0.000000    4.000000    4.000000    0.000000    0.000000    0.000000    0.000000    1.000000
31 2.000000    1.000000    37.800000    48.000000    16.000000    1.000000    1.000000    1.000000    1.000000    0.000000    1.000000    1.000000    2.000000    1.000000    0.000000    4.000000    3.000000    43.000000    7.500000    0.000000    0.000000    1.000000
32 1.000000    1.000000    39.000000    120.000000    0.000000    4.000000    3.000000    5.000000    2.000000    2.000000    4.000000    3.000000    2.000000    3.000000    8.000000    0.000000    0.000000    65.000000    8.200000    3.000000    4.600000    1.000000
33 1.000000    1.000000    38.200000    76.000000    0.000000    2.000000    3.000000    2.000000    1.000000    5.000000    3.000000    3.000000    1.000000    2.000000    6.000000    1.000000    5.000000    35.000000    6.500000    2.000000    0.900000    1.000000
34 2.000000    1.000000    38.300000    88.000000    0.000000    0.000000    0.000000    6.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    -1.000000
35 1.000000    1.000000    38.000000    80.000000    30.000000    3.000000    3.000000    3.000000    1.000000    0.000000    0.000000    0.000000    0.000000    0.000000    6.000000    0.000000    0.000000    48.000000    8.300000    0.000000    4.300000    1.000000
36 1.000000    1.000000    0.000000    0.000000    0.000000    3.000000    1.000000    1.000000    1.000000    2.000000    3.000000    3.000000    1.000000    3.000000    6.000000    4.000000    4.000000    0.000000    0.000000    2.000000    0.000000    -1.000000
37 1.000000    1.000000    37.600000    40.000000    0.000000    1.000000    1.000000    1.000000    1.000000    1.000000    1.000000    1.000000    0.000000    0.000000    0.000000    1.000000    1.000000    0.000000    0.000000    2.000000    2.100000    1.000000
38 2.000000    1.000000    37.500000    44.000000    0.000000    1.000000    1.000000    1.000000    1.000000    3.000000    3.000000    2.000000    0.000000    0.000000    0.000000    0.000000    0.000000    45.000000    5.800000    2.000000    1.400000    1.000000
39 2.000000    1.000000    38.200000    42.000000    16.000000    1.000000    1.000000    3.000000    1.000000    1.000000    3.000000    1.000000    0.000000    0.000000    0.000000    1.000000    0.000000    35.000000    60.000000    1.000000    1.000000    1.000000
40 2.000000    1.000000    38.000000    56.000000    44.000000    3.000000    3.000000    3.000000    0.000000    0.000000    1.000000    1.000000    2.000000    1.000000    0.000000    4.000000    0.000000    47.000000    70.000000    2.000000    1.000000    1.000000
41 2.000000    1.000000    38.300000    45.000000    20.000000    3.000000    3.000000    2.000000    2.000000    2.000000    4.000000    1.000000    2.000000    0.000000    0.000000    4.000000    0.000000    0.000000    0.000000    0.000000    0.000000    1.000000
42 1.000000    1.000000    0.000000    48.000000    96.000000    1.000000    1.000000    3.000000    1.000000    0.000000    4.000000    1.000000    2.000000    1.000000    0.000000    1.000000    4.000000    42.000000    8.000000    1.000000    0.000000    1.000000
43 1.000000    1.000000    37.700000    55.000000    28.000000    2.000000    1.000000    2.000000    1.000000    2.000000    3.000000    3.000000    0.000000    3.000000    5.000000    4.000000    5.000000    0.000000    0.000000    0.000000    0.000000    1.000000
44 2.000000    1.000000    36.000000    100.000000    20.000000    4.000000    3.000000    6.000000    2.000000    2.000000    4.000000    3.000000    1.000000    1.000000    0.000000    4.000000    5.000000    74.000000    5.700000    2.000000    2.500000    -1.000000
45 1.000000    1.000000    37.100000    60.000000    20.000000    2.000000    0.000000    4.000000    1.000000    3.000000    0.000000    3.000000    0.000000    2.000000    5.000000    3.000000    4.000000    64.000000    8.500000    2.000000    0.000000    1.000000
46 2.000000    1.000000    37.100000    114.000000    40.000000    3.000000    0.000000    3.000000    2.000000    2.000000    2.000000    1.000000    0.000000    0.000000    0.000000    0.000000    3.000000    32.000000    0.000000    3.000000    6.500000    1.000000
47 1.000000    1.000000    38.100000    72.000000    30.000000    3.000000    3.000000    3.000000    1.000000    4.000000    4.000000    3.000000    2.000000    1.000000    0.000000    3.000000    5.000000    37.000000    56.000000    3.000000    1.000000    1.000000
48 1.000000    1.000000    37.000000    44.000000    12.000000    3.000000    1.000000    1.000000    2.000000    1.000000    1.000000    1.000000    0.000000    0.000000    0.000000    4.000000    2.000000    40.000000    6.700000    3.000000    8.000000    1.000000
49 1.000000    1.000000    38.600000    48.000000    20.000000    3.000000    1.000000    1.000000    1.000000    4.000000    3.000000    1.000000    0.000000    0.000000    0.000000    3.000000    0.000000    37.000000    75.000000    0.000000    0.000000    1.000000
50 1.000000    1.000000    0.000000    82.000000    72.000000    3.000000    1.000000    4.000000    1.000000    2.000000    3.000000    3.000000    0.000000    3.000000    0.000000    4.000000    4.000000    53.000000    65.000000    3.000000    2.000000    -1.000000
51 1.000000    9.000000    38.200000    78.000000    60.000000    4.000000    4.000000    6.000000    0.000000    3.000000    3.000000    3.000000    0.000000    0.000000    0.000000    1.000000    0.000000    59.000000    5.800000    3.000000    3.100000    -1.000000
52 2.000000    1.000000    37.800000    60.000000    16.000000    1.000000    1.000000    3.000000    1.000000    2.000000    3.000000    2.000000    1.000000    2.000000    0.000000    3.000000    0.000000    41.000000    73.000000    0.000000    0.000000    -1.000000
53 1.000000    1.000000    38.700000    34.000000    30.000000    2.000000    0.000000    3.000000    1.000000    2.000000    3.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    33.000000    69.000000    0.000000    2.000000    -1.000000
54 1.000000    1.000000    0.000000    36.000000    12.000000    1.000000    1.000000    1.000000    1.000000    1.000000    2.000000    1.000000    1.000000    1.000000    0.000000    1.000000    5.000000    44.000000    0.000000    0.000000    0.000000    1.000000
55 2.000000    1.000000    38.300000    44.000000    60.000000    0.000000    0.000000    1.000000    1.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    6.400000    36.000000    0.000000    0.000000    1.000000
56 2.000000    1.000000    37.400000    54.000000    18.000000    3.000000    0.000000    1.000000    1.000000    3.000000    4.000000    3.000000    2.000000    2.000000    0.000000    4.000000    5.000000    30.000000    7.100000    2.000000    0.000000    1.000000
57 1.000000    1.000000    0.000000    0.000000    0.000000    4.000000    3.000000    0.000000    2.000000    2.000000    4.000000    1.000000    0.000000    0.000000    0.000000    0.000000    0.000000    54.000000    76.000000    3.000000    2.000000    1.000000
58 1.000000    1.000000    36.600000    48.000000    16.000000    3.000000    1.000000    3.000000    1.000000    4.000000    1.000000    1.000000    1.000000    1.000000    0.000000    0.000000    0.000000    27.000000    56.000000    0.000000    0.000000    -1.000000
59 1.000000    1.000000    38.500000    90.000000    0.000000    1.000000    1.000000    3.000000    1.000000    3.000000    3.000000    3.000000    2.000000    3.000000    2.000000    4.000000    5.000000    47.000000    79.000000    0.000000    0.000000    1.000000
60 1.000000    1.000000    0.000000    75.000000    12.000000    1.000000    1.000000    4.000000    1.000000    5.000000    3.000000    3.000000    0.000000    3.000000    5.800000    0.000000    0.000000    58.000000    8.500000    1.000000    0.000000    1.000000
61 2.000000    1.000000    38.200000    42.000000    0.000000    3.000000    1.000000    1.000000    1.000000    1.000000    1.000000    2.000000    2.000000    1.000000    0.000000    3.000000    2.000000    35.000000    5.900000    2.000000    0.000000    1.000000
62 1.000000    9.000000    38.200000    78.000000    60.000000    4.000000    4.000000    6.000000    0.000000    3.000000    3.000000    3.000000    0.000000    0.000000    0.000000    1.000000    0.000000    59.000000    5.800000    3.000000    3.100000    -1.000000
63 2.000000    1.000000    38.600000    60.000000    30.000000    1.000000    1.000000    3.000000    1.000000    4.000000    2.000000    2.000000    1.000000    1.000000    0.000000    0.000000    0.000000    40.000000    6.000000    1.000000    0.000000    1.000000
64 2.000000    1.000000    37.800000    42.000000    40.000000    1.000000    1.000000    1.000000    1.000000    1.000000    3.000000    1.000000    0.000000    0.000000    0.000000    3.000000    3.000000    36.000000    6.200000    0.000000    0.000000    1.000000
65 1.000000    1.000000    38.000000    60.000000    12.000000    1.000000    1.000000    2.000000    1.000000    2.000000    1.000000    1.000000    1.000000    1.000000    0.000000    1.000000    4.000000    44.000000    65.000000    3.000000    2.000000    -1.000000
66 2.000000    1.000000    38.000000    42.000000    12.000000    3.000000    0.000000    3.000000    1.000000    1.000000    1.000000    1.000000    0.000000    0.000000    0.000000    0.000000    1.000000    37.000000    5.800000    0.000000    0.000000    1.000000
67 2.000000    1.000000    37.600000    88.000000    36.000000    3.000000    1.000000    1.000000    1.000000    3.000000    3.000000    2.000000    1.000000    3.000000    1.500000    0.000000    0.000000    44.000000    6.000000    0.000000    0.000000    -1.000000
測試數據集

AdaBoost算法實現(myAdaboost.py)

每一個方法的做用,以及每行代碼的做用,一樣我都作了詳細的註解。

值得一提的是,我將 找到分類器錯誤率最小的算法buildStump進行了改造(相比於機器學習實戰中對應的樣例,能夠明顯提高運行速度),

在閾值不等式遍歷時,若是在「lt」符號遍歷的差錯率 weightedError < 1 - weightedError,該閾值不等式遍歷就結束,

不須要進行「gt」的遍歷。運行結果和機器學習實踐仍是同樣的。

 

  1 # -*- coding: utf-8 -*-
  2 """
  3 Created on Thu Sep 13 13:37:39 2018
  4 Adaboost(adaptive Boosting): 多個弱分類器集成爲強分類器
  5 @author: weixw
  6 """
  7 import numpy as np
  8 
  9 #輸入:數據文件
 10 #功能:加載文件,文件最後一列是標籤數據,分離特徵數據集與標籤數據集
 11 #     自動檢測多少列特徵數據並分離
 12 #輸出:特徵數據集,標籤數據集
 13 def loadDataSet(fileName):
 14     #特徵數據列長度
 15     numberFeat = len(open(fileName).readline().split('\t')) - 1
 16     dataSet = []; labelSet = []
 17     fr = open(fileName)
 18     for line in fr.readlines():
 19         lineArr = []
 20         #去除收尾空格,而後分割每一列
 21         curLine = line.strip().split('\t')
 22         #保存每一列特徵數據
 23         for i in range(numberFeat):
 24             lineArr.append(float(curLine[i]))
 25         dataSet.append(lineArr)
 26         labelSet.append(float(curLine[-1]))
 27     return dataSet, labelSet
 28 
 29 #輸入:特徵數據集,列索引(特徵維數),某一特徵的分類閾值,分類不等式符號
 30 #功能:輸出決策樹樁標籤,知足閾值要求更新標籤值
 31 #輸出:更新後標籤列
 32 def stumpClassify(dataMatrix, columnIndex, threshVal, threshIneq):
 33     #初始化
 34     retLabelArray = np.ones((np.shape(dataMatrix)[0], 1))
 35     #'lt':less than <=
 36     if threshIneq == 'lt':
 37         retLabelArray[dataMatrix[:,columnIndex] <= threshVal] = -1.0
 38     else:
 39         retLabelArray[dataMatrix[:,columnIndex] >= threshVal] = -1.0
 40     return retLabelArray
 41 
 42 #輸入:特徵數據集,標籤數據集,權重矩陣
 43 #功能:找到分類錯誤率最小的單層決策樹(分類器)
 44 #輸出:最佳分類器 特徵列索引,閾值,閾值對應不等式符號('lt' 或 'gt'),最小加權差錯率,該權值向量D下的分類標籤估計值
 45 def buildStumpFurther(dataSet, labelSet, D):
 46     #將數組轉化爲矩陣
 47     dataMatrix = np.mat(dataSet)
 48     labelMatrix = np.mat(labelSet).T
 49     #獲取特徵數據集行,列最大值
 50     m, n = np.shape(dataMatrix)
 51     #決定步長大小,越大則步長越小,分類準確度越高,但運算次數也越多
 52     numSteps = 10.0
 53     #初始化最佳分類器參數
 54     bestClassifier = {}; bestClassEst = np.mat(np.zeros((m, 1))); minError = np.inf
 55     #每一列都是一個特徵,循環遍歷全部特徵,找到差錯最小時特徵維數,閾值,以及比較符號
 56     for i in range(n):
 57         #獲取對應列最小值,最大值
 58         columnMin = dataMatrix[:, i].min(); columnMax = dataMatrix[:, i].max()
 59         #步長
 60         stepSize = (columnMax - columnMin)/numSteps
 61         #遍歷步長全部值,獲取最佳閾值
 62         for j in range(-1, int(numSteps)+1):
 63             #遍歷閾值全部可能不等式符號
 64             for inequal in ['lt', 'gt']:
 65                 threshVal = columnMin + float(j)*stepSize
 66                 #獲取預測標籤列表
 67                 predictedVals = stumpClassify(dataMatrix, i, threshVal, inequal)
 68                 #獲取當前列中哪些行(1)預測出錯,設置1表示出錯是便於後續量化計算差錯權重(巧妙)
 69                 errArr = np.mat(np.ones((m, 1)))
 70                 errArr[predictedVals == labelMatrix] = 0
 71                 #差錯權重 1*n n*1 => 1*1
 72                 weightedError = D.T*errArr
 73                 #由於prop_lt + prop_gt = 1,因此若是prop_lt < 1- prop_gt,就不須要繼續循環計算inequal = 'gt'的狀況,
 74                 #提升運行速度
 75                 if weightedError <= 1 - weightedError:
 76                     #始終保持minError是最小值
 77                     if weightedError < minError:
 78                         minError = weightedError
 79                         #predictedVals每次都更新,更新後的值不必定是最佳的預測值,因此這裏須要new一個新的內存空間,而後賦值
 80                         bestClassEst = predictedVals.copy()
 81                         bestClassifier['dim'] = i
 82                         bestClassifier['thresh'] = threshVal
 83                         bestClassifier['ineq'] = inequal
 84                     #'lt','gt'只需遍歷一次,prop_lt + prop_gt = 1
 85                     break
 86                 
 87     return bestClassifier, minError, bestClassEst
 88 
 89 #輸入:特徵數據集,標籤數據集,分類器個數最大值(若是在遍歷時錯誤率爲0,則真實分類器個數 < 最大值)
 90 #功能:針對同一個訓練集訓練不一樣的分類器(弱分類器),
 91 #     而後把這些弱分類器集合起來,構成一個更強的最終分類器(強分類器)。
 92 #輸出:弱分類器數組(包含特徵列索引,閾值,閾值對應不等式符號('lt' 或 'gt'),alpha權重係數),標籤預測數組
 93 def adaBoostTrainDS(dataSet, labelSet, classifierNumberMax):
 94     #弱分類器數組初始化
 95     weakClassifierArr = []
 96     #特徵數據行數
 97     m = np.shape(dataSet)[0]
 98     #初始樣本權重
 99     D = np.mat(np.ones((m, 1))/m)
100     #初始預測集成標籤矩陣
101     preIntegrationLabelsMat = np.mat(np.zeros((m, 1)))
102     for i in range(classifierNumberMax):
103         #找到分類錯誤率最小的分類器
104         #特徵列索引,閾值,閾值對應不等式符號('lt' 或 'gt'),最小加權差錯率,該權值向量D下的分類標籤估計值
105         bestClassifier, error, preLabelsMat = buildStumpFurther(dataSet, labelSet, D)
106         #計算樣本系數alpha 已天然對數e爲底 ,爲防止分母爲0,因此max(error, 1e - 16)
107         alpha = float(0.5 * np.log((1.0 - error)/max(error, 1e-16)))
108         #保存樣本系數值
109         bestClassifier['alpha'] = alpha
110         #保存某一次遍歷獲得的最佳弱分類器
111         weakClassifierArr.append(bestClassifier)
112         #樣本權重矩陣更新算法:
113         #若是第i個樣本被正確分類了,那麼在下一次迭代過程當中,該樣本的權重DiI就會下降。
114         #若是第i個樣本沒有被正確分類,那麼在下次迭代過程當中,該樣本的權重Di就會升高。
115         #很巧妙有沒有 機器學習實踐公式
116         #錯誤分類樣本expon_i經過下面算法獲得的結果始終 > 0 ,從而在指數運算中獲得權重就會升高;
117         #正確分類結果始終爲 < 0,,從而在指數運算中獲得權重就會下降;
118         expon = np.multiply(-1*alpha*np.mat(labelSet).T, preLabelsMat)
119         D = np.multiply(D, np.exp(expon))
120         D = D/D.sum()
121         #全部弱分類器集成後結果估計值
122         preIntegrationLabelsMat += alpha*preLabelsMat
123         #計算分類器集成後的錯誤矩陣,錯誤設置爲1,便於後續計算。很巧妙,須要慢慢品味。
124         integrationErrors = np.multiply(np.sign(preIntegrationLabelsMat) != np.mat(labelSet).T, np.ones((m, 1)))
125         #計算錯誤率
126         errorRate = integrationErrors.sum()/m
127         print ("集成第 %d 個弱分類器後的錯誤率: %f"% (i, errorRate))
128         #錯誤率爲0,說明此時的分類器已達到最佳,終止。
129         if errorRate == 0.0 :
130             break
131         
132     return weakClassifierArr, preIntegrationLabelsMat
133 
134 #輸入:測試數據,集成分類器
135 #功能:根據集成分類器,預測測試數據的結果
136 #輸出:預測結果
137 def adaClassify(testDataSet, classifierArr):
138     dataMat = np.mat(testDataSet)
139     m = np.shape(dataMat)[0]
140     #初始預測集成標籤矩陣
141     preIntegrationLabelsMat = np.mat(np.zeros((m, 1)))
142     for i in range(len(classifierArr[0])):
143         classEst = stumpClassify(dataMat,classifierArr[0][i]['dim'],\
144                                  classifierArr[0][i]['thresh'],\
145                                  classifierArr[0][i]['ineq'])#call stump classify
146         #將每個分類器*權重係數alpha,求和,獲得最終的強分類器
147         preIntegrationLabelsMat += classifierArr[0][i]['alpha']*classEst
148     print ("弱分類器集成後的估計值:%s"% str(preIntegrationLabelsMat))
149     return np.sign(preIntegrationLabelsMat)
150         
151         
152         
153     
154 
155 
156                         
157                         
158                 
159     
160     
161     
162     
163     
164     
165     
166     
167 
168 
169         
AdaBoost算法實現

測試代碼(testMyAdaboost.py)

 1 # -*- coding: utf-8 -*-
 2 """
 3 Created on Thu Sep 13 17:38:44 2018
 4 
 5 @author: weixw
 6 """
 7 
 8 import myAdaboost as ab
 9 import numpy as np
10 
11 
12 #5個分類器訓練錯誤率:25.41%
13 #10個分類器訓練錯誤率:23.07%
14 #50個分類器訓練錯誤率:18.73%
15 #100個分類器訓練錯誤率:19.06%
16 #500個分類器訓練錯誤率:15.71%
17 datArr, labelArr = ab.loadDataSet('horseColicTraining2.txt')
18 #50 表示分類器個數最大值(若是差錯率不爲0,就表示分類器個數)
19 classifierArray = ab.adaBoostTrainDS(datArr, labelArr, 50)
20 
21 
22 #5個分類器測試錯誤數:17  測試錯誤率:25.37%
23 #10個分類器測試錯誤數:16  測試錯誤率:23.88%
24 #50個分類器測試錯誤數:14  測試錯誤率:20.89%
25 #100個分類器測試錯誤數:15  測試錯誤率:22.38%
26 #500個分類器測試錯誤數:17  測試錯誤率:25.37%
27 testArr, testLabelArr = ab.loadDataSet('horseColicTest2.txt')
28 prediction10 = ab.adaClassify(testArr, classifierArray)
29 errArr = np.mat(np.ones((np.shape(testArr)[0], 1)))
30 errSum = errArr[prediction10 != np.mat(testLabelArr).T].sum()
31 print ("測試錯誤數:%d"% errSum)
32 print ("測試錯誤率:%f"% float(errSum/np.shape(testArr)[0]))
測試代碼

運行結果

若是將分類器數目設定爲1 - 500以前不一樣的數字,並運行上述過程。這時,獲得的結果以下所示:

由上表能夠看出,測試錯誤率在達到了一個最小值以後又開始上升了,這類現象稱之爲過擬合(overfitting)。理論上,

AdaBoost是不會存在過擬合的,只會到達一個最小值後趨於穩定。這裏是由於數據集的問題。

參考文獻

    《機器學習實戰》

    《統計學習方法》

     知乎:https://zhuanlan.zhihu.com/p/23987221

     博客:https://blog.csdn.net/Mbx8X9u/article/details/78211995
 
 
 
 

 不要讓懶惰佔據你的大腦,不要讓妥協拖垮了你的人生。青春就是一張票,能不能遇上時代的快車,你的步伐就掌握在你的腳下。

相關文章
相關標籤/搜索