如何使用RMSE和可视化方法评估模型预测效果及验证集预测步骤详解 营销号推广歌曲文案

发布时间 - 2026-01-15 21:19:03    点击率:

下一步是为验证集创建一个预测,并使用实际值检查RMSE。

做出预测

preds = []

对于我的范围(0,248):

a = train'close'.sum() + sum(preds)

B = A/248

preds。(b)

结果计算RMSE

rms = np.sqrt(np.mean(np.power(((np.Array)(有效['close']) -  preds),2))))))))))))))

RMS

104.548

仅检查RMSE并不能帮助我们了解模型的执行方式。让我们将其可视化以获得更直观的理解。因此,这是预测值与实际值的图。

绘制图片

有效[''] = 0

有效[''] = preds

plt.plot(train ['close'])

plt.plot(有效[['close','']])

推理

RMSE值接近105,但是结果不是很有希望(从图可以看出)。预测值的范围与验证集中的观测值相同(最初有增加趋势,然后慢慢降低)。

在下一节中,我们将介绍两种常用的机器学习技术 - 线性回归和KNN,并了解它们在我们的股票市场数据上的表现。

2。线性回归简介

可以在此数据上实现的最基本的机器学习算法是线性回归。线性回归模型返回一个方程式,该方程式决定了独立变量和因变量之间的关系。

线性回归的方程式可以写为:

在这里,x1,x2,....xň表示自变量,而系数θ1,θ2,...θñ代表权重。

对于我们的问题描述,我们没有一组自变量。我们只有日期。让我们使用日期列来提取诸如 - 日,月,年,星期一/星期五之类的功能,然后适合线性回归模型。

代码

我们将首先按升序排序数据集,然后创建一个单独的数据集,以便创建的任何新功能都不会影响原始数据。

将索引设置为日期值

df ['date'] = pd。(df.date,='%y-%m-%d')

df.index = df ['date']

种类

data = df。(= true,axis = 0)

创建一个单独的数据集

= pd。(index = range(0,len(df)),= ['date','close'])

对于I范围(0,LEN(数据)):

'date'= data'date'

'关闭'= data'close'

创建功能

从 。

(, '日期')

.drop('',轴= 1,= true)#将是时间戳

这创建了以下特征:

'年','月,“'','day','','','','','','','',',',',',',',',',',',',',',',' ', '', 和 ''。

注意:我使用了库。如果您没有安装它,只需使用命令PIP即可。另外,您可以使用简单的循环创建此功能。我在下面显示了一个示例。

除此之外,我们还可以添加自己认为与预测有关的特征。例如,我的假设是,一周的第一天和最后几天可能会影响股票的收盘价,而远远超过了其他日子。因此,我创建了一项功能,该功能确定某个一天是星期一/星期五还是星期二/星期三/星期四。可以使用以下代码行完成:

[''] = 0

对于I范围(0,len()):

if(''== 0或''== 4):

''= 1

别的:

''= 0

如果一周中的一天等于0或4,则列值为1,否则为0。类似地,您可以创建多个功能。如果您对可以有助于预测股票价格的功能有一些想法,请在评论部分中分享它们。

现在,我们将数据分为培训和验证集以检查模型的性能。

分为训练集和验证集

火车= [:987]

有效= [987:]

= Train.Drop('Close',Axis = 1)

=火车['关闭']

=有效。drop('Close',Axis = 1)

=有效['close']

实现线性回归

从 。

模型=()

model.fit(,)

对结果进行预测并找到RMSE

preds =模型。()

rms = np.sqrt(np.mean(np.power(((np.Array()-np.Array(preds)),2)))))))))))))))))

RMS

121.156

RMSE值高于先前的技术,该技术清楚地表明线性回归的性能差。让我们看一下图表,了解为什么线性回归做得不好:

绘制图片

有效[''] = 0

有效[''] = preds

有效index = [987:]。索引

train.index = [:987] .index

plt.plot(train ['close'])

plt.plot(有效[['close','']])

推理

线性回归是一种简单的技术,很容易解释,但是有一些明显的缺点。使用回归算法的一个问题是该模型与日期和月列相匹配。该模型没有从一个月前的同一日期或一年前同一日期/月来考虑以前的值,而是从预测的角度考虑以前的值。

从上图可以看出,股价在2016年1月和2017年1月下降。该模型预测了2018年1月的情况。线性回归技术可以很好地解决诸如大型超市之类的销售问题,其中独立功能对确定目标值。

