双11已经结束,按照天猫官方公布的最终数据看,今年的双11成交额为2684亿元,成功刷新了自己创下的商业纪录。然而,早在2019年4月就有网友指出,从天猫双十一的全天销售额来看,实际生产数据几乎完美地分布在三次回归曲线上,拟合度均超过99.94%,几乎为1,而且生产数据有10年之久,每一年的数据都这么高度拟合,数据过于完美。与此同时,这名网友还预测,“2019年淘宝双11当天的销售额为2675.37亿或2689.00亿。”,而这一预测,也因为贴合天猫今年的双十一最终交易数据,而被认为是神预测。
针对这一内容,天猫相关负责人此前也回应称,“按照网友的逻辑,符合统计趋势的就是假的。那么,世界经济总量也是能被预测的,经济发展也是假的吗?自己YY下满足自嗨就算了,由此得出天猫双11数据造假,就是造谣了哦,要负法律责任的!”
咱们且不论天猫数据有没有造假,今天我们通过这个案例中数据,利用python进行多项式回归的训练,学习一下多项式回归,顺便看看天猫的数据到底有多么‘完美’。
一.首先看一下天猫数据的‘庐山真面目’
# 1 用 Pandas 加载数据集
import pandas as pd
from matplotlib import pyplot as plt
df = pd.read_excel("E:\\job\\tmall.xlsx",header=0)
#df
# 2 绘制趋势图像
# 从原数据集中分离出需要的数据集(DataFrame)
x = df['year']
y = df['total']
# 绘图
plt.plot(x, y, 'r')
plt.scatter(x, y)
plt.title('tmall_trand')
二.二次多项式回归预测
# 3 训练集和测试集划分
# 将2009-2018年的数据定义为训练集,2010-2019年的数据定义为测试集
train_df = df[:int(len(df)*0.95)]
test_df = df[int(len(df)*0.05