Tushare test
时间:2022-07-25
本文章向大家介绍Tushare test,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
查看版本
import tushare
print(tushare.__version__)
1.2.12
初步的调用方法为:
import tushare as ts
ts.get_hist_data('600848') #一次性获取全部日k线数据
- 第一列是日期,后边的是各类价格,包括开盘价、最高价、收盘价等等,具体在Tushare里边都有详细介绍
调用Tushare抓取上证指数并作可视化
import tushare as ts
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df = ts.get_hist_data('000001',start='2017-01-01',end='2018-10-10')
df.head(10)
- 可以看到转去了上证指数的各类价格数据以及最后turnover的换手率。但是有一个问题就是数据的date的降序的,即日起从2018年3月往2017年1月排列的,需要排序。
sz=df.sort_index(axis=0, ascending=True) #对index进行升序排列
sz_return=sz[['p_change']] #选取涨跌幅数据
train=sz_return[0:255] #划分训练集
test=sz_return[255:] #测试集
#对训练集与测试集分别做趋势图
plt.figure(figsize=(10,5))
train['p_change'].plot()
plt.legend(loc='best')
plt.show()
plt.figure(figsize=(10,5))
test['p_change'].plot(c='r')
plt.legend(loc='best')
plt.show()
- 蓝色为训练集序列波动图,红色为测试集序列波动图。
直接用训练集平均值作为测试集的预测值
#Simple Average
from math import sqrt
from sklearn.metrics import mean_squared_error
y_hat_avg = test.copy() #copy test列表
y_hat_avg['avg_forecast'] = train['p_change'].mean() #求平均值
plt.figure(figsize=(12,8))
plt.plot(train['p_change'], label='Train')
plt.plot(test['p_change'], label='Test')
plt.plot(y_hat_avg['avg_forecast'], label='Average Forecast')
plt.legend(loc='best')
plt.show()
rms = sqrt(mean_squared_error(test.p_change, y_hat_avg.avg_forecast))
print(rms)
2.1722839490457657
直接用移动平均法最后一个值作为测试集的预测值
#Moving Average
from math import sqrt
from sklearn.metrics import mean_squared_error
y_hat_avg = test.copy()
y_hat_avg['moving_avg_forecast'] = train['p_change'].rolling(30).mean().iloc[-1]
#30期的移动平均,最后一个数作为test的预测值
plt.figure(figsize=(12,8))
plt.plot(train['p_change'], label='Train')
plt.plot(test['p_change'], label='Test')
plt.plot(y_hat_avg['moving_avg_forecast'], label='Moving Average Forecast')
plt.legend(loc='best')
plt.show()
rms = sqrt(mean_squared_error(test.p_change, y_hat_avg.moving_avg_forecast))
print(rms)
2.1545970719308243
- 得到RMSE为2.1545970719308243
可以看到,最后移动平均法的均方误差最低,预测效果最好。
- android中一些特殊字符(如:←↑→↓等箭头符号)的Unicode码值
- 基于SpringBoot的任务管理平台v1.0正式发布
- 大数据系统的Lambda架构
- AKKA中的事件流
- Java初涉感悟
- Android 6.0 Permission权限与安全机制
- SpringBoot工作机制
- Android权限管理PermissionsDispatcher2.3.2使用+原生6.0权限使用
- SpringBoot中的IoC
- Sonar安装配置
- 《AngularJS深度剖析与最佳实践》推荐序
- JavaScript递归方法 生成 json tree 树形结构数据
- springboot使用hibernate validator校验
- 机器学习(三) ——k-近邻算法基础
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 设计模式之观察者模式
- 设计模式之适配器模式
- APP自动化测试系列之Appium环境安装
- 设计模式之外观模式
- APP自动化测试系列之adb连接真机和模拟器
- 第四个页面:制作电影资讯页面
- SpringMVC中用于绑定请求数据的注解以及配置视图解析器
- @RequestMapping与@RequestParam注解
- SpringMVC简介与工程配置
- KVM管理虚拟机
- fpga实现YCbCr444转RGB
- UML类图自动生成,太爽了
- Python爬虫之mongodb介绍和安装
- 一句话说清楚 CountDownLatch 和 CyclicBarrier 的区别
- Android 功耗(8)---如何找到阻止进入deep idle SODI的元凶