使用 Python 對股票參數(shù)進(jìn)行特征重要性分析
1. 前言
特征重要性分析,顧名思義就是要看看這一批參數(shù)里面,各個參數(shù)對模型預(yù)測結(jié)果的貢獻(xiàn)度分別是多少,對于每一個預(yù)測結(jié)果來說,哪些參數(shù)的貢獻(xiàn)度是最大的,哪些參數(shù)是無關(guān)緊要的。在本文中,我們以預(yù)測股票漲跌為例,簡要介紹使用 Python 來對股票預(yù)測模型的參數(shù)進(jìn)行特征重要性分析的方法,希望對大家能有所幫助。
2. 導(dǎo)入依賴包
這里我使用的 Python 版本是:3.9.5 (tags/v3.9.5:0a7dcbd, May ?3 2021, 17:27:52)
3. 準(zhǔn)備好模型訓(xùn)練所需的數(shù)據(jù)
要對預(yù)測模型的參數(shù)進(jìn)行重要性分析,首先我們得有關(guān)于這些參數(shù)的數(shù)據(jù)(如:'MACD', 'MACD_DIF', 'MACD_DEA', 'DMA_DIF', 'PLRC12', 'PLRC6', 'Price1M', 'Price3M', 'EMA5', 'EMAC10'等等)。這些參數(shù)我已經(jīng)事先準(zhǔn)備好了,這里我們只需從文件中讀取即可。

使用下面的代碼將數(shù)據(jù)從文件中讀取出來:
從代碼運(yùn)行的輸出結(jié)果中可以看到,我們這一批數(shù)據(jù)總共有 19 個參數(shù)以及 6884 個樣本:

4. 劃分訓(xùn)練集和測試集
使用如下代碼將整個數(shù)據(jù)劃分為兩個部分:測試集和訓(xùn)練集。訓(xùn)練集用于模型訓(xùn)練,測試集用于模型驗(yàn)證和測試。
從代碼的運(yùn)行輸出結(jié)果可以看到,這里我們劃分的訓(xùn)練集樣本數(shù)量為?5507 個,測試集的樣本數(shù)量為 1377 個。

5.?用隨機(jī)森林回歸算法對模型進(jìn)行訓(xùn)練
模型訓(xùn)練好了之后,我們可以使用如下代碼使用模型對測試集中的數(shù)據(jù)進(jìn)行預(yù)測:
6.?調(diào)用模型解釋包 shap 對參數(shù)進(jìn)行特征重要性分析
運(yùn)行上面的代碼,我們就可以看到各個參數(shù)對模型預(yù)測結(jié)果的貢獻(xiàn)度了,紅色代表正向貢獻(xiàn),藍(lán)色代表負(fù)向貢獻(xiàn),參數(shù)的貢獻(xiàn)度從上往下是由大到小,具體情況如下圖所示:

7. 對單個預(yù)測結(jié)果的特征貢獻(xiàn)度進(jìn)行可視化顯示
這里我們選擇測試集中的第 1 個樣本和第 5 個樣本進(jìn)行演示:

8.?對模型所有的預(yù)測結(jié)果進(jìn)行可視化

9. 結(jié)語
以上就是使用 Python 對股票漲跌預(yù)測模型的參數(shù)進(jìn)行重要性分析的方法了,如果感覺還不錯的話,可以幫忙給個贊哦,感謝各位支持。