3. K-邻居简介

这里可以使用的另一种有趣的ML算法是KNN(K最近的邻居)。 KNN发现基于自变量的新数据点和旧数据点之间的相似性。让我用一个简单的例子来解释它。

考虑11人的身高和年龄。根据给定特征(“年龄”和“高度”),该表可以以图形格式表示:如下:

为了确定ID#11的重量,K-NN考虑了该ID最近邻居的重量。 ID#11的重量预计将是其邻居的平均值。如果我们现在考虑三个邻居(k = 3),ID#11的重量将为=(77 + 72 + 60)/3 = 69.66 kg。

代码导入库

从 。

从 。

=(=(0,1))

使用上一节中相同的培训和验证集:

比例数据

=。()

= pd。()

=。()

= pd。()

使用使用的最佳参数

= {'':[2,3,4,5,6,7,8,9]}

knn =。()

型号=(knn,,cv = 5)

适合模型并进行预测

model.fit(,)

preds =模型。()

结果查看RMSE值

rms = np.sqrt(np.mean(np.power(((np.Array()-np.Array(preds)),2)))))))))))))))))

RMS

115.721

RMSE值没有太大差异,但是预测和实际值的图应提供更清晰的理解。

绘制图片

有效[''] = 0

有效[''] = preds

plt.plot(有效[['close','']])

plt.plot(train ['close'])

推理

RMSE值几乎与线性回归模型相似,并且图显示了相同的模式。像线性回归一样,KNN也确定了2018年1月的下降,因为这是过去几年的形式。我们可以肯定地说,回归算法在此数据集上的性能差。

让我们继续研究某些时间序列预测技术,以了解它们在面对股价预测挑战时的表现。

4。汽车介绍

Arima是一种非常流行的时间序列预测统计方法。 Arima模型考虑了过去的值以预测未来的价值。 Arima有三个重要参数:

Arima参数调整可能需要大量时间。因此,我们将使用Auto Arima,该Auto Arima会自动选择(P,Q,D)来提供最小错误的最佳组合。

代码

来自.arima

data = df。(= true,axis = 0)

火车=数据[:987]

有效=数据[987:]

=火车['关闭']

=有效['close']

model =(,,= 1,= 1,max_p = 3,max_q = 3,m = 12,= 0,= true,d = 1,d = 1,trace = true,=''',= true)

model.fit()

=模型。(= 248)

= pd。(,index =有效index,= ['''])

结果

