用Python进行数据分析的好处是,它的数据分析库目前已经很全面了,有NumPy、pandas、SciPy、scikit-learn、StatsModels,还有深度学习、神经网络的各类包。基本上能满足大部分的企业应用。用Python的好处是从数据抽取、数据收集整理、数据分析挖掘、数据展示,都可以在同一种Python里实现,避免了开发程序的切换。
这里就和大家分享我做的一个应用实例。解决问题:自动进行销售预测,提高准确率,减少人工一个一个SKU进行预测分析。最终的效果如下图:
1、用到的工具
当然我们只需要用Python和一些库就可以了。
pandas:数据整理
numpy:pandas的前提,科学计算
MySQLdb:mysql数据库链接
statsmodels:统计建模
pylab:图形处理
flask:web框架
2、Flask的安装
请参考 http://docs.jinkan.org/docs/flask/,在Flask的app目录下建立一个forecasting.py的python文件,在Flask的app的templates目录下建立一个forecastin.html的模版文件,两个文件的内容如下:
forecasting.py
# -*- coding: utf-8 -*-
from app import app
from flask import render_template
@app.route('/forecasting/')
def forecasting(item=None):
return render_template("forecasting.html")
forecastin.html
Hello WorldHello World
在DOS窗口运行
python d:pyflaskrun.py
在浏览器打开http://127.0.0.1:5000/就可以看到forecasting.html模版的内容显示了。
接下来我们从头建一个预测模型。
3、建立数据库并填写数据
CREATE TABLE `sale` (
`SaleMonth` datetime DEFAULT NULL,
`Sale` float DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
数据自己录入啦。
4、相关库的引入
我们现在在之前第2点建立的文件的基础上进行修改,
在forecasting.py的头部引入以下库
# -*- coding: utf-8 -*-
from app import app
from flask import render_template
import pylab
import pandas as pd
import numpy as np
from pandas import Series,DataFrame
import MySQLdb
import pandas.io.sql as sql
import statsmodels.api as sm
import time
import datetime
from dateutil.relativedelta import relativedelta
import random
5、定义路由
@app.route('/forecasting/')
意思就是我们访问例如http://127.0.0.1:5000/forecasting/2的地址对于就是解析到forecasting.py文件,其中是可变的URL部分,如上面的URL的2
6、定义函数
def forecasting(lag=None):
其中lag就是接受URL中的参数,我们定义lag是自回归函数的滞后期数
7、