大数据教你实现预测未来,这不是梦
随着数据挖掘与人工智能技术的发展,越来越多的企业将大数据运用到生产实践与决策指导中。其中,构建合适的模型对未来的趋势进行预测,是数据挖掘中十分重要的一部分。
本文将通过一个小案例教会你如何利用数据挖掘技术实现预测未来不是梦。
【工具】R语言
【算法】多元线性回归模型
【目标】预测2018年第一季度小卖部的周均客流量
数据准备
线性回归是指利用数理统计中回归分析原理,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛,其表达形式为y = w'x+e。多元线性回归预测,则是指利用两个或两个以上自变量的最优组合对因变量进行预测。
看不懂?没关系,我举个栗子你就明白了——在本文案例“预测2018年第一季度小卖部的周均客流量”的课题中,因变量就是我们需要预测的内容,即客流量;自变量则指的是可能对小卖部客流量产生影响的若干个因素。
自变量的选择尤为重要,一个优秀的数据分析师应该运用其严密的逻辑、熟练的业务和天马行空的想象力,尽可能地将所有的相关因素一列俱全!手机前的你也可以暂停几秒,看看自己脑海中能想出什么样的自变量因素呢?
经过思考和讨论,分析师给出了以下一些自变量清单:
小卖部业务水平相关因素:商品种类、商品价格、商品缺货率、售货员人数、收银台数量、促销商品数量、促销折扣力度……
小卖部所在社区相关因素:社区占地面积、社区居住人口、社区人流量、社区房价、社区物业服务水平……
宏观经济因素:居民消费指数、恩格尔系数、定期存款利率、活期存款利率……
其他因素:政府政策、天气情况……
也许你会觉得这些变量——也太多了吧!怎么找啊!怎么处理啊!跟客流量有毛线关系啊!不用担心,一方面,比我们更加机智的模型算法会帮我们挑选出最合适、预测效果最佳的几个变量;另一方面,受现实因素的限制,许多的变量数据是我们无从搜集或无法获取的。
我们采用了实地考察、走访调查、蹲点采集、撒娇卖萌等各种手段,最终获取到了以下8个指标作为预测模型的自变量:
小卖部商品种类
小卖部商品均价
小卖部开启的收银台数量
小卖部的促销力度
小卖部的卫生情况
小卖部商品缺货率
小区客流量
当地气温
要注意,一家人呢,最重要的就是整整齐齐,数据也是。以上数据必须时间跨度统一(都是从2003年1月至2018年3月的数据)、粒度统一(都是周度数据),且获取的数据越多,模型预测的效果也就越好。
当然还少不了已知的小卖部客流量数据(2003年至2017年的周度数据)。
构建预测模型
接下来是高大上的代码实现阶段,不要紧张,请跟着我一步步走——
1、输入数据。
train为训练集数据,即2003年至2017年所有字段的周度数据。test为预测数据,需要预测2018年第一季度的客流量,则,test数据集包括了2018年1月至3月共13周的自变量数据。
2、拟合线性模型。
R中实现拟合线性模型的基本函数是lm(),客流量即为需要拟合得因变量,英文字符“.”代表数据框df_train中的全部变量。
用summary查看拟合结果,结果中有四个指标需要关注:
一是每个变量倒数第二列的t value,即T检验,是检验变量显著性的指标。
二是每个变量最后一列的P值,P值越小,回归效果越显著,后面星级越高。
三是倒数第二行拟合优度R-squared和修正拟合优度Adjusted R-squared,衡量回归方程对样本的拟合程度,值越接近于1,回归效果越好。
四是最后一行的F-statistic值,即我们常说的F统计量,是检验方程整体显著性的指标。
3、逐步回归,构建最优模型。
在step和drop过程中,模型会自动筛选出一些对于预测效果无影响或是起反作用的不好的自变量,也就是P值较大的变量。drop函数会给出下一步线性拟合的变量因素。有时也可以根据P值手动筛选掉效果不佳的变量因素。
在第2步summary(Lm)的结果中,“收银台数量”这一变量的P值约为0.08,其星级也小于其他变量,因此可以在下一步拟合中尝试去掉该变量。
查看step2的拟合结果:去掉“收银台数量”这一变量后,拟合优度R-squared和修正拟合优度Adjusted R-squared和上一步的值相差不多,说明提出的变量并没有对结果产生较大的影响。
在构建拟合模型过程中,可以不断地剔除P值较大、星级较小、拟合效果不好的变量,直到模型能够使用最少的因素达到最佳的预测效果。
预测结果
构建出最佳的拟合模型后,我们就可以用该模型来进行预测。predict函数的两个参数分别为“构建出的拟合模型”和“预测集的变量数据”,即调用step2模型对test数据集进行预测。输出predict结果,即得到了预测出的2018年第一季度共13周的小卖部客流量数据。
经过缜密的分析和精确的计算,我们最终得到了最终结果——2018年第一季度小卖部的周均客流量预计为:
同学们学会了吗?代码拿去,赶快练习练习,下一个数据分析高手就是你哦!
大数据教你实现预测未来,这不是梦相关推荐
- 大数据将对广告业的未来产生什么影响?
文章讲的是 大数据将对广告业的未来产生什么影响, 关于大数据如何改变我们生活中的方方面面,网络上有大量的话题讨论,而其中有很大一部分,则是针对于大数据将如何对广告业产生影响. 但是,相对于随波逐流.盲 ...
- 大数据催生决策新模式 未来将改变更多
"数据多跑路.群众少跑腿",如今,对大数据的应用已经开始切实影响到百姓的日常生活.李彦宏:数据本身不会产生很大的价值,只有共享出来跟各个行业比如教育.医疗.金融等相结合才能产生价值 ...
- 大数据可视化分析以及预测性分析方法
摘要:大数据分析要实现的应用领域之一就是预测性分析,可视化分析和数据挖掘都是前期铺垫工作,只要在大数据中挖掘出信息的特点与联系,就可以建立科学的数据模型,通过模型带入新的数据,从而预测未来的数据. 大 ...
- 大数据助力证券业预判未来
上海,我国最具特色的金融中心,其证券市场交易额等单项指标已位列全球前三,有极丰富的金融数据资源:贵州,中国大数据领域的先行者,是国内推动大数据产业发展的重要支撑,已率先启动了全国首个大数据综合试验区建 ...
- 马云:物联网和大数据的结合才是未来
马云发表演讲 9月10日午间消息,2017世界物联网博览会今日在无锡举办,阿里巴巴集团董事局主席马云受邀参会.马云对物联网.制造业及教育行业发表了看法.他指出,物联网的核心是连,更核心的是智能化,物联 ...
- 智能时代-大数据与智能革命重新定义未来(吴军)-核心书摘
智能时代-大数据与智能革命重新定义未来(吴军)-核心书摘 本文主要摘录于全书正文,部分解释是博主根据自己生活体验增加的理解,欢迎大家共同讨论更正~ 机器学习爱好者交流QQ群:1023 119 142 ...
- 大数据:一场改变未来的信息革命
2019独角兽企业重金招聘Python工程师标准>>> 大数据:一场改变未来的信息革命 灵玖软件 :http://www.lingjoin.com 在宽带化.移动互联网.物联网.社交 ...
- 关于大数据的10个预测
到了2020年,世界上每个人每秒将创造7 MB的数据.在过去的几年里,我们已经创造了比人类历史上更多的数据.大数据席卷全球,并且没有放缓的迹象.人们可能会想,"大数据产业从哪里开始 &quo ...
- 2022-2028全球与中国大数据平台市场现状及未来发展趋势
[报告篇幅]:102 [报告图表数]:134 [报告出版时间]:2021年12月 报告摘要 本文研究全球及中国市场大数据平台现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美.欧洲.中 ...
最新文章
- linux网络编程常用函数详解与实例(socket--bind--listen--accept)
- Makefile中的分析(一)
- 【软件构造】(转) 设计模式
- 运动基元_Java更快地对基元数组进行排序?
- ef mysql 外键 一对一_EFCore-一对一配置外键小记2
- php unicode 插入 mysql_关于MySQL的一些骚操作——提升正确性,抠点性能
- yum安装软件提示Another app is currently holding the yum lock
- 未来,App就是一个人的全部
- 103.二叉树的锯齿形层次遍历:DFS解法
- 通过JS控制textarea的输入长度
- C++ std::map 和 std::unordered_map 区别 时间复杂度 适用
- 建立apk定时自动打包系统第一篇——Ant多渠道打包并指定打包目录和打包日期...
- node.val java_LeetCode——21. 合并两个有序链表(Java)
- 使用swix反编译swf文件修改版权
- 数据库工具DBeaver
- minkowski sum matlab,Matlab 聚类分析
- VirtualBox搭建OpenWrt软路由
- 屏幕录制:4Easysoft Screen Recorder Mac中文版
- IT人系列一 王珅:程序员转型做旧书书商年交易额逾千万
- 从程序中学习UKF-SLAM(二)
热门文章
- 软硬件协同编程 - C#玩转CPU高速缓存(附示例)
- ASP.NET Core跨平台技术内幕
- k8s集群部分常见问题处理
- Orleans 知多少 | 2. 核心概念一览
- Wexflow:C#中的开源工作流引擎
- 使用Dapper持久化IdentityServer4
- .NET Core开发日志——Middleware
- 读《代码不朽:编写可维护软件的10大要则》C# 版
- Identity Service - 解析微软微服务架构eShopOnContainers(二)
- 基于微软开发平台构建和使用私有NuGet托管库