本研究應用 RapidMiner 軟體 9.0 版本作為資料分析工具,採用的演算法分別 為隨機森林、規則歸納及深度學習,各運算流程(Process)說明分述如下:
一、個別公司之運算流程:
(一)整體運算流程如圖 4-1 及圖 4-2。
圖 4-1 運算主流程(個別公司)
圖 4-2 運算子流程(個別公司) 1
2 3 4
5
1-1 1-2 1-3 1-4 1-5 1-6 1-7
1-8 1-9 1-10 1-11
1-12 1-13 1-14
(二)運算元流程說明如表 4-1。
1-2 Set Role 將變數名稱(attributes name)設定為五行生剋,目標 角色(target role)設定為 id。
1-3 Select Attributes
選擇之變數為 14 項財務指標及股價,並勾選包括 特殊變數(include special attributes)。
1-4 Loop Attributes
迭 代 運 算 各 變 數 , 在 子 流 程 內 分 別 套 入 Differentiate、Select Attributes(2)及 Transpose,變數 迴圈(Loop Attributes)子流程,如圖 4-4。
1-4-1 Differentiate
將 change mode 設定為差分(difference),lag 設定為 4。
1-4-2 Select Attributes(2)
將 attribute filter type 設定為沒有遺漏值(no_missing _values),並勾選反向選擇(invert selection)。
1-4-3 Transpose 將樣本集的行與列互換。
1-5 Append 將多個樣本集附加成一個樣本集。
1-6 Transpose(2) 將樣本集的行與列互換。
1-7 Generate ID 在樣本集中增加具有 id 角色的新變數。
1-8 Select Attributes(3)
選擇之變數為公司及五行生剋,並勾選包括特殊變 數(include special attributes)。
1-9 Set Role(2)
將 attributes name 設定為五行生剋,target role 設定 為 regular,另外將 attributes name 設定為公司,而 target role 設定為 id2。
1-10 Generate ID(2) 在樣本集中增加具有 id 角色的新變數。
1-11 Join 將 join type 設定為 inner,key attributes 設定為 id,
使得兩個樣本集合併在一起。
1-12 Filter Examples
將 condition class 設定為沒有遺漏屬性(no_missing_
attributes)。
1-13 Numerical to Binominal
將數字類型變數轉換為二項式,如 true 及 false。
1-14 Map
點選 value mappings,將 true 設定為 up,false 設定 為 down。
2 Map(2)
將 attribute filter type 設定為 single,attribute 設定為 五行生剋,並點選 value mappings,將+設定為 up,
-設定為 down。
3 Set Role(3)
將 attributes name 設定為股價,target role 設定為目 標(label),主要目的是以每年各四季的股價漲跌作 為目標變數。
4 Select Attributes(4)
將 attribute filter type 設定為 single,attribute 設定為 五行生剋,此設定為探討五行生剋模型變數對股價 漲跌之影響。若勾選反向選擇(invert selection),此 設定為探討 14 項財務指標對股價漲跌之影響。如 刪除 Select Attributes(4)運算元,此設定為探討 14 項財務指標及五行生剋模型變數對股價漲跌之影 響。
5 Optimize Selection (Evolutionary)
從資料中篩選出最佳的變數,並在此運算元內加入 交叉認證。優化選擇(Optimize Selection)子流程,
如圖 4-5。
5-1 Cross Validation
將訓練資料分割成 10 等分資料,其中以 1/10 為測 試資料,其餘為訓練資料,每次更換測試資料重複 10 次後,將每次的準確率加以平均。其次在此演算 元內的訓練區(training)分別套入隨機森林、規則歸 納及深度學習,最後在測試區(testing)分別依序加 入 Apply Model 及 Performance。交叉驗證(Cross Validation)子流程,如圖 4-6。
5-1-1
Random Forest 此為隨機森林模型,參數設定採用預設值。
Rule Induction 此為規則歸納模型,參數設定採用預設值。
Deep Learning 此為深度學習模型,參數設定須勾選 reproducible (use 1 thread)使產生單一結果。
5-1-2 Apply Model 將訓練出來的模型應用到測試資料。此參數設定採 用預設值。
5-1-3 Performance 將預測結果進行準確率之評估。此參數設定採用預 設值。
資料來源:參考 RapidMiner Documentation
圖 4-3 匯入數據資料
圖 4-4 變數迴圈子流程(個別公司)
圖 4-5 優化選擇子流程(個別公司) 1-4-1 1-4-2 1-4-3
5-1
圖 4-6 交叉驗證子流程(個別公司)
二、合併所有公司之運算流程:
(一)整體運算流程如圖 4-7。
圖 4-7 運算主流程(合併所有公司) (二)運算元流程說明如表 4-2。
表 4-2 運算元流程說明(合併所有公司)
次序 名稱 內容設定
1 Loop Files
在目錄(directory)中選取臺灣 50 成分股的資料夾,
並執行 28 家公司的資料檔。另將此運算元內依序 加入 Read Excel 及 Subprocess。檔案迴圈(Loop Files)子流程,如圖 4-8。
1-1 Read Excel 讀取臺灣 50 成分股資料夾內 28 家公司 Excel 資料 檔。
5-1-1
5-1-1
5-1-1
5-1-2 5-1-3
1 2
3 4
5
1-2 Subprocess
將 1-2-1 至 1-2-15 運算元流程放入子流程內,以利 降低流程的複雜性。運算子流程(Subprocess),如 圖 4-9。
1-2-1 Set Role 將變數名稱(attributes name)設定為五行生剋,目標 角色(target role)設定為 id。
1-2-2 Select Attributes
選擇之變數為 14 項財務指標及股價,並勾選包括 特殊變數(include special attributes)。
1-2-3 Loop Attributes
迭 代 運 算 各 變 數 , 在 子 流 程 內 分 別 套 入 Differentiate、Select Attributes(2)及 Transpose,變 數迴圈子流程(Loop Attributes),如圖 4-10。
1-2-3-1 Differentiate
將 change mode 設定為差分(difference),lag 設定為 4。
1-2-3-2 Select Attributes(2)
將 attribute filter type 設定為沒有遺漏值(no_missing _values),並勾選反向選擇(invert selection)。
1-2-3-3 Transpose 將樣本集的行與列互換。
1-2-4 Append 將多個樣本集附加成一個樣本集。
1-2-5 Transpose(2) 將樣本集的行與列互換。
1-2-6 Generate ID 在樣本集中增加具有 id 角色的新變數。
1-2-7 Select Attributes(3)
選擇之變數為公司及五行生剋,並勾選包括特殊變 數(include special attributes)。
1-2-8 Set Role(2)
將 attributes name 設定為五行生剋,target role 設定 為 regular,另外將 attributes name 設定為公司,而 target role 設定為 id2。
1-2-9 Generate ID(2) 在樣本集中增加具有 id 角色的新變數。
1-2-10 Join
將 join type 設定為 inner,key attributes 設定為 id,
使得兩個樣本集合併在一起。
1-2-11 Filter Examples
將 condition class 設定為沒有遺漏屬性(no_missing_
attributes)。
1-2-12 Numerical to
Binominal 將數字類型變數轉換為二項式,如 true 及 false。
1-2-13 Map
點選 value mappings,將 true 設定為 up,false 設定 為 down。
1-2-14 Map(2)
將 attribute filter type 設定為 single,attribute 設定為 五行生剋,並點選 value mappings,將+設定為 up,
-設定為 down。
1-2-15 Set Role(3)
將 attributes name 設定為股價,target role 設定為目 標(label),主要目的是以每年各四季的股價漲跌作 為目標變數。
2 Append(2) 將多個樣本集附加成一個樣本集。
3 Nominal to Numerical
將 attribute filter type 設定為 single,attribute 設定為 公司,coding type 設定為 dummy coding,最後勾選 包括特殊變數(include special attributes)。
4 Select Attributes(4)
將 attribute filter type 設定為 single,attribute 設定為 五行生剋,此設定為探討五行生剋模型變數對股價 漲跌之影響。若勾選反向選擇(invert selection),此 設定為探討 14 項財務指標對股價漲跌之影響。如 刪除 Select Attributes(4)運算元,此設定為探討 14 項財務指標及五行生剋模型變數對股價漲跌之影 響。
5 Optimize Selection (Evolutionary)
從資料中篩選出最佳的變數,並在此運算元內加入 交叉認證,優化選擇(Optimize Selection)子流程,
如圖 4-11。
5-1 Cross Validation
將訓練資料分割成 10 等分資料,其中以 1/10 為測 試資料,其餘為訓練資料,每次更換測試資料重複 10 次後,將每次的準確率加以平均。其次在此演算 元內的訓練區(training)分別套入隨機森林、規則歸 納及深度學習,最後在測試區(testing)分別依序加 入 Apply Model 及 Performance,交叉驗證(Cross Validation)子流程,如圖 4-12。
5-1-1
Random Forest 此為隨機森林模型,參數設定採用預設值。
Rule Induction 此為規則歸納模型,參數設定採用預設值。
Deep Learning 此為深度學習模型,參數設定須勾選 reproducible (use 1 thread)使產生單一結果。
5-1-2 Apply Model 將訓練出來的模型應用到測試資料。此參數設定採 用預設值。
5-1-3 Performance
將預測結果進行準確率之評估。此參數設定採用預 設值。
資料來源:參考 RapidMiner Documentation
圖 4-8 檔案迴圈子流程(合併所有公司)
圖 4-9 運算子流程(合併所有公司)
圖 4-10 變數迴圈子流程(合併所有公司) 1-1 1-2
1-2-1 1-2-2 1-2-3 1-2-4 1-2-5 1-2-6
1-2-7 1-2-8 1-2-9 1-2-10
1-2-11 1-2-12 1-2-13 1-2-14 1-2-15
1-2-3-1 1-2-3-2 1-2-3-3
圖 4-11 優化選擇子流程(合併所有公司)
圖 4-12 交叉驗證子流程(合併所有公司) 5
5-1-1
5-1-1
5-1-1
5-1-2 5-1-3