如何用人工智能预测双 11 的买卖额?
作者头像
  • 2020-07-19 19:03:34 1

序文

预测未来是人们长久以来所追求的能力之一。

本文将通过一个简单的人工智能算法——线性回归算法,来预测2019年阿里巴巴“双十一”购物节的交易额。


准备工作

首先,我们需要导入Python中必要的库,并完成一些基本设置,以便在Jupyter Notebook中嵌入图表,并正确显示中文标签。

```python

导入所需的库

import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression

设置内嵌绘图

%matplotlib inline

设置正常显示中文标签

plt.rcParams['font.sans-serif'] = ['SimHei'] ```


处理数据

接下来,我们将历年“双十一”的交易额数据保存在一个名为“1111.xlsx”的文件中。读者可以通过特定渠道获取这个文件,并用Pandas读取数据,然后用NumPy转换为算法所需的变量数组。为了简化模型并提高准确性,我们选择只保留近五年的数据。

```python

读取数据

df = pd.read_excel('./data/1111.xlsx')

使用最近几年的数据作为x轴

x = np.array(df.iloc[5:, 0]).reshape(-1, 1)

交易额作为y轴

y = np.array(df.iloc[5:, 1])

预测年份为2019

z = [[2019]] ```


进行预测

我们使用sklearn库中的线性回归算法,对历年“双十一”的交易额数据进行拟合,并预测2019年的交易额,预测结果为2471亿元。

```python

调用线性回归算法

lr = LinearRegression() lr.fit(x, y)

进行预测

predict = lr.predict(z)

输出预测结果

print('预测2019年“双十一”的交易额为', round(predict[0], 0), '亿元。') print('线性回归算法的评分:', lr.score(x, y)) ```


数据可视化

为了更直观地展示预测结果,我们利用matplotlib绘制散点图,展示历史数据和预测数据。

```python

绘制图表

fig = plt.figure(figsize=(10, 8)) ax = fig.add_subplot(111)

绘制散点图

ax.scatter(x, y, color='#0085c3', s=100) ax.scatter(z, predict, color='#dc5034', marker='*', s=260)

设置标签等

plt.xlabel('年份', fontsize=20) plt.ylabel('“双十一”交易额', fontsize=20) plt.tick_params(labelsize=20)

绘制预测直线

x2 = np.concatenate([x, z]) y2 = lr.predict(x2) plt.plot(x2, y2, '-')

plt.show() ```


注意事项

最后,这里有一些需要注意的事项:

  1. 线性回归反映的是变量之间的数量变化关系,而非因果关系。
  2. 线性回归算法对异常值较为敏感,需要进行剔除。
  3. 算法需要不断更新,当预测结果与实际情况严重不符时,应及时调整算法。

总结

本文通过一个简单的线性回归算法预测了2019年“双十一”的交易额为2471亿元,并通过图形展示了预测结果。虽然现实情况复杂多变,但基本原理和解决问题的思路是相通的。预测完成后,我们还需要继续进行数据分析,对比实际数据与预测结果,计算预测准确率,分析差异原因,并提出改进措施,以期在未来提高预测的准确性。

    本文来源:图灵汇
责任编辑: :
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
用人预测买卖智能如何11
    下一篇