红米型号mae136

该程序主要用于处理和分析股票数据,采用Lasso回归模型进行预测,并对预测结果进行评估和可视化展示。
在数据处理阶段,我们从名为“data/sh2018.csv”的文件中读取股票数据,按索引排序后,创建新的列“xprice”和“close_next”,并采用前向填充法处理缺失的数据值。这样可以确保数据的完整性和准确性,为后续的分析和预测提供可靠的数据基础。
接下来,我们根据时间范围将数据集划分为训练集和测试集。具体来说,我们以2010年10月10日至2017年12月31日的数据作为训练集,而将索引大于2018年的数据作为测试集。这样的划分有助于我们更好地评估模型在未知数据上的表现。
在模型训练和预测阶段,我们设置了Lasso回归模型。我们将训练集的特征数据转换为np.float32类型,然后进行模型的训练。训练完成后,使用训练好的模型对测试集数据进行预测。
导入系统模块路径,并添加自定义模块路径
python
import sys
sys.path.append("topqt/")
导入数据处理和分析的pandas库
python
import pandas as pd
导入数值计算的numpy库
python
import numpy as np
导入sklearn库的线性模型模块
python
from sklearn import linear_model
导入自定义模块
python
import zsys
import ztools as zt
import ztools_str as zstr
import ztools_web as zweb
import ztools_data as zdat
import ztools_draw as zdr
import ztools_ai as zai
import zpd_talib as zta
读取并处理数据
python
print('1,读取数据')
fss='data/sh2018.csv'
xdf=pd.read_csv(fss,index_col=0)
xdf=xdf.sort_index()
zt.prDF('xdf',xdf)
print('2,处理数据')
xdf['xprice']=xdf['close'].shift(-1)
xdf['close_next']=xdf['xprice']
xdf.fillna(method='pad',inplace=True)
zt.prDF('xdf',xdf)
划分训练集和测试集
python
print('3,划分数据')
tim0str,tim9str='2010-10-10','2017-12-31'
df_train=zdat.df_kcut8tim(xdf,'',tim0str,tim9str)
zt.prDF('3.1 df_train',df_train)
df_test=xdf[xdf.index>'2018']
zt.prDF('3.2 df_test',df_test)
准备AI数据
python
print('4,准备AI数据')
clst=['open','high','low','close']
x=df_train[clst].values
y=df_train['close_next'].values
x = x.astype(np.float32)
xtst=df_test[clst].values
设置并训练模型
python
print('5,模型设置')
mx = linear_model.Lasso()
print('6,训练模型')
mx.fit(x,y)
预测数据并绘制对比曲线图
python
print('7,预测数据')
df_test['close_pred']=mx.predict(xtst)
zt.prDF('df',df_test)
print('8,绘制对比曲线图')
df_test[['close_next','close_pred']].plot(linewidth=3)
验证模型预测效果
python
print('9,验证模型预测效果')
print('9.1,按5%精度验证模型')
dacc,df=zai.ai_acc_xed2x(df_test['close_next'],df_test['close_pred'],5,True)
print('acc',dacc)
print('9.2,按1%精度验证模型')
dacc,df,xlst=zai.ai_acc_xed2ext(df_test['close_next'],df_test['close_pred'],1,True)
print('acc',dacc)
print('ok!')
运行并打印相关信息
python
runfile('D:/zwPython/zwrk/5_机器学习与量化/kb1102_lasso_reg.py', wdir='D:/zwPython/zwrk/5_机器学习与量化')
Reloaded modules: zsys, ztools, ztools_str, ztools_web, ztools_data, ztools_tq, zpd_talib, ztools_draw, ztools_ai
1,读取数据
2,处理数据
3,划分数据
4,准备AI数据
5,模型设置
6,训练模型
7,预测数据
8,绘制对比曲线图
9,验证模型预测效果
