1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python线性回归预测股票走势

python线性回归预测股票走势

时间:2024-07-02 18:51:44

相关推荐

python线性回归预测股票走势

提前说明:虽然最后预测股价和真实价之间有差距,但涨跌的趋势大致相同。而且在预测时没有考虑到涨跌停的因素,所以预测结果的涨跌幅度比真实数据要大。

本人上传只作学习练习笔记作用,并不打算用在实操的

直接上代码:

import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport datetimeimport math#线性回归from sklearn.linear_model import LinearRegressionfrom sklearn import preprocessingfrom sklearn.model_selection import train_test_split#使用如下方式下载某个公司的股票交易历史数据#比如 000001 平安银行#使用pip install tushare 安装tushare python包import tushare as tsdata =ts.get_hist_data('600519')data.to_csv('./600519.csv')#导入数据,输出前几行看一下情况data=pd.read_csv('./600519.csv')df = data[['open','high','low','volume','close']]# 划分特征值和目标值featureDatas = df[['open','high','low','volume']]feature = featureDatas.valuestarget = np.array(df['close'])# 划分训练集和测试集feature_train, feature_test, target_train, target_test = train_test_split(feature,target,test_size = 0.05)lrtoot = LinearRegression() # 创建线性回归对象lrtoot.fit(feature_train,target_train) # 训练# 用测试集预测结果predictByTest = lrtoot.predict(feature_test)predictDays = int(math.ceil(0.05 * len(df))) # 预测的天数# 在前95%的交易日中,设置预测结果和收盘价一致index = 0while index < len(data) - predictDays:df.loc[index,'predictValue'] = data.loc[index,'close'] # 把训练集部分的预测股价设置成收盘价df.loc[index,'date'] = data.loc[index,'date'] # 训练集部分的日期index = index + 1# 在后5%的交易日中,用测试集推算预测股价predictedCnt = 0while predictedCnt < predictDays:df.loc[index,'predictValue'] = predictByTest[predictedCnt] # 把df中表示测试结果的predictedVal列设置成相应的预测结果df.loc[index,'date'] = data.loc[index,'date']# 逐行设置了每条记录中的日期predictedCnt =predictedCnt + 1index =index + 1

将其可视化:

plt.figure(figsize=(30,10))df['predictValue'].plot(color='red',label='predict data',fontsize=30)df['close'].plot(color='blue',label='real data',fontsize=30)plt.legend(loc = 'best',fontsize=40) # 绘制图例# 设置x坐标的标签major_index = df.index[df.index%30==0]major_xtics = df['date'][df.index%30==0]plt.xticks(major_index,major_xtics)plt.setp(plt.gca().get_xticklabels(), rotation=30)# 带网格线,且设置了网格样式plt.grid(linestyle='-.')plt.show()

运行结果:

参考于原作者hsm_computer:/JavaArchitect/p/11717998.html

若想详细了解更多关于python股票案例,可关注一下这位博主↑

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。