Python预测之美 数据分析与算法实战(一)
Python预测之美
数据分析与算法实战
声明:本文旨在对这本书进行简单的整理,列出大致得内容框架,不做具体而又深入的分析。想要深入了解的小伙伴们,自行解决吧。
第一篇 预测入门
第二篇 预测算法 第五章到第八章内容简介
第一章 认识预测
这里的预测之美,主要是指预测的方法、预测的逻辑之美。
1.1 什么是预测
占卜术
占卜的“占“表示观察,观察身边的事物;而“卜”表示推测,根据现象对未知事物进行推测。
龟壳占卜
缺少科学依据,依赖于做出预测的人神秘的地动仪
东汉时期张衡发明了候风地动仪
不能预测地震何时何地会发生,充其量算是震后对地震方向的判断,现在的科学仍难以解释。
地动仪的材料从全国各地去采集,实现推测地震方位的功能。比如说:地动仪东边的龙珠使用山东的矿山的铜来制造。
量子纠缠:超距作用,两样东西放到任意远,仍然会相互影响。科学预测
用科学的方法来做预测,有理可循,有据可依。“预”就是预先、事先,“测”就是度量、推测。
预测的特点: 短期可预测 、 预测随机事物 、预测需要数据、结果仅供参考。
预测分类:
(1)按范围分类:宏观预测 和微观预测
(2)按时间长短分类:短期预测、中期预测和长期预测
(3)按有无假设条件分类:条件预测和无条件预测
(4)按预测结果的要求分类:定性预测、定量预测和定时预测
(5)按趋势是否确定分类:确定性预测,一般为短期预测;不确定性预测,一般为长期预测
(6)按预测依据分类:动态预测和静态预测预测的原则: 目的性原则、连贯性原则、关联性原则、近大远小原则、概率性原则、反馈原则、及时性原则和经济性原则
1.2 前沿技术
大数据与预测
大数据是指在充斥着海量维度与量级的资料中,通过理论方法、计算技术等手段,进一步深化认识、理解研究对象的过程。
大数据的4V特征:种类多、体量大、价值密度低、速度快。
大数据预测的特点:全样而非抽样;效率而非精确;相关而非因果。人工智能与预测
“人工”通常是人造的,“智能”可以表示意识、自我、思维等方面。
人工智能简单的理解为人造的具有意识思维的实体。
发展阶段:
1. 第一阶段:第一代神经网络。1958-1965年,MP人工神经元数学模型。
2. 第二阶段:第二代神经网络。1986年,可以优化(MLP)多层感知机和反向传播算法。
3. 第三阶段:统计建模时代。1995-2001年,线性支持向量机、AdaBoost、核华SVM和随机森林算法。
4. 第四阶段:快速发展期。2006-2011年。
5. 第五阶段:爆发期。2012-至今,CNN等。
人工智能分为弱人工智能、强人工智能和超级人工智能。
人工智能预测的特点:因果性、特征学习和复杂场景经典案例
- 电影票房的预测
- 利用搜索、广告点击数据及影院排片等预测票房,关联性
- 流行病预测
- 根据用户输入的与流感相关的搜索关键词跟踪分析,预测
- 百度已构建一套疾病预测平台
- 犯罪预测
- 源于对地震的预测
- 动作预测
- AI技术
1.3 Python 预测初步
- 数据预处理
- 建立模型
- 预测及误差分析
第二章 预测方法论
为了快速、有效地开展预测工作,有必要提出一套方法论作为指导,保障预测工作有条不紊地进行。
2.1 预测流程
从确定预测主题开始,依次进行收集数据、选择方法、分析规律、建立模型、评估效果,发布模型。
确定主题
- 指标:数量特征。比如:员工流失率、门店客流量。
- 主体:预测研究的对象。
- 精度:预测能够达到的准确水平。
- 周期:预测结果的时间跨度。
- 用户:预测模型、预测功能、预测系统,最终谁来用?
- 成本:人力物力财力。
- 数据:真实可信的数据。
收集数据
内容划分:
1. 数据按生产活动分类:客户类、产品类、营销类、物流类、财务类、服务类。
2. 数据案事件因素分类:起因、经过、结果、时间、地点、人物。收集原则
- 全面覆盖
- 质量较好
- 周期一致
- 粒度对称:可以理解过事物的层次
- 持续生产
数据整合
让数据变得更有条理,逻辑更清楚。通常按时间、周期、粒度、对象这个几个维度进行整合。
选择方法
- 简单型。单对象单指标。自相关分析和偏自相关分析。
- 丰富型。单对象多指标。相关分析、互相关分析、典型相关分析、聚类分析和关联分析。
- 多样型。多对象单指标。相关分析、互相关分析、典型相关分析、聚类分析和关联分析。
- 复杂型。多对象多指标。典型相关分析、聚类分析和关联分析。
分析规律。针对预测,发现可用的规律。规律就是稳定的关系、是必然、是本质。
- 趋势性
- 周期性
- 波动性
- 相关性:变量与变量的关系:函数关系、相关关系(相关系数-1,0,1)。
- 相似性:形状一样、大小不同。
- 项关联性:例如:啤酒与尿布。
- 同一对象不同时刻的状态关联
- 不同对象同一时刻的状态关联
- 不同对象不同时刻的状态
- 段关联性:重复出现的连续片段,也可叫做模式。
- 同一对象不同段的关联
- 不同对象不同段的关联
建立模型:一个公式或一套规则,抑或是一个黑箱的工具
- 构建特征。将已发现的模式或规律作为基础,进行重构。
- 特征选择。特征子集。
- 算法选择。反复尝试的过程。常见的有线性回归、决策树、时间序列、神经网络、随机森林、支持向量机、卡尔曼滤波、高斯回归、小波分析等。
- 构建模型。特征集按一定的比例分割为训练集和测试集。
- 测试模型。在于及时发现模型的问题
- 模型优化。参数优化、调整建模特征
评估效果:预测值和真实值的接近程度。
- 针对概率性预测(本质是分类问题)的评估方法
- 针对数值预测的评估方法
发布模型
总结过程 -> 分析结果 -> 知识传递 -> 监督维护
2.2 指导原则
- 界定问题。确定主题,进行界定。比如该类问题常见的解决方法有哪些?存在哪些问题和风险?等
- 抓住重点:使用经过验证的预测方法和对预测问题进行分解。
- 避免偏见:隐瞒预测目标、提出多个假设和方法和签署道德规范。
- 完全公开:公开预测数据和方法。
- 判断预测法:是预测者根据自己的主观经验、直觉、知识和综合判断能力。对某预测对象未来的发展趋势或状态做出判断的预测方法。
- 避免独立判断
- 使用选择性的用语并预先测试问题
- 分析预测结果的反对意见
- 使用判断自助法
- 使用结构化类推
- 组合独立预测
- 外推预测法:是根据过去和现在的发展趋势推断未来的一类方法的总称。
- 使用最长时间序列
- 分解因果关系
- 调整趋势:时间序列多变或不稳定、历史趋势与因果关系冲突、预测时间跨度比历史序列更长、短期趋势和长期趋势方向不一致。
- 调整季节因素:跨年估计变化明显、只有少数几年数据是可用的、因果知识薄弱。
- 选择合适的外推方法和数据进行组合预测
- 因果预测法
- 使用先验知识来确定变量、关系和对目标变量的效果
- 调整效果评估
- 使用所有重要的变量
- 使用不同的模型进行组合预测
2.3 团队构成
- 成员分类:数据分析经理、业务专家、机器学习专家、数据工程师、可视化工程师。
- 数据氛围:普及数据分析基础知识、建立数据规范及数据看板、让业务人员与数据分析人员搭档和开展讨论及举办分享活动。
- 团队合作:真诚待人、相互信任、有效沟通、谦虚谨慎、化解矛盾和接受批评。
第三章 探索规律
针对特定的预测问题,只拥有数据还不够,想要从纷繁复杂的数据关系中挖掘可用于预测的规律或模式,就需要运用恰当的分析方法。
3.1 相关分析
相关关系是一种与函数关系相区别的非确定性关系,而相关分析就是研究事物或现象之间是否存在这种非确定性关系的统计方法。
- 自相关分析:同时间序列在不同时刻取值的相关程度。acf函数
- 偏相关分析:更加真实地计算自相关系数值,需要限定其他值的情况下进行计算。pacf函数
- 简单相关分析:散点图:散点图矩阵和三维散点图;相关图:相关矩阵图和相关层次图。
- 互相关分析:指两个时间序列在任意不同时刻的相关程度。ccf函数
- 典型相关分析:反映两组变量作为整体之间的相关性。构建综合指标,使其相关性最大。
3.2 因果分析
基于事物发展变化的因果关系进行预测的方法,基于可靠的因果关系来做预测,不仅业务侧能够得到合理的解释和验证,技术实现上也能取得更加可靠的结果。
- 因果推断
因果之梯:关联(出门看见乌云密布,今天的活动会取消吗)- -相关关系、干预(服用了阿司匹林,我的头痛会怎么样)–外在干预来控制结果、反事实(如果你没有杀死他,他还会活着吗)–想象。
辛普森悖论:收集的数据可能存在局限性,而潜在的新维度可能会改变已有的结论。例如白血病治疗案例。 - 因果推断的方法
因果推断是指从数据中挖掘出因果关系的手段。- 潜在结果模型:通过关注行为X的发生是否会导致Y的结果。
- 因果网络模型:多变量间因果关系研究的重要的形式化方法。
- 时序因果推断:是基于时间序列对因果关系进行推断的方法,属于潜在结果模型,它需要对反事实数据进行估计,从而做出因果推断。
一种方法是使用A/B 测试,通过创建控制组合测试组来度量增益或损失。
另一种方法是进行时间序列分析,并试图预测在没有干预的情况下的销售情况。贝叶斯网络预测
3.3 聚类分析
对数据分群,它以相似性为基础,想同类中的样本比不同类中的样本更具相似性。
了解多种距离度量方式。
- K-Means 算法:随机初始分组,调包KMeans()
- 系统聚类方法:初始时每个样本单独看成一类
3.4 关联分析
关联:某种事物发生时其他事物也会发生的联系叫做关联。
关联分析(关联挖掘):在交易数据、关系数据或其他信息载体中挖掘对象集合间的规律或模式的过程。 例如购物篮分析。
关联规则挖掘:所发现的模式通常使用关联规则或频繁项集的形式来表示。
事务数据集:事务ID和项的子集两个属性Apriori算法:是一种最有影响的挖掘布尔关联规则频繁项集的算法,核心是基于两阶段频繁项集思想的递推算法,可挖掘出规则。
- 通过迭代搜索出事务数据集中的所有频繁项集,即支持度不低于设定阈值的项集
- 利用频繁项集构造出满足用户最小置信度的关联规则。
Eclat算法:把数据集中的事务划归到每个项下,采用垂直数据表示,并以此为基础挖掘事务集的频繁项集。又叫Tidset垂直数据集。
序列模式挖掘:考虑了事务间的先后顺序。比如:顾客买完床之后,可能过段时间就会买床单。这种挖掘频繁出现的有序事务或序列的过程就是序列模式挖掘。
SPADE算法:基于垂直数据格式的,并且在产生频繁序列时,只需要对项目集各自的垂直数据进行交叉操作,从而避免了对原始数据进行扫描,序列越长,处理速度越快,同时引入了等价类方法提高算法的效率。
用于序列挖掘的算法主要有两类:一类是类Apriori算法。代表算法GSP算法和SPADE算法。
另一类是基于划分的模式生长算法,代表算法FreeSpan算法和prefixSpan算法。
第四章 特征工程
基于原始特征,我们可以用变换、组合、评价优选及学习等方法来获得更强区分能力的特征,进一步提升模型效果,我们把针对特征所使用到的各种技术和方法汇总到一起叫做特征工程。
4.1 特征变换
是指对原始的某个特征通过一定规则或映射得到新特征的方法。主要由人工完成。
- 概念分层:缩减离散变量取值数量的方法,通常取值2-5类为宜。
- 标准化:对数据进行无量纲处理,是不同量纲的数据可以在同一个数量级上进行横向比较,减少因为数据级的差异带来的误差。
- 线性标准化。极差标准化(最大/最小值标准化)、z-zero标准化、小数定标标准化。
- 非线性标准化。对数标准化、倒数标准化。
- 离散化:通常是针对实数而言,将无限的连续值映射到有限分类值中的方法。
- 分箱法:将连续数值按照一定的规则存放到不同箱体中的数据处理方法,箱的宽度表示箱中数值的取值区间,箱的深度表示箱中数值的数量。
- 熵离散法:基于信息熵的一种数据离散方法,通常用在分类问题的预测场景中对数值属性或特征进行离散化处理。
- 规则离散法:主要靠业务经验设定的规定来离散化数据的方法。
- 函数变换:是使用函数映射将变量或特征变换成另外一个特征的方法。
- 深入表达:是一种思想,他让我们全方位的考虑预测问题,哪怕只从一个特征出发,也可以挖掘出更有区分度的特征。
4.2 特征组合
是指将两个或多个原始特征通过一定规则或映射得到新特征的方法。
- 基于经验:特定的领域知识在具体预测项目中扮演着重要的角色,根据参与构造组合特征的变量的量纲差异
- 同质性组合:量纲相同
- 异质性组合:量纲不同
- 二元组合:从所有的原始特征中选择两个特征的取值进行组合来构建新特征的方法。
- 高阶多项式:特征表现出非线性特点
4.3 特征评价
用于特征选择的过程中,它基于对现有数据的特征进行评价,进一步选取用于建模的最优特征子集。
- 特征初选:直接观察数据的分布来判断是否保留该特征的方法,简单的统计来排除一些不相干的变量。
- 影响评价
- Pearson相关系数:反映两个变量间的线性相关性,取值[-1,1]
- 距离相关系数:距离协方差,取值[0,1],
- 单因素方差分析:讨论一个因素对观测变量的影响
- 信息增益:基于信息熵计算,表示信息消除不确定性的程度
- 卡方检验:计数资料的假设检验方法。主要用于无需分类变量的统计推断,属于非参数检验范围。
- Gini系数:衡量不平等性的指标。
- 模型法:分析这些特征对模型的贡献程度来识别特征的重要性
- 增益法:主要通过收集决策树建模过程中特征的Gini增益来评估特征的重要程度
- 置换法:主要通过比较特征在置换前后,其所建模在OOB数据集的精度下降程度来评估特征的重要性。
4.4 特征学习(表征学习)
基于已有的原始数据,通过算法手段得到具有更强表征能力特征的过程。
遗传编程也叫基因编程或GP,是一种从生物进化中得到灵感的自动化生成和选择计算机程序来完成用户定义的任务的技术。使用遗传编程的方法来进行特征构建,即是通过计算机程序自动化生成特征,并通过选择、交叉、变异等过程,最终得到相对较好的特征的过程。
- 基本思路
- 特征表达式
- 初始种群
- 适应度
- 遗传行为
- 实例分析
基于遗传编程的方法进行构建特征的过程。
Python预测之美 数据分析与算法实战(一)相关推荐
- Python预测之美 数据分析与算法实战(二)
Python预测之美 数据分析与算法实战 第一篇 预测入门 第一章到第四章 第二篇 预测算法 第五章 参数优化 在使用选定算法进行建模时设定或得到的参数很可能不是最优或接近最优的,这时需要对参数进行优 ...
- 《Python预测之美》送书活动,拿走不谢~
这是一本什么样的书? - 以Python语言为基础,配合原理.方法.案例进行讲解 - 专注预测专题,体系化介绍预测技术工程实施的必备技能 - 深度剖析预测原理,细致解读数据分析算法 这本书长啥样? P ...
- 《Python预测之美》送书活动,中奖名单公示
首先,感谢参加新书<Python预测之美>送书活动的朋友.本次活动从7月9日开始,历时5天,于今天早上8点5分准时开奖.共有5名幸运嘉宾中奖.名单如下: 解释权归 " 活动抽奖 ...
- 美图祛斑算法实战——雀斑消除
美图祛斑算法实战--雀斑消除 本文主要根据这篇博文的思路,由于原博文没有放出完整代码,我这里尝试根据作者的思路实现人脸祛斑算法的代码完整版,本代码针对特定图像使用了一些trick,不是通用算法,仅做参 ...
- python 股票数据挖掘_python数据分析之股票实战
原标题:python数据分析之股票实战 数据挖掘入门与实战 公众号: datadw 对于股票的研究我想,无论是专业人士还是非专业人士都对其垂涎已久,因为我们都有赌徒的心态,我们都希望不花太多的时间但是 ...
- 【重磅干货】Python、机器学习、深度学习算法实战和应用必备书籍
[导读]首先祝大家中秋佳节快乐,乘此良辰美景,今天就给大家发一波福利干货!本文给大家分享机器学习.深度学习算法实战和应用必备的4本"宝藏"书.具体书籍展示如下:(文末提供下载方式! ...
- 新出版书籍《Python预测之美:数据分析与算法实战》,送书活动!参与即可机会,获得一本实体书,中奖后可填写地址寄送。
- python数据统计_Python数据分析--Iris数据集实战
Apple iPhone 11 (A2223) 128GB 黑色 移动联通电信4G手机 双卡双待 4999元包邮 去购买 > 本次主要围绕Iris数据集进行一个简单的数据分析, 另外在数据的可视 ...
- python预测药_Python数据分析实例-药品销售分析
学习了Python的各种基础语法和常用包后,你是否对如何使用Python在实际工作中进行数据分析一头雾水?如果是,今天这篇文章一定能带给你一些用数据分析解决实际问题的思路. 数据分析的目的决定了你的分 ...
最新文章
- 计算机网络试题大连工业大学,2016大连工业大学计算机网络考研大纲
- linux epoll监听套接字实例
- 数据库 -- 由数据库连接池引出的三种设计模式
- linux下ssh通过公钥登录服务器
- 【Makefile由浅入深完全学习记录3】伪目标的引入
- 动词ing基本用法_如果实在分不清英语动名词和现在分词,那就直接学习-ing分词...
- python随机列表文本_在python中从单词列表返回随机单词
- C++_类和对象_对象特性_深拷贝与浅拷贝---C++语言工作笔记044
- 移动端ajax,移动端ajax请求问题?
- louvain算法python_【转载】LOUVAIN算法
- Android颜色选择器
- 电气工程计算机网络基础知识大全,2018年注册电气工程师考试(电气与信息技术公共基础)知识点复习:计算机基础[网络体系结构与协议]...
- cba篮球暂停次数和时间_CBA在比赛时,为什么有“官方暂停”?
- 【无标题语音聊天app源码——语音聊天派对】
- 新酒饮赛道混战升级,果立方和RIO、贝瑞甜心有什么不同?
- MATLAB2018
- 软件测试需要学什么?测试小白入门必看!
- 但是我喜欢计算机课用英语怎么说,语文课的英文
- 在Vue中调用微信的扫描二维码功能
- Vue9.2天气案例_监视属性
热门文章
- Hostbuddy是什么软件?hosts编辑器Hostbuddy for Mac
- 是创新还是天真?BlockCity推出BC众创引争议
- 4个万能的扫描工具,各种文件3秒扫描成电子档
- 安卓10自带录屏_手机自带的录屏功能真是太强大了,完全秒杀第三方工具
- 带状区域航测案例分享
- 爆肝怒赞!K8s+Istio+Serverless全套云原生实践已撸完!
- HDU:2014 青年歌手大奖赛_评委会打分
- python元组添加元素_Python 列表,for循环,元组的使用(修改、添加、删除、排序、切片)...
- 2.2nbsp;HOST主桥
- 专科生学计算机毕业升本,专科生请注意:“升本”的机会来了