首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >震惊!他竟然用回归分析做这种事

震惊!他竟然用回归分析做这种事

作者头像
老肥码码码
发布2020-01-17 15:52:36
3870
发布2020-01-17 15:52:36
举报

点击上方“算法与数据之美”,选择“置顶公众号”

更多精彩等你来!

今年的双十一已然过去,之前文章里有提到过我预测了天猫的成交额为2675.55亿元,和真实值的数据非常地相近,有朋友就问我是如何预测的,方法其实很简单,多项式回归

那么什么是多项式回归呢,我们使用下面这个多项式来拟合散点数据,从而做到对真实值的预测。

我们先利用天猫双十一前十年的数据绘制成散点图的样子,可以明显地感觉到类似于y=x²样子的曲线,于是我们就假设该散点的连线和一个多项式曲线一致。

这里我们用到了 sklearn 这个机器学习库已经封装好的多项式回归。其中x为自变量年份,y为因变量成交额。设置参数 degree=2 可以拟合二次的多项式。同理, degree=2 可以拟合三次的多项式。

pf = PolynomialFeatures(degree=2)
x_2_fit = pf.fit_transform(x)
lrModel = linear_model.LinearRegression()
lrModel.fit(x_2_fit,y)
print("多项式方程为:{:.3f}x²{:.3f}x+{:.3f}".format(lrModel.coef_[2],lrModel.coef_[1],lrModel.intercept_))

可以由此得到多项式方程为:

y=30.087x²-94.107x+70.183

接着可以绘制出该多项式方程,可以清楚看到与散点拟合的较好,那么如何从数学上的角度来分析拟合得是否完美呢?

这里就需要引入R²的概念,R²是指拟合优度(Goodness of Fit),是回归方程对观测值的拟合程度,拟合得越好越趋近于1。同样我们利用 sklearn 来得到该方程的R²。

score = r2_score(y, y_predicted, multioutput='raw_values')

由此我们得到0.99938的值,可以说拟合程度相当之高。接着我们就可以由该方程预测今年的成交额为2675.55亿元~

我们还可以接着预测2020、2021……从今年的成交额结果来看,依然对该方程拟合地非常完美,误差仅为千分之三

由此还有不少网友提出质疑,“双十一数据造假”。那么究竟是数学的魔力,还是人为的制造, 是人性的扭曲,还是道德的沦丧?

我也不知道~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与数据之美 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档