rms = np.sqrt(np.mean(np.power((np.Array)(有效['close']) -  np.array([''']),2)))))))))))))))))))))

RMS

44。

绘制图片

plt.plot(train ['close'])

plt.plot(有效['close'])

plt.plot(预测['预测'])

推理

如前所述,自动Arima模型使用过去的数据来了解时间序列中的模式。使用这些值,该模型获得了该系列的增长趋势。尽管使用此技术的预测比以前实现的机器学习模型的预测要好得多,但这些预测仍然不接近实际值。

从该图可以看出,该模型在该系列中捕获了趋势,但并未集中在季节性部分上。在下一节中,我们将实施一个时间序列模型,以考虑该系列的趋势和季节性。

5。简介

可以在库存预测数据集上实现许多时间序列技术,但是在拟合模型之前,大多数这些技术都需要大量的数据预处理。设计和开创性的是一个时间序列预测库,不需要数据预处理,并且非常易于实现。输入是一个具有两个列的数据框架:日期和(DS和Y)。

试图在过去的数据中获得季节性,并在数据集很大时做得很好。

代码导入

创造

= pd。(index = range(0,len(df)),= ['date','close'])

对于I范围(0,LEN(数据)):

'date'= data'date'

'关闭'= data'close'

['date'] = pd。(。日期,='%y-%m-%d')

.index = ['date']

准备数据

培训和验证

火车= [:987]

有效= [987:]

使用正确的型号

模型=()

型号(火车)

预测

= model.e(= len())

=型号。()

结果查看RMSE

='yhat'

rms = np.sqrt(np.mean(np.power(((np.Array))(有效['y']) -  np.Array()),2)))))))))))))

RMS

57。

绘制图片

有效[''] = 0

有效[''] =。

plt.plot(train ['y'])

plt.plot(有效[['y','']])

推理

(与大多数时间序列预测技术相同)尝试从过去的数据中获得趋势和季节性。该模型通常在时间序列数据集上表现良好,但在这种情况下无法实现其声誉。

事实证明,股价没有具体的趋势或季节性。这在很大程度上取决于当前市场状况,因此价格将上涨。因此,诸如Arima之类的预测技术不会为此特定问题显示出良好的结果。

让我们继续尝试另一种先进的技术 - 长期和短期内存(LSTM)。

6。长期和短期记忆简介(LSTM)

LSTM广泛用于序列预测问题,已被证明非常有效。他们之所以非常有效的原因是,LSTM能够存储过去的重要信息,而忘记了不重要的信息。 LSTM有三扇门:

现在,让我们将LSTM作为黑匣子实现,并在我们的特定数据上检查其性能。

代码导入所需的库

从 。

来自Keras。

来自Keras。密集,LSTM

创造

data = df。(= true,axis = 0)

= pd。(index = range(0,len(df)),= ['date','close'])

对于I范围(0,LEN(数据)):

'date'= data'date'

'关闭'= data'close'

设置索引

.index = .date

.drop('date',轴= 1,= true)

创建培训和测试集

=。

火车= [0:987,:]

有效= [987:,:]

将数据集转换为X和Y列

=(=(0,1))

=。()

,= [],[]

对于我的范围(60,Len(火车)):

。([I-60:i,0])

。([i,0])

,= np.Array(),np.Array()

= np。((。

创建和使用LSTM网络

模型=()

model.Add(lstm(单位= 50,= true,=(。shape [1],1)))))

ADD(LSTM(单位= 50))

型号(密集(1))

桩(损失='',='adam')

model.fit(,,,= 1,= 1,= 2)

使用训练集中的过去60个值预测246个值

= [len() -  len(有效)-60:]。

=。(-1,1)

=。()

= []

对于我的范围(60,.shape [0]):

。([I-60:i,0])

= np.array()

= np。(,(。形状[0],。shape [1],1))

=型号。()

=。()

结果

rms = np.sqrt(np.mean(np.power((录用 - ),2),2))))))

RMS

11.,

绘制图片

火车= [:987]

有效= [987:]

有效[''] =

plt.plot(train ['Close'])

plt.plot(有效[['close','']])

推理

LSTM模型可以根据不同的参数进行调整,例如更改LSTM层的数量,添加值或增加时期的数量。但是,LSTM的预测是否足以确定股票价格是在上涨还是下跌?当然不是!

正如我在本文开头提到的那样,股票价格受到有关公司的新闻以及其他因素(例如货币化或公司的合并/拆分)的影响。还有一些无形的因素通常是不可预测的。

结局笔记

时间序列预测是一个非常有趣的领域,正如我在撰写这些文章时意识到的那样。社区中有一种看法,这是一个非常复杂的领域。尽管有些确实更为复杂,但是一旦您掌握了基本技术,它将不那么困难。

本文的作者使用六种方法来预测股票价格波动,并分析了结果模型中每种算法的优点和缺点。从数字可以看出,LSTM方法是最合适的。一种方法,但是股票市场需要考虑许多因素。不仅需要预测一些关键功能。我们可以根据先前数据验证算法,但使用该算法来预测未来的库存上升。损失下降时仍然存在一些风险,因此您仍然应该谨慎使用这些算法。至少没有算法可以预测未来股票的时间序列模型算法100%。最好暂时使用该算法来连续训练,直到未来的技术有一天成熟。

使用和深(用代码)进行库存


# 如何使用RMSE和可视化方法评估模型预测效果及验证集预测步骤详解  # 让我们  # 可以看出  # 我在  # 这是  # 未来  # 创建一个  # 很好  # 是一种  # 在此  # 您可以  # 将是  # 做得  # 可以使用  # 股票市场  # 可以根据  # 先前  # 的是  # 是一个  # 升序  # 是在  # 小说网站怎么推广在贴吧  # 湛江seo排名  # 零售营销推广价格  # 牟平建设网站外包  # 武汉竞价seo  # 龙岗seo优化培训  # 保定产品推广营销  # 高效精准流量seo  # 中山社交媒体营销推广方案  # 营销推广公关活动  # 信阳网络推广seo优化  # 网站怎么自己做优化  # 郑州高端网站建设专家  # 丽水关键词排名企业  # 企业网站建设推广采购  # 茂名网站关键词排名  # 枣庄seo外包策略  # 电网监控seo  # 昭通网站建设的成本  # 顺德营销网站品牌推广招聘 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 广州百度推广费用能退吗?解答常见疑问,新网站的推广  晋中SEO网络推广,助力企业腾飞,抢占市场先机,论坛类网站seo  SEO入门玄关鞋柜隔断,打造家居空间新亮点,宁夏seo技巧平台  河北云优化SEO报价介绍,高效提升网站排名的秘密武器,seo自动优化推广  白山SEO技巧,如何让我的网站在搜索引擎中脱颖而出?,海东市当地网站优化招聘  介绍短|视频|SEO代理价格,如何选择性价比最高的服务,SEO在线引蜘蛛平台  微信上线后悔药功能,误删聊天记录有救啦!网友纷纷点赞   广州百度推广引流助力企业快速发展,郑州抖音推广营销策划  广州百度推广费钱吗?深度分析与实用建议,营销号合作推广自己能做吗  广州百度推广聊天,企业营销新趋势,医疗网络营销推广是什么  衡阳SEO优化之旅,如何让有为太极成为搜索引擎的新宠?,洗衣店营销推广渠道  探索南京SEO网站的奥秘,如何让您的网站在搜索引擎中脱颖而出,宜兴市手机网站建设  网站SEO综合介绍方法,多维介绍与优化步骤,seo写手的缺点  介绍天津SEO行业工资标准,薪资水平与职业发展前景分析,日照外贸seo推广  壮阳药的真相,科学视角下的真实效果与误区,免费推广网站一般多少钱  广州百度推广词条优化指南,珠海搜索网站优化推广  揭秘乐云SEO背后的真相,为何它能够成为行业黑马?,泉州seo哪家好  晋城SEO优化排名攻略,介绍提升网站流量的方法,粤海小企业网站优化  探索未知,我的成长之旅与自媒体营销的奇妙相遇,图片懒惰加载 seo  探索火星软件,开启未来科技生活的新篇章,微博微信营销推广方案  SEO获取流量的必杀技:如何通过优化轻松提升网站排名,德州全网营销推广价格  铁岭SEO推广哪家强介绍优质服务商,助力企业腾飞!,蚌埠seo排名厂家  介绍燕郊SEO服务公司,助力企业腾飞的秘密武器,网站的优化策略怎么写  揭秘SEO秘籍,如何让内容在搜索引擎中脱颖而出?,房山外贸响应式网站建设  SEO获客的秘诀:如何通过搜索引擎优化提升客户获取能力,厦门seo搜索优化排名  探索广州百度推广主页,助力企业数字化营销新突破,营销平台线上推广方案  介绍常州正规SEO报价,如何选择性价比最高的服务,安徽网站建设方案优化  抖音人气爆棚捧红众多网红,想走红容易却也难?且看这位   SEO很多,如何在竞争激烈的市场中脱颖而出?,在SEO优化中  广州企业如何应对百度推广预算不足的挑战,天津口碑营销推广中心  鞍山SEO外包,快速入门的秘诀与策略,大连正规网站seo报价  桐城SEO优化,介绍优秀服务商,助力企业腾飞,新网站优化步骤  揭秘广州百度推广中的猫腻,你真的了解吗?,旅游网站的建设缺陷  SEO优化如何提升网站排名,驾驭搜索引擎流量,三亚网站推广方法  福建百度推广是否可以推广小程序?,重庆做网站建设团队  SEO招标:如何通过专业SEO服务助力企业脱颖而出,牡丹江关键词排名怎么样  SEO数量-如何提升你的网站排名与流量?,射阳seo优化五星服务  介绍过时SEO方法,如何避免陷入优化陷阱,青羊区网站优化哪家好用  福建百度推广服务费一年多少钱?,咸阳市网站建设  SEO要好,网站流量翻倍的关键秘诀,品牌网站建设关键词优化  广州百度推广赔付规则详解,文具店微信营销推广方案  广州百度推广问题解析与解决方案,忠县做网站建设  广州百度推广计费方式解析,鞍山网站建设价格低  SEO与网页,构建搜索引擎优化之路,he2seo4  广州百度推广服务费解析及优化建议,健康养生营销推广  微信转账凭证三步领取,24小时到手!关键时比借条还硬?   淘宝SEO优化攻略,关键词布局与提升店铺排名的方法,长沙开福区seo运营  探索南丰SEO优化公司的奥秘,聊城网站建设工程管理  SEO免费自学教程,从入门到精通的全面指南,云南网站优化什么价格  西安SEO优化代理,助力企业提升网络竞争力,开县网站优化排名