3.1 前言
本節以兩個分類數值例題與兩個迴歸數值例題驗證本演算法。本文 SVM 軟 體部份採用 LIBSVM [20]。四個例題都是人為設計的題目,故重要自變數是已知 的,本節各例題皆以 1000 筆做為訓練範例,100 筆做為測試範例,期能證實此 方法確實可以找到重要的自變數,並建構精簡但準確的模型。
3.2 例題一:交互與二次分類函數 假設有如下函數
2 5
10 4
8
1
0 . 5 )( 0 . 5 ) 1 . 5 ( 0 . 5 )( 0 . 5 ) ( 0 . 5 )
( 5 .
1 − − + − − + −
= X X X X X
Y (3-1)
如果 Y > 0 則為第一類;否則為第二類。
此例題的資料集屬於分類問題,在此函數中, X、
1X
8與 X 、
4X
10為二組交互 作用變數, X 為曲率作用變數,其餘
5X
2、 X 、
3X
6、 X
7、 X
9為無關變數。
首先利用部分因子實驗法做 10 因子 32 回合的實驗,並以懲罰係數、核心係 數等兩個參數為噪音因子,經建構 32 × 9 = 288 個模型,建構完畢後將模型的準 確度填入表中。計算每列準確度的平均值Y 後,利用Y 計算各實驗因子的效果,
得到圖 3-1 之結果。由圖可知,實驗因子 A, D, E, H, K 的效果為正,即代表它們 對應的自變數為 X
1、 X
4、 X 、
5X 、
8X 如果出現在模型的輸入變數中時,準
10確度分別可以提升 5.2%~8.5%,所以是重要的自變數,其餘實驗因子 B, C, F, G, J 的效果都接近 0,即代表它們對應的自變數為如果出現在模型的輸入變數中時,
準確度無法提升,所以是不重要的自變數。此結果與本數值例題的函數設定完全
一致,可見本法能找出重要的自變數。
-0.02 0 0.02 0.04 0.06 0.08 0.1
A B C D E F G H J K
實驗因子
因子效果
圖 3- 1 數值例題一的實驗因子效果直條圖
接下來使用上述找到的重要自變數 X
1、 X
4、 X 、
5X 、
8X 為輸入變數並
10利用網格法:
懲罰係數=0.01, 0.1, 1, 10, 100, 1000, 10000, 100000 核心係數=0.0001, 0.001, 0.01, 0.1, 1,10, 100, 1000
共 8 × 8 = 64 種參數組合來尋找最佳參數設定。結果得到懲罰係數=10000、核心 係數=0.1 時,可得到最佳正判率 97%。
為了證明只用自變數 X
1、 X
4、 X 、
5X 、
8X 為輸入變數,可得到最精簡、
10準確的模型,在此以全部十個自變數為輸入變數,並利用上述網格法來尋找最佳 參數設定。結果得到懲罰係數=10000、核心係數=0.1 時,可得到最佳正判率 93%,
還低於上述方法的 97%,可見上述方法可以找出重要的變數。
3.3 例題二:交互與二次迴歸函數 假設有如下函數
2 5
10 4
8
1
0 . 5 )( 0 . 5 ) 1 . 5 ( 0 . 5 )( 0 . 5 ) ( 0 . 5 )
( 5 .
1 − − + − − + −
= X X X X X
Y (3-2)
此例題的資料集屬於迴歸問題,在此函數中, X、
1X
8與 X 、
4X
10為二組交互 作用變數, X 為曲率作用變數,其餘
5X
2、 X 、
3X
6、 X
7、 X
9為無關變數。
首先利用部分因子實驗法做 10 因子 32 回合的實驗,並以懲罰係數、核心係
數等兩個參數為噪音因子,經建構 32 × 9 = 288 個模型,建構完畢後將模型的誤
差均方根填入表中。計算每列誤差均方根的平均值Y 後,利用Y 計算各實驗因子 的效果,得到圖 3-2 之結果。由圖可知,實驗因子 A, D, E, H, K 的效果為負,即 代表它們對應的自變數為 X
1、 X
4、 X 、
5X 、
8X 如果出現在模型的輸入變數
10中時,誤差均方根分別可以降低 0.006~0.009,所以是重要的自變數,其餘實驗 因子 B, C, F, G, J 的效果都接近 0,即代表它們對應的自變數為如果出現在模型的 輸入變數中時,誤差均方根無法降低,所以是不重要的自變數。此結果與本數值 例題的函數設定完全一致,可見本法能找出重要的自變數。
-0.01 -0.008 -0.006 -0.004 -0.002 0 0.002
A B C D E F G H J K
實驗因子
因子效果
圖 3- 2 數值例題二的實驗因子效果直條圖
接下來使用上述找到的重要自變數 X
1、 X
4、 X 、
5X 、
8X 為輸入變數並
10利用網格法來尋找最佳參數設定。結果得到懲罰係數=10000、核心係數=0.01 時,
可得到最佳誤差均方根 0.0429。
為了證明只用自變數 X
1、 X
4、 X 、
5X 、
8X 為輸入變數,可得到最精簡、
10準確的模型,在此以全部十個自變數為輸入變數,並利用上述網格法來尋找最佳 參數設定。結果得到懲罰係數=10000、核心係數=0.01 時,可得到最佳差均方根 0.0528。
3.4 例題三:線性與二次分類函數 假設有如下函數
] ) 5 . 0 (
8 ) 5 . 0 ( 4 ) 5 . 0 ( 2
) 5 . 0 ( 1 ) 5 . 0 ( 0 [ 4 8 4 2 1 0
2 10
2 9
2 8
2 7
2 6
5 4 3 2 1
− +
−
−
− +
−
−
− +
− +
− +
=
X X
X
X X
X X X X X
Y (3-3)
如果 Y > 0 則為第一類;否則為第二類。
此例題的資料集屬於分類問題,在此函數中,可明顯看出 X
1~ X 和輸出變
5數的關係為線性且變數重要性逐漸上升, X ~
6X 和輸出變數的關係為二次且變
10數重要性逐漸上升。
首先利用部分因子實驗法做 10 因子 32 回合的實驗,並以懲罰係數、核心係 數等兩個參數為噪音因子,經建構 32 × 9 = 288 個模型,建構完畢後將模型的準 確度填入表中。計算每列準確度的平均值Y 後,利用Y 計算各實驗因子的效果,
得到圖 3-3 之結果。由圖可知,實驗因子 D, E, H, J, K 的效果為正,即代表它們 對應的自變數為 X
4、 X 、
5X 、
8X
9、 X 如果出現在模型的輸入變數中時,準
10確度分別可以提升 1.6%~14.2%,所以是重要的自變數,其餘實驗因子 A, B, C, F, G 的效果都接近 0,即代表它們對應的自變數為如果出現在模型的輸入變數中 時,準確度無法提升,所以是不重要的自變數。此結果與本數值例題的函數設定 一致,可見本法能找出重要的自變數。
-0.04 -0.02 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16
A B C D E F G H J K
實驗因子
因子效果
圖 3- 3 數值例題三的實驗因子效果直條圖
接下來使用上述找到的重要自變數 X
4、 X 、
5X 、
8X
9、 X 為輸入變數並
10利用網格法:
懲罰係數=0.01, 0.1, 1, 10, 100, 1000, 10000, 100000
核心係數=0.0001, 0.001, 0.01, 0.1, 1,10, 100, 1000
共 8 × 8 = 64 種參數組合來尋找最佳參數設定。結果得到懲罰係數=10、核心係數
=1 時,可得到最佳正判率 95%。
為了證明只用自變數 X
4、 X 、
5X 、
8X
9、 X 為輸入變數,可得到最精簡、
10準確的模型,在此以全部十個自變數為輸入變數,並利用上述網格法來尋找最佳 參數設定。結果得到懲罰係數=10000、核心係數=0.1 時,可得到最佳正判率 95%。
3.5 例題四:線性與二次迴歸函數 假設有如下函數
] ) 5 . 0 (
8 ) 5 . 0 ( 4 ) 5 . 0 ( 2
) 5 . 0 ( 1 ) 5 . 0 ( 0 [ 4 8 4 2 1 0
2 10
2 9
2 8
2 7
2 6
5 4 3 2 1
− +
−
−
− +
−
−
− +
− +
− +
=
X X
X
X X
X X X X X
Y (3-4)
此例題的資料集屬於迴歸問題,在此函數中,可明顯看出 X
1~ X 和輸出變
5數的關係為線性且變數重要性逐漸上升, X ~
6X 和輸出變數的關係為二次且變
10數重要性逐漸上升。
首先利用部分因子實驗法做 10 因子 32 回合的實驗,並以懲罰係數、核心係
數等兩個參數為噪音因子,經建構 32 × 9 = 288 個模型,建構完畢後將模型的誤
差均方根填入表中。計算每列誤差均方根的平均值Y 後,利用Y 計算各實驗因子
的效果,得到圖 3-4 之結果。由圖可知,實驗因子 D, E, H, J, K 的效果為負,即
代表它們對應的自變數為 X
4、 X 、
5X 、
8X
9、 X 如果出現在模型的輸入變數
10中時,誤差均方根分別可以降低 0.28~6.34,所以是重要的自變數,其餘實驗因
子 A, B, C, F, G 的效果都接近 0,即代表它們對應的自變數為如果出現在模型的
輸入變數中時,誤差均方根無法降低,所以是不重要的自變數。此結果與本數值
例題的函數設定一致,可見本法能找出重要的自變數。
-7 -6 -5 -4 -3 -2 -1 0 1
A B C D E F G H J K
實驗因子
因子效果
圖 3- 4 數值例題四的實驗因子效果直條圖
接下來使用上述找到的重要自變數 X
4、 X 、
5X 、
8X
9、 X 為輸入變數並
10利用網格法來尋找最佳參數設定。結果得到懲罰係數=10000、核心係數=0.1 時,
可得到最佳誤差均方根 0.7323。
為了證明只用自變數 X
4、 X 、
5X 、
8X
9、 X 為輸入變數,可得到最精簡、
10準確的模型,在此以全部十個自變數為輸入變數,並利用上述網格法來尋找最佳 參數設定。結果得到懲罰係數=100000、核心係數=0.01 時,可得到最佳差均方根 0.0691。
3.6 結語
上述四個例題都是人為設計的題目,故重要自變數是已知的。而本文方法找 出的重要變數與已知者幾乎完全相同,顯示本方法確實可以找到重要的自變數,
建構精簡但準確的模型。
將使用重要變數與使用全部變數下的誤差之比較整理如表 3-1。可以發現除 了第四題以外,前者都比後者誤差小,可見本方法確實可以找到重要的自變數,
建構精簡但準確的模型。
表 3- 1 使用重要變數與使用全部變數下的誤差之比較 使用重要變數 使用全部變數 方法
例題 變數數目 誤差 變數數目 誤差
例題一(分類) 誤判率 5 3% 10 7%
例題二(迴歸) 誤差均方根 5 0.0429 10 0.0528
例題三(分類) 誤判率 5 5% 10 5%
例題四(迴歸) 誤差均方根 5 0.7323 10 0.0691
在文檔中
中 華 大 學
(頁 33-40)