-
在和坛友们经过友好讨论以后,我认为时间对于预测大盘来说确实是一个不可忽视的信息,粗暴地交叉验证获得的准确率,以及依靠这个准确率进行的调参,很容易过拟合。
-
以及,我之前发现一个问题,如果单纯地把30天后的涨跌算作大盘指数涨跌,很容易让模型拟合噪音,于是我设定了10%的阈值,高于这个阈值的时候才认为大盘在涨,低于这个阈值的时候才认为大盘在跌。当然,更好的办法是使用mean in 30 days来作为指数涨跌的依据。不过个人觉得设定阈值已经足够表现大盘了。
-
于是我熬夜改完了代码,发现这样一件事,决策树对于大盘的预测很稳健性很差。之前的帖子说决策树相对比较有效一定是过拟合了……嗯。
-
还有一点,决策树认为有一些因子重要性为0,也有可能是我们选取数据的时候,没选取到足够预测大盘涨跌的有效数据。
-
import numpy as np import pandas as pd from CAL.PyCAL import Date from CAL.PyCAL import Calendar from CAL.PyCAL import BizDayConvention from sklearn.tree import DecisionTreeClassifier import seaborn as sns import talib
又是处理数据……头疼
def max_arr(arr): 2 try: 3 se=talib.MAX(np.array(arr),30) 4 except: 5 se=np.array([np.nan]*len(arr)) 6 return se 7 def min_arr(arr): 8 try: 9 se=talib.MIN(np.array(arr),30) 10 except: 11 se=np.array([np.nan]*len(arr)) 12 return se 13 fields = ['tradeDate','closeIndex', 'highestIndex','lowestIndex', 'turnoverVol','CHG','CHGPct'] 14 stock = '000300' 15 #tradeDate是交易日、closeIndex是收盘指数、highe
使用决策树预测大盘指数
最新推荐文章于 2023-06-22 15:14:08 发布