第四章 實驗結果與分析
4.2. 預測模型建立分析
國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
長在完全填權息上,稅額抵扣比率仍是重要影響因素之一。另外總資產週轉率,
則是以往談論股利時,很少被討論到的指標,尤其是這個財務指標,金融族群股 並沒有,但在非金融股的兩種演算法特徵選取中都有出現,更顯得此指標重要性。
過往研究中與股利相關指標:「可抵扣稅額比率」、「股票殖利率」、「股票市場價 格」、「股利支付率」,於本實驗中皆被挑選出來,代表影響短期股利表現的指標,
在完全填權息的目標上,仍是重要因素。
4.2.預測模型建立分析
本研究希望以特徵選取出的關鍵影響因素,建立完全填權息之股價預測模型,藉 此降低存股型投資人選擇投資標的無法完全填權息的機率。在建立模型時,需先 設定其相關參數,而參數將影響到結果的好壞,在不同的參數組合之下,若沒有 調整好參數數值將導致分類結果不佳。
Weka J48 決策樹演算法中主要參數為置信因子(Confidencefactor)、最少案例 數(MinNumObj)兩項參數。置信因子增加,可減少對樹的修剪; 最少案例數表示 節點到達一定數量的實例後,即不再繼續分割下去,成為樹葉節點。學者 Quinlan 探討決策樹不同參數下分類情況,發現不同參數會影響其結果,倘若未善加調整 參數將可能造成過度學習或學習不足的問題發生,因此在使用決策樹時須注意此 二項參數之數定。
Weka Libsvm 演算法中主要參數為 gamma (-g)跟 cost (-c)兩項參數。這兩個參 數設定對訓練的結果影響重大。但並沒有一個公式可以來決定 gamma 及 cost 的 設定值,每個不同的案例有不同適用的 gamma 及 cost,我們只能一個個去試。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
本文使用林智仁教授所開發的工具 libsvm-grid.py6來協助測試所有的參數值,
將過程自動化,找出最佳參數組合。
4.2.1.台灣 50 與中型 100 成分股之非金融股 4.2.1.1.決策樹(Decision Tree)
以台灣 50 與中型 100 成份股中非金融股共 129 家企業,使用 21 項變數在資料前 處理後進行特徵選取。搭配 J48 決策樹演算法選出的影響變數共 8 項,包含預計 稅額扣抵比率、前一日收盤價、股利支付率、股價淨值比、普通股股本、存貨週 轉率(次)、總資產週轉率、每股盈餘(元),再將所獲得特徵變數使用 J48 決策樹 訓練預測模型,進行 5-fold 的交叉驗證,下表為 J48 決策樹訓練模型調整置信 因子與最少案例數參數的總結果。從表 4.6 結果中得知,J48 在置信因子從 0.1~0.7 與最小案例數 2~5 的參數組合下,準確率差異不大,最多只有 5%的差異,
但若以 F-measure 指標來比較,最多則有 13%以上的差異。最高準確率出現在 最少案例數=2,置信因子=0.25、0.3、0.35 的時候;最高 F-measure 值則出現在 最小案例數=5,置信因子=0.55、0.6、0.65、0.7 的時候。另外可以發現 Weka J48 的預設參數(M=2,CF=0.25)不僅準確率最高,F-measure 指標也有很高的表現,
若以 Weka J48 預設參數,且不做特徵挑選全部共 21 項特徵變數的情境下直接訓 練,訓練模型得到了 61.29%的準確率與 0.582 的平均 F-measure 值,這再次證 明了特徵挑選的確可幫助我們達到更高的準確率,更佳的預測模型。
6 C.-C. Chang and C.-J. Lin. LIBSVM: a library for support vector machines, 2001.
Software available at http://www.csie.ntu.edu.tw/~cjlin/libsvm
‧
CF=0.1 Accuracy 63.4409 63.4409 63.4409 63.4409F-measure 0.497 0.497 0.497 0.497 CF=0.15 Accuracy 64.2473 63.4409 63.7097 63.7097
F-measure 0.550 0.531 0.532 0.532 CF=0.2 Accuracy 65.0538 64.2473 64.7849 64.7849
F-measure 0.571 0.553 0.557 0.557 CF=0.25 Accuracy
67.4731
64.7849 65.3226 65.3226F-measure 0.615 0.563 0.567 0.567 CF=0.3 Accuracy
67.4731
66.6667 67.2043 67.2043F-measure 0.615 0.596 0.600 0.600 CF=0.35 Accuracy
67.4731
66.6667 67.2043 67.2043F-measure 0.615 0.596 0.600 0.600 CF=0.4 Accuracy 66.6667 65.8602 67.2043 67.2043
F-measure 0.611 0.593 0.600 0.600 CF=0.45 Accuracy 66.6667 65.3226 67.4731 67.2043
F-measure 0.616 0.592 0.605 0.600 CF=0.5 Accuracy 66.6667 65.3226 66.6667 66.3978
F-measure 0.624 0.599 0.609 0.605 CF=0.55 Accuracy
62.6344 62.6344
65.5914 66.3978F-measure 0.612 0.607 0.629 0.634 CF=0.6 Accuracy
62.6344 62.6344
65.5914 66.3978F-measure 0.612 0.607 0.629 0.634 CF=0.65 Accuracy
62.6344 62.6344
65.5914 66.3978F-measure 0.612 0.607 0.629 0.634 CF=0.7 Accuracy
62.6344 62.6344
65.5914 66.3978F-measure 0.612 0.607 0.629 0.634
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
4.2.1.2.支持向量機(Support Vector Machine, SVM)
以台灣 50 與中型 100 成份股中非金融股共 129 家企業,使用 21 項變數在資料前 處理後,進行特徵選取。搭配 Libsvm 支持向量機演算法選出的影響變數共 3 項,
包含現金流量比率、股票殖利率、總資產週轉率,再將所獲得特徵變數使用 Libsvm 支持向量機訓練預測模型,在這邊本文使用了林智仁教授所開發的工具 自動化地測試模型的參數,首先必須先以 java 程式(圖 4.7)將資料格式化為:
[label] [index1]:[value1],label 意即 Class,本實驗為 0 or 1,index 是屬
性的索引,本實驗 3 項變數,故索引為 1~3,value 則是屬性值。圖 4.7:格式化為 Libsvm 資料格式程式碼,資料來源:本研究整理
再來使用程式 svm-scale.exe 將資料尺度化處理,調整屬性值的大小範圍,以免 有某項屬性值太大,算距離時主導了結果。最後使用程式 libsvm-grid.py 自動 化測試參數組合,下表為 Libsvm 支持向量機訓練模型調整 gamma (-g)跟 cost (-c)
‧
rate=67.7419。接下來以若以 Weka Libsvm 預設參數,且不做特徵挑選全部共 21 項特徵變數的情境下直接訓練,訓練模型得到了 63.98 %的準確率與 0.499‧
‧
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
92 log2c=-1 log2g=-3 rate=63.9785 93 log2c=11 log2g=-3 rate=65.3226 94 log2c=-3 log2g=-3 rate=63.9785 95 log2c=9 log2g=-3 rate=64.2473 96 log2c=3 log2g=-3 rate=64.7849 97 log2c=15 log2g=-3 rate=65.3226 98 log2c=-5 log2g=-3 rate=63.9785 99 log2c=7 log2g=-3 rate=63.9785 100 log2c=1 log2g=-3 rate=64.2473 101 log2c=13 log2g=-7 rate=63.9785 102 log2c=13 log2g=-1 rate=66.129 103 log2c=13 log2g=-13 rate=64.5161 104 log2c=13 log2g=1 rate=65.8602 105 log2c=13 log2g=-11 rate=64.5161 106 log2c=13 log2g=-5 rate=63.9785 107 log2c=13 log2g=-15 rate=63.9785 108 log2c=13 log2g=3 rate=62.6344 109 log2c=13 log2g=-9 rate=64.2473 110 log2c=13 log2g=-3 rate=65.5914
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
4.2.2.台灣 50 與中型 100 成分股之金融股 4.2.2.1.決策樹(Decision Tree)
由於因為金融產業的特殊性,在財報的表示上,是一個負債比極高的產業,而且 沒有生產產品,也就沒有存貨,在財務指標上,很多欄位呈現缺值,所以台灣 50 與中型 100 成份股中金融股共 21 家企業樣本,不同於非金融成分股 21 項變 數,而只使用 12 項變數(可抵扣稅額比率、股票殖利率、股票市場價格、股利支 付率、股價淨值比、普通股股本、每股盈餘、ROE、ROA、稅後純益率、負債股東 權益比率、負債比率)。進行特徵選取,搭配 J48 決策樹演算法選出的影響變數 共 2 項,分別是股票殖利率、預計稅額扣抵比率。再將所獲得特徵變數使用 J48 決策樹訓練預測模型,進行 5 次的 K 折交叉驗證,下表為 J48 決策樹訓練模型 調整置信因子與最少案例數參數的總結果。由表 4.8 得知,置信因子對此次實驗 的數據沒有影響,從 0.1~0.7 皆得到一樣的結果,最少案例數為 3 或 4 時,有最 高的準確率與 F-measure 值。若以 Weka J48 的預設參數(M=2,CF=2.5),且不做 特徵挑選全部共 12 項特徵變數的情境下直接訓練,訓練模型得到了 64.29%的準 確率與 0.641 的平均 F-measure 值,兩項數值表現皆低於特徵挑選後的結果。
‧
CF=0.1 Accuracy 74.285775.7143 75.7143
68.5714F-measure 0.742 0.757 0.757 0.682 CF=0.15 Accuracy 74.2857
75.7143 75.7143
68.5714F-measure 0.742 0.757 0.757 0.682 CF=0.2 Accuracy 74.2857
75.7143 75.7143
68.5714F-measure 0.742 0.757 0.757 0.682 CF=0.25 Accuracy 74.2857
75.7143 75.7143
68.5714F-measure 0.742 0.757 0.757 0.682 CF=0.3 Accuracy 74.2857
75.7143 75.7143
68.5714F-measure 0.742 0.757 0.757 0.682 CF=0.35 Accuracy 74.2857
75.7143 75.7143
68.5714F-measure 0.742 0.757 0.757 0.682 CF=0.4 Accuracy 74.2857
75.7143 75.7143
68.5714F-measure 0.742 0.757 0.757 0.682 CF=0.45 Accuracy 74.2857
75.7143 75.7143
68.5714F-measure 0.742 0.757 0.757 0.682 CF=0.5 Accuracy 74.2857
75.7143 75.7143
68.5714F-measure 0.742 0.757 0.757 0.682 CF=0.55 Accuracy 74.2857
75.7143 75.7143
68.5714F-measure 0.742 0.757 0.757 0.682 CF=0.6 Accuracy 74.2857
75.7143 75.7143
68.5714F-measure 0.742 0.757 0.757 0.682 CF=0.65 Accuracy 74.2857
75.7143 75.7143
68.5714F-measure 0.742 0.757 0.757 0.682 CF=0.7 Accuracy 74.2857
75.7143 75.7143
68.5714F-measure 0.742 0.757 0.757 0.682
‧
4.2.2.2.支持向量機(Support Vector Machine, SVM)
以台灣 50 與中型 100 成份股中金融股共 21 家企業,使用 12 項變數,資料前處 理後進行特徵選取。搭配 Libsvm 支持向量機演算法選出的影響變數共 2 項,分 別是股票殖利率、負債比率。同樣地使用程式 libsvm-grid.py 自動化測試參數 組合,下表為 Libsvm 支持向量機訓練模型調整 gamma (-g)跟 cost (-c)參數組 合的總結果。從表 4.9 得知有最高準確率 rate=71.4286%出現的參數組合不止一 組,分別是 cost =32 ,gamma =0.0078125、cost =2048 ,gamma =0.000122、cost
=512 ,gamma =0.000488、cost =8 ,gamma =0.03125、cost =128 ,gamma =0.00195、
cost =2 ,gamma =0.5、cost =0.5 ,gamma =0.125、cost =2 ,gamma =0.125、
cost =8192 ,gamma =0.0000305。若以 Weka Libsvm 預設參數,且不做特徵挑選 全部共 12 項特徵變數的情境下直接訓練,訓練模型得到了 52.88 %的準確率與 0.366 的平均 F-measure 值,證明特徵挑選幫助我們達到更高的準確率,更佳的 預測模型。
‧
‧
‧
‧
決策樹以 Weka 人工調整參數,支持向量機以 libsvm-grid.py 程式調整參數,所 訓練出來的模型準確率從表 4.10 中可知,台灣 50 與中型 100「非金融股」成分 股使用 J48 決策樹與 Libsvm 支持向量機演算法,皆可以有 67%左右的準確率,
此兩種演算法的差距不大,且不同參數最高與最低準確率只有 5%左右差距。而 台灣 50 與中型 100「金融股」成分股使用 J48 決策樹與 Libsvm 支持向量機演算 法,所得出的結果顯示,決策樹最高有 75%左右的準確率,稍高於 Libsvm 的 71
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
%準確率。決策樹在金融股的實驗中,各種不同參數對模型的影響不大,Libsvm 則有顯著影響。
綜合實驗結果來看,特徵挑選都有幫助大幅度篩選出關鍵因子,非金融股從 21 項影響變數縮減為 8 項(決策樹)、3 項(支持向量機),金融股從 12 項變數縮減 為 2 項(決策樹、支持向量機皆是),但以金融股的樣本訓練出來的模型,比非金 融股訓練出來的模型準確率較高,更具參考性。探究其原因,推測由於各產業類 型間,股價特性、獲利組成等因素差異甚大,分析其財務報表,相同數字卻可能 有不同的意涵,市場給予的合理價值也因此不同,造成本實驗區分非金融股與金 融股時,單一族群的金融股模型表現比許多族群綜合的非金融股模型較佳。