項目背景
在證券市場中,存在著大量歷史交易數據。近年來隨著大數據興起,數據挖掘技術在股市中也得到了廣泛的關注,在閱讀文獻的基礎上我們小組對股市中不同情況如行業板塊聯動、行業指數漲跌預測、個股價格漲跌預測分別採用不同的機器學習算法進行分析。
關聯規則與行業聯動
一、算法介紹
關聯規則可以通過特定的規則算法對數據進行分析,在海量的數據中尋找一個事件與其他事件的關聯性和依賴性,挖掘出數據庫中不同的數據項集之間隱藏的有價值的關聯關係。
由於行業成長週期和貨幣財政政策調整給行業帶來的機遇不同,造成股市出現行業聯動現象。運用關聯規則在股市的行業板塊中找出這些頻繁出現的項集有助於我們瞭解我國股市行業聯動規律。
在此次建模過程中,我們主要採取支持度和置信度兩個指標對建模結果進行分析和優化。支持度表示規則發生的頻率,置信度表示二者的關聯性。
Apriori算法過程:首先找出所有交易數據庫中大於或者等於制定的最小支持度的頻繁項集,再利用頻繁項集生成所需要的關聯規則,從而根據所設定的最小值信度篩選出強關聯規則。
二、數據收集
首先我們利用同花順IFIND軟件下載AMAC行業指數歷史漲跌幅數據。
本組採用中基協基金估值行業分類指數(簡稱“AMAC行業指數”) 2018年1月2日-2018年8月29日每日漲跌幅。
三、數據清洗
由於板塊指數每日漲跌幅度相比個股漲跌幅度小,且集中於-2%至2%之間,將行業每日漲跌幅分為六個階段,在R語言中處理數據。
處理後的數據
四、數據建模
關聯規則核心代碼:
首先我們採用支持度0.2,置信度0.8的條件,找出2條規則。
返回查表後,可得規則如下:
1.當化學制品指數漲跌幅在-1%<=漲跌幅<0%的時候,建築指數漲跌幅很大可能在-1%<=漲跌幅<0%
2.當造紙指數指數漲跌幅在-1%<=漲跌幅<0%的時候,建築指數漲跌幅很大可能在-1%<=漲跌幅<0%
當我們放寬要求,在支持度0.15,置信度0.8條件下,得出27條規則的時候。我們看一看排名前10 的規則:
我們可以從中得出行業間存在著顯著的行業聯動現象,且具有雙向對稱性,並且從中提取出具有強關聯性板塊有:
五、結論
在股市行業聯動現象分析上關聯規則算法表現較好。
在行業上漲階段,投資者在選擇投資組合時可以同時投資紡織行業、橡膠行業等上漲關聯類行業以提高獲得超額收益的概率。
在行業下跌階段,投資者避免同時配置建築行業、專用設備、通用設備等下跌關聯類行業。
機器算法與漲跌預測
一、算法介紹
目前預測股票的建模模型可分為兩類,一類為傳統生成型類模型,包括自迴歸滑動平均模型和自迴歸異方差模型及它們的衍生擴展模型,但這類模型需要在樣本足夠大,且分佈較好的情況下,預測效果才會比較理想;另一類為數據驅動模型,包括機器學習中的神經網絡模型、支持向量機模型、K近鄰分類器模型、決策樹模型等,此類模型對樣本的分佈程度和樣本量的要求均較低,可以藉助對數據的分析進行非線性智能預測。
KNN 最近鄰分類器模型
處理分類問題的算法,尋找與測試樣例屬性相對最接近的k個訓練樣例,根據少數服從多數的原則將測試樣例判定為該類型。
貝葉斯模型
貝葉斯分類是一種基於貝葉斯定理的統計學分類方法,可以預測給定樣本屬於一個特定類的概率。
決策樹模型
有監督學習算法中處理迴歸問題與分類問題的模型。通過遞迴式切割的方法尋找最佳的分類標準,進而最終形成分類規則進行預測。
神經網絡模型
神經網絡的結構由一個輸入層、若干個中間隱含層和一個輸出層組成。神經網絡分析法通過不斷學習,能夠從未知模式的大量的複雜數據中發現其規律,是一種自然的非線性建模過程。
二、數據獲取
還是利用同花順IFIND軟件下載相關數據。
本組在進一步機器學習算法預測中選用上一部分板塊聯動中出現頻率較高的建築指數,並在建築指數的成分股中挑選了財務指標較好的兩隻個股海波重科、亞翔集成進行漲跌預測分析。
三、數據清洗
本組在閱讀文獻後,我們將大部分學者集中選取的七種行情指標作為特徵,選取下一日的漲跌情況為標籤(注:漲為1,跌為0)。
行情指標分別為:開盤價、最高價、最低價、收盤價、漲跌幅、成交金額、換手率。
R語言對數據進行量綱標準化、刪除空缺值等預處理。
原始數據
0-1標準化之後的數據
四、數據建模
- 隨機劃分訓練集與測試集。
- 通過決策樹模型、貝葉斯模型、KNN與神經網絡模型四種機器學習算法分別對數據集進行訓練。
- 通過交叉驗證,改變k值學習曲線的k值等方法進行調優。
- 進行擬合度討論,對比分析四種機器學法算法的準確率,最終結果如圖所示。
預測結果:
建築指數漲跌預測中KNN模型效果最好,訓練集準確率為0.63。
亞翔集成漲跌預測中神經網絡模型訓練集、測試集準確率均最高。
從決策樹模型的變量重要性結果中可以得知:亞翔集成的當日開盤價變量對下一日漲跌影響最大。
神經網絡模型訓練集準確率最高,但貝葉斯網絡測試集準確率最高。
值得關注的是海波重科的成交金額變量影響相比其他變量更大。
五、結論
在預測指數和個股漲跌方面機器學習算法預測股市漲跌整體效果一般。
測試集準確率整體在50%左右,其中神經網絡模型模擬訓練集時準確率均在90%以上,但測試集準確率在60%左右,過擬合現象嚴重,但神經網絡模型相比其他三種模型,總體準確率較高,模擬效果相對更好。
其次模型效果較好的為KNN最近鄰分類器模型與貝葉斯模型,決策樹模型效果最差。
在繼續構建機器學習算法預測股票漲跌模型中,首要關注算法仍是神經網絡模型。
模型改進
在分析行業聯動方面,我們只選擇了2018年的行業指數,數據量可以繼續擴大,找出更多的關聯規則。且只分析了每日的行業指數,可以進一步找出周行情、月行情的關聯規則,分析行業關於日周月的輪動規則。
在分析股票漲跌方面,選用了開盤價等七種行情指標作為特徵,可以擴大至技術指標如布林線、KDJ指標、PSY心理指標等,增加特徵,提高準確率。
神經網絡模型在股票漲跌預測效果雖然是4種算法中最好的,但是過擬合現象嚴重,仍需優化及尋找其他解決方法。
作者:Yura,計算機科學與技術專業大四在讀,因在澳洲交換學習接觸了大數據,甚感興趣。遂開公眾號“Yura不說數據說”督促自己學習數據分析!歡迎大家關注我的個人公眾號,一起(監督我)學習。閱讀更多 永定河邊蓑笠翁 的文章