ADM-201 dump PMP dumps pdf SSCP exam materials CBAP exam sample questions

《边学Python边学数据科学》#4 预测股票价格 – 译学馆
未登录,请登录后再发表信息
最新评论 (0)
播放视频

《边学Python边学数据科学》#4 预测股票价格

Predicting Stock Prices - Learn Python for Data Science #4

大家好 我是西拉杰
在这一集中
我们将会用Python的工具包Scikit-Learn
建立一个股价预测图 代码只有40行
你想过快速致富吗?
先生 我的模型非常赚钱
我经常重新训练防止模型过拟合
一周几次?
一周三次?
这一行的新手才这样
真的?您再训练的频率是?
早上锻炼后一次 午饭后一次
哦……
股票市场允许你买卖公司的所有权单位
我们称之为股票
如果这家公司盈利增加
你会获得其中一部分
如果公司盈利减少
你也会一起亏钱
就这么简单
如果你在对的时间买了对的公司的股票
那你就能一夜暴富
我们能否在以往股价的数据基础上
做些什么来预测未来股价呢?
机器学习
这听起来像是一个数据科学问题
但是根据有效市场假说
股票市场是随机且不可预知的
但是大型金融公司 比如摩根大通和高盛
多年来一直雇佣大量交易员
根据过去市场的数据来建立预测模型
可以确定这些公司有能赚钱的交易模型
但他们不会和我们分享
冲我来吧华尔街
他们没有动机这么做
想想一个金融模型能包含的所有特征
对公司意见的情感分析
过去的股价 销售增额 分红
沃伦因比特币火爆而错过的所有利润
股价的变化并不完全是随机的
但非常接近随机
优秀的交易员会利用预测模型
来决定投资哪一支股票
我们今天会建立三个不同的预测模型
来预测苹果公司的股价
然后把结果放在同一张图里来对比结果
具体步骤为:安装依赖项
收集数据集
写脚本以及图像分析
这是我们的四个依赖项
我们一会要下载存储股价的CSV文件
需要使用csv来读取
数据运算需要使用numpy来进行
预测模型要使用scikit-learn来建立
把模型计算的数据画成图像进行分析
需要使用matplotlib
我们先来收集数据集
我们想要过去30天的股票价格
这在谷歌财经上很容易就能搜到
如你所见 如果没有错过AI的大潮
苹果的股价会高得多
第二步 写脚本
上面四行就是我们的四个依赖项
写代码时我们用给定名称指代它们
关于matplotlib 提醒大家
由于它是一个图形库
所以要依赖图形后端
图形后端有很多
如果由于某些原因在你的电脑上不能画图
可以用switch_backend功能
多试几种不同的后端
现在我们来正式编写脚本
首先初始化两个空的列表:日期和时间
然后写一个函数来获取数据
用它来将相关数据填到表中
我们把函数命名为get_data
将存有股价的CSV文件名作为其参数
我们用with-as代码块来打开文件
并将其赋值给变量csvfile
open语句从CSV文件中读取内容
因此它第二个参数为“r”
接着我们要在csv模块的帮助下
创建一个文件读取变量
csv模块使用reader函数来完成
函数参数则为csvfile
这样我们就能遍历CSV文件的每一行
使用next函数
可以将每行内容以字符串形式返回
我们首先调用next函数来跳过第一行
因为第一行只是列名
csv文件阅读器读取每行的日期和时间
现在我们要把它们分别存到两个列表中
append函数将数据添加到表尾
我们只想要月份中的具体日期
可以看到日期在每行中的第一列
在行数组中下标为0
用split函数移除日期中的破折号
再获取列表中的第一个值 也就是几号
使用int关键字将其转换为整数
向价格列表添加开盘价格的过程也是一样
开盘价格在每行的第二列
为了后面的计算更精确
在添加时将其转换为浮点型
好吧 也没那么精确
最后我们写上return以结束with代码块
我们来看第二个也是最后一个辅助函数
名为predict_prices
用它来建立预测模型和画图
我们首先要用numpy
将列表转换成n×1的矩阵
用的三个参数包括我们要转换的列表
新的数据类型
也即与日期列表大小相同的一维数组
最后一个是元素顺序
我们来建立三个模型
每个模型都是一种支持向量机
支持向量机是一种线性分类器
它通过已经分类好的数据
去预测还未分类数据的类别
只有两个数据类别的情况就像图中这样
图中的直线为离两个点集中的样本点
距离最远的那条直线
当我们向图中加入新数据点时
依据这个点在直线的哪一侧
我们可以相应的给数据分类
不过现在我们不是在预测类别标签
因此不需要分类
相反 我们要预测一组数据中的下一个值
意味着我们要用回归分析
支持向量机也能进行回归分析
支持向量回归是支持向量机的一种
它使用数据点之间的距离作为误差幅度
以此预测数据集中下一个点最可能的位置
我们来建立第一个模型
线性支持向量回归
创建它需要使用从scikit-learn中引入的SVR模块
创建模型需要三个参数
第一个kernel是支持向量机的类型
然后是与误差项有关的惩罚参数C
使用SVR我们希望得到两样东西
一条最小余量值最大的直线
还有一条任何情况下都能正确分类的直线
但是二者不可兼得
参数C决定我们想要后者的程度
第二个支持向量回归是多项式核
数学界传说的“没有免费午餐定理”说明
无法保证任何一种优化方法强于另一种
所以我们两种都试试
而且如果你在谷歌工作
那你确实能有免费午餐 拿着吧
最后我们用径向基函数
来创建最后一个支持向量回归
径向基函数定义两个输入间的欧式距离
为其相似度
如果二者距离很近 相似度为最大值1
距离太远则为0
参数gamma决定多远是“太远”
我们现在调用fit函数
用日期和价格的数据来拟合或训练模型
现在该画图了
原始数据点用黑点画出 并标上数据标签
每个模型的数据也要画出来
我们要用scikit-learn中svr对象的predict函数
将日期矩阵作为其参数
三个模型分别使用三种不同的颜色和标签
相应的设置x轴和y轴
在图例中添加图像标题
show函数将其显示在屏幕上
我们还要返回每个模型的预测值
现在我们可以调用基于csv模块的get_data函数
并且创建一个变量来存储
根据日期 价格 具体日期预测的价格
我们来把各个模型的图像画出来
我们来分析图像
图像中有三个模型的结果
径向基函数模型的拟合结果看起来最好
所以我们可以在命令行
用它的预测结果赚大钱
分开讲解
有效市场理论认为
能用来设置明天股票价格的数据
只能来自明天
但如果我们使用合适的数据
优化好的机器学习模型的预测结果
比随机预测稍微好一点
支持向量机是机器学习模型的一种
可以用来分类
也能进行回归分析预测图像中新的数据点
上周编程挑战的冠军是Victor Ciurana
Victor建立了向用户推荐艺术家的系统
使用的是last.fm的数据集
本周最佳
第二名是Kevin Nelson
他演示了自己的推荐算法
本次挑战为使用神经网络
建立金融模型来预测股价
特征则选用历史价格和情感分析
具体要求在说明文档中
在评论中留下你的github链接
我会在下个视频中公布获胜者
点击订阅观看更多视频哦
现在我要去预测“阅后即焚”的IPO价格了
谢谢观看

发表评论

译制信息
视频概述

使用python预测股票价格

听录译者

收集自网络

翻译译者

想念

审核员

审核员@AI

视频来源

https://www.youtube.com/watch?v=SSu00IRRraY

相关推荐