目录

《Linkedln:2016年中国互联网最热职位人才库报告》

Python3.x 常用的新特性

字符串编码格式回顾:

DIKW 体系

数据建模基础


《Linkedln:2016年中国互联网最热职位人才库报告》

  • Linkedln:2016年中国互联网最热职位人才库报告

互联网最热职位排序:

人才供给指数:

城市分布:

从业年限统计:

课程简介:

  • 近两年来,数据分析师的岗位需求非常大,90%的岗位技能需要掌握Python作为数据分析工具。Python语言的易学性、快速开发,拥有丰富强大的扩展库和成熟的框架等特性很好地满足了数据分析师的职业技能要求。

Python版本

Python 2 or Python 3

  • Python 2.x 是早期版本,Python 3.x是当前版本
  • Python 2.7 (2.x的最终版)于2010年发布后很少有大的更新
  • Python 2.x 比 Python3.x 拥有更多的工具库
  • 大多数Linux系统默认安装的仍是 Python 2.x
  • 版本选择取决于要解决的问题

建议选择 Python 2.x 的情况:

  • 部署环境不可控,Python版本不能自行选择
  • 某些工具库还没有提供支持 Python 3.x。
  • 如果选择使用 Python 3.x,需要确定要用的工具库支持新版本。

注意:本课程将会使用Python 3.x 版本

Python环境及IDE

Python环境

Anaconda(水蟒):是一个科学计算软件发行版,集成了大量常用扩展包的环境,包含了 conda、Python 等 180 多个科学计算包及其依赖项,并且支持所有操作系统平台。下载地址:https://www.continuum.io/downloads

安装包:pip install xxx,conda install xxx

卸载包:pip uninstall xxx,conda uninstall xxx

升级包:pip install upgrade xxx,conda update xxx

IDE

Jupyter Notebook:

命令:jupyter notebook

  1. Anaconda自带,无需单独安装
  2. 实时查看运行过程
  3. 基本的web编辑器(本地)
  4. .ipynb 文件分享
  5. 可交互式
  6. 记录历史运行结果

IPython:

命令:ipython

  1. Anaconda自带,无需单独安装
  2. Python的交互式命令行 Shell
  3. 可交互式
  4. 记录历史运行结果
  5. 及时验证想法

Spyder:

命令:spyder

  1. Anaconda自带,无需单独安装
  2. 完全免费,适合熟悉Matlab的用户
  3. 功能强大,使用简单的图形界面开发环境

PyCharm:

  1. 需要自行安装:https://www.jetbrains.com/pycharm/download
  2. PyCharm,JetBrains的精品,全平台支持,不多解释了。

Python3.x 常用的新特性

  • print() 是函数,不是一个语句

  • raw_input()输入函数,改为 input()

  • Python 3 对文本和二进制数据做了更为清晰的区分。

    1. 文本由unicode表示,为str类型
    2. 二进制数据由bytes (字节包)表示,为bytes类型
  • 新增数据类型 bytes (字节包),代表二进制数据以及被编码的文本字符串前有个前缀b

  • Python3中 bytes 与 str 转换

    1. str 可以编码(encode)成 bytes
    2. bytes 可以解码(decode)成 str
  • 字符串格式化输出方式:新增format()方式

  • dict类型变化

    之前的 iterkeys(), itervalues(), iteritems(),

    改为现在的 keys(), values(), items()

字符串编码格式回顾:

  • ASCII:早起计算机保存英文字符的编码方式

  • GB2312:对ASCII的中文扩展

  • GBK/GB18030:包括了GB2312的所有内容,同时又增加了近20000个新的汉字和符号

  • Unicode:包括了全球的符合和编码。每个字符用3~4个字节表示,浪费空间

  • UTF-8:可变长的编码方式,在互联网上使用最广泛的一种Unicode的实现方式,根据语种决定字符长度,如一个汉字3个字节,一个字母1个字节,也是Linux环境下默认编码格式。

DIKW 体系

DIKW体系是关于数据、信息、知识及智慧的体系,可以追溯至托马斯·斯特尔那斯·艾略特所写的诗--《岩石》。在首段,他写道:“我们在哪里丢失了知识中的智慧?又在哪里丢失了信息中的知识?”(Where is the wisdom we have lost in knowledge? / Where is the knowledge we have lost in information?)。

1982年12月,美国教育家哈蓝·克利夫兰引用艾略特的这些诗句在其出版的《未来主义者》一书提出了“信息即资源”(Information as a Resource)的主张。

其后,教育家米兰·瑟兰尼、管理思想家罗素·艾可夫进一步对此理论发扬光大,前者在1987年撰写了《管理支援系统:迈向整合知识管理》(Management Support Systems: Towards Integrated Knowledge Management ),后者在1989年撰写了《从数据到智慧》(“From Data to Wisdom”,Human Systems Management)。

数据工程领域中的DIKW体系

D:Data (数据),是 DIKW 体系中最低级的材料,一般指原始数据,包含(或不包含)有用的信息。

I:Information (信息),作为一个概念,信息有着多种多样的含义。在数据工程里,表示由数据工程师(使用相关工具)或者 数据科学家(使用数学方法),按照某种特定规则,对原始数据进行整合提取后,找出来的更高层数据(具体数据)。

K:Knowledge (知识),是对某个主题的确定认识,并且这些认识拥有潜在的能力为特定目的而使用。在数据工程里,表示对信息进行针对性的实用化,让提取的信息可以用于商业应用或学术研究。

W:Wisdom (智慧),表示对知识进行独立的思考分析,得出的某些结论。在数据工程里,工程师和科学家做了大量的工作用计算机程序尽可能多地提取了价值(I/K),然而真正要从数据中洞察出更高的价值,甚至能够对未来的情况进行预测,则需要数据分析师。

数据工程 领域职业划分:

数据工程是一整套对数据(D)进行采集、处理、提取价值(变为 I 或 K)的过程。

首先介绍一下相关的几种角色: Data Engineer(数据工程师), Data Scientist(数据科学家), Data Analyst(数据分析师)。 这三个角色任务重叠性高,要求合作密切,但各负责的领域稍有不同。大部分公司里的这些角色都会根据每个人本身的技能长短而身兼数职, 所以有时候比较难以区分:

  • Data Engineer 数据工程师: 分析数据少不了需要运用计算机和各种工具自动化数据处理的过程, 包括数据格式转换, 储存, 更新, 查询。 数据工程师的工作就是开发工具完成自动化的过程, 属于 基础设施/工具(Infrastructure/Tools)层。

    但是这个角色出现的频率不多 ,因为有现成的MySQL, Oracle等数据库技术, 很多大公司只需要DBA就足够了。而 Hadoop, MongoDB 等 NoSQL 技术的开源, 更是使在大数据的场景下都没有太多 数据工程师 的事,一般都是交给 数据科学家 。


  • Data Scientist 数据科学家: 数据科学家是与数学相结合的中间角色, 需要用数学方法处理原始数据找出肉眼看不到的更高层数据, 一般是运用 统计机器学习(Statistical Machine Learning)或者 深度学习(Deep Learning)。

    有人称 Data Scientist 为 编程统计学家(Programming Statistician),因为他们需要有很好的统计学基础,但也需要参与程序的开发(基于 Infrastructure 之上),而现在很多很多的数据科学家 职位都要求身兼数据工程师。 数据科学家 是把 D 转为 I 或 K 的主力军


  • Data Analyst 数据分析师: 数据工程师和数据科学家做了大量的工作,用计算机程序尽可能多地提取了价值(I/K),然而真正要从数据中洞察出更高的价值, 则需要依靠丰富的行业经验和洞察力, 这些都需要人力的干预。

    Data Analyst 需要的是对所在业务有深刻了解, 能熟练运用手上的工具(无论是 Excel, SPSS也好, Python/R也好,工程师给你开发的工具也好,必要时还要能自己充当工程师和科学家,力尽所能得到自己需要的工具),有针对性地对数据作分析,并且需要把发现的成果向其他职能部门呈现出来,最终变为行动,这就是把数据最终得出 Wisdom

什么是数据分析:

百度百科:数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。这一过程也是质量管理体系的支持过程。在实用中,数据分析可帮助人们作出判断,以便采取适当行动。

数据分析的过程:

1. 数据收集:本地数据或者网络数据的采集与操作.

2. 数据处理:数据的规整,按照某种格式进行整合存储。

3. 数据分析:数据的科学计算,使用相关数据工具进行分析。

4. 数据展现:数据可视化,使用相关工具对分析出的数据进行展示。

数据分析的工具:

  • SAS:SAS(STATISTICAL ANALYSIS SYSTEM,简称SAS)公司开发的统计分析软件,是一个功能强大的数据库整合平台。价格昂贵,银行或者大企业才买的起,做离线的分析或者模型用。

  • SPSS:SPSS(Statistical Product and Service Solutions,统计产品与服务解决方案)是IBM公司推出的一系列用于统计学分析运算、数据挖掘、预测分析和决策支持任务的产品,迄今已有40余年的成长历史,价格昂贵。

  • R/MATLAB:适合做学术性质的数据分析,在实际应用上需要额外转换为Python或Scala来实现,而且MATLAB(MathWorks公司出品的商业数学软件)是收费的。

  • Scala:是一门函数式编程语言,熟练使用后开发效率较高,配合Spark适合大规模的数据分析和处理,Scala的运行环境是JVM。

  • Python:Python在数据工程领域和机器学习领域有很多成熟的框架和算法库,完全可以只用Python就可以构建以数据为中心的应用程序。在数据工程领域和机器学习领域,Python非常非常流行。

数据建模基础

大数据分析场景和模型应用

数据分析建模需要先明确业务需求,然后选择是 描述型分析 还是 预测型分析

  • 如果分析的目的是描述目标行为模式,就采用描述型数据分析,描述型分析就考虑 关联规则、 序列规则 、 聚类 等模型。

  • 如果是预测型数据分析,就是量化未来一段时间内,某个事件的发生概率。有两大预测分析模型, 分类预测 和 回归预测

常见的数据建模分类

分类与回归

  • 分类:是通过已有的训练样本去训练得到一个最优模型,再利用这个模型将输入映射为相应的输出,对输出进行简单的判断从而实现分类的目的,也就具有了对未知数据进行分类的能力。

  • 回归:是基于观测数据建立变量间适当的依赖关系,以分析数据内在的规律,得到响应的判断。并可用于预报、控制等问题。

应用:

信用卡申请人风险评估、预测公司业务增长量、预测房价,未来的天气情况等

原理:

  • 回归:用属性的 历史数据 预测未来趋势。算法首先假设一些已知类型的函数可以匹配目标数据,然后分析匹配后的误差,确定一个与目标数据匹配程度最好的函数。回归是对真实值的一种 逼近预测

  • 分类:将数据映射到 预先定义的 群组或类。算法要求基于数据 特征值 来定义类别,把具有某些特征的数据项映射到给定的某个类别上。分类并没有逼近的概念,最终正确结果只有一个。 在机器学习方法里,分类属于监督学习。

区别:

分类模型采用 离散预测值,回归模型采用 连续的预测值

聚类

  • 聚类:就是将相似的事物聚集在一起,不相似的事物划分到不同的类别的过程。

  • 聚类分析:又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法,同时也是数据挖掘的一个重要算法。

应用:

根据症状归纳特定疾病、发现信用卡高级用户、根据上网行为对客户分群从而进行精确营销等。

原理:

在没有给定划分类的情况下,根据信息相似度进行信息聚类。

聚类的输入是一组 未被标记的数据,根据样本特征的距离或相似度进行划分。划分原则是保持最大的组内相似性和最小的组间相似性。

不同于分类,聚类事先 没有任何训练样本,直接对数据进行建模。聚类分析的目标,就是在相似的基础上收集数据来分类。 在机器学习方法里,聚类属于无监督学习。

时序模型

  • 不管在哪个领域中(如金融学、经济学、生态学、神经科学、物理学等),时间序列(time series)数据都是一种重要的结构化数据形式。在多个时间点观察或测量到的任何事物,都可以形成一段时间序列。时间序列大多都是固定频率的,数据点将根据某种规律定期出现。

应用:

下个季度的商品销量或库存量是多少?明天用电量是多少?今天的北京地铁13号线的人流情况?

原理:

描述 基于时间或其他序列的 经常发生的规律或趋势,并对其建模。 与回归一样,用已知的数据预测未来的值,但这些数据的区别是 变量所处时间的不同。重点考察数据之间在 时间维度上的关联性

常见的数据分析应用场景如下:

市场营销

  • 营销响应分析建模(逻辑回归,决策树)
  • 净提升度分析建模(关联规则)
  • 客户保有分析建模(卡普兰梅尔分析,神经网络)
  • 购物蓝分析(关联分析Apriori)
  • 自动推荐系统(协同过滤推荐,基于内容推荐,基于人口统计推荐,基于知识推荐,组合推荐,关联规则)
  • 客户细分(聚类)
  • 流失预测(逻辑回归)

风险管理

  • 客户信用风险评分(SVM,决策树,神经网络)
  • 市场风险评分建模(逻辑回归和决策树)
  • 运营风险评分建模(SVM)
  • 欺诈检测(决策树,聚类,社交网络)

Python学习笔记——数据分析之工作环境准备及数据分析建模理论基础相关推荐

  1. Python学习笔记:Day1-2 开发环境搭建

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  2. Python学习笔记:集成开发环境

    文章目录 一.下载PyCharm-2020.1.1 二.下载jetbrains-agent-latest.zip 三.安装PyCharm-2020.1.1 四.启动PyCharm并注册 五.配置Pyc ...

  3. Python学习笔记——openpyxl读取工作表的数据有效性设置信息

    今天在用openpyxl读取表格信息时,需要根据表格中单元格的数据有效性设置中的序列内容来进行下一步操作判断.但是对于如何获取该序列的字符串值一点也不了解,网上查找资料只找到用DataValidati ...

  4. Python学习笔记:交互对话环境IPython

    文章目录 一.IPython安装 1.在CMD窗口利用pip安装IPython 2.安装Anaconda,自带了IPython 3.手工下载IPython之后进行安装 二.启动IPython 1.在普 ...

  5. Python学习笔记——流程控制(拉勾教育数据分析实战训练营学习笔记)

    流程控制 1 程序结构 顺序结构 ​ 按编写顺序依次执行 选择结构 ​ 根据条件选择的结果,选择执行不同的语句 循环结构 ​ 在一定条件下,反复执行某段程序 2 选择语句 2.1 if语句 语法规则 ...

  6. Python学习笔记总结

    了解了python语言后,决定以后使用python来进行各项工作,因此一直想要深入学习python.千里之行始于足下,万事开头难. 由于最近在准备写毕业论文,陆陆续续学习了Python的语法知识. P ...

  7. 【Python学习笔记—保姆版】第四章—关于Pandas、数据准备、数据处理、数据分析、数据可视化

    第四章 欢迎访问我搞事情的[知乎账号]:Coffee 以及我的[B站漫威剪辑账号]:VideosMan 若我的笔记对你有帮助,请用小小的手指,点一个大大的赞哦. #编译器使用的是sypder,其中&q ...

  8. python学习笔记1之-python简介及其环境安装

    python学习笔记之-python简介及其环境安装 最近几年python之火不用多说,最近开始利用时间自学python,在学习的过程中,按照自己的思路和理解记录下学习的过程,并分享出来,如果正好你也 ...

  9. OpenCV之Python学习笔记

    RSS订阅 登陆 注册 原文链接地址:http://www.itozi.net/19477.html OpenCV之Python学习笔记 ITOZI 发布于 2015-08-06 分类:OpenSta ...

最新文章

  1. 心得丨一文告诉你想学数据分析该读什么书、从哪本读起
  2. 厉害了,我的Python,竟然可以这么玩儿......(内含福利)
  3. OpenGL中的reshape函数(整理)
  4. 光流 | HS光流算法与LK光流算法(基于OpenCV)
  5. PHP的内存与CPU获取
  6. python数学计算函数_Python 内置函数(数学运算类,逻辑判断类)
  7. 为什么选用NACOS
  8. 在 vscode 中使用 Git :拉取、提交、克隆
  9. Team Foundation Server 2010 安装、部署与配置(四):设置 .
  10. js原型和原型链_初识JS原型/原型链/原型继承
  11. curl post json_Go Web编程--解析JSON请求和生成JSON响应
  12. python如何实现网页爬取,并翻译成中文
  13. 【Codeforces 1009C】Annoying Present
  14. 性能进阶:使用JMeter进行websocket测试【建议收藏】
  15. JavaScript将扁平化数据转为树形结构
  16. SmartUpload综合
  17. AGV|简单粗暴分类及其各自优劣势
  18. opencv 双目摄像头拍照(分别左右镜头拍照)
  19. 射影几何----利用中心和渐进方向求渐近线的方程
  20. 首字母排序侧边索引栏:WaveSideBar的简单使用

热门文章

  1. Linux命令卸载谷歌浏览器,UBUNTU16.04安装谷歌浏览器卸载firefox浏览器
  2. 日志打印利器logback的使用和配置
  3. PageHelper 分页,total总数等于每页数量的问题解决
  4. 第31章 TIM—基本定时器—零死角玩转STM32-F429系列
  5. 加强杂交和环境选择的高维目标进化算法
  6. 网盘、云盘共享文件搜索引擎链接收藏目录
  7. 仿微信联系人索引列表ListView
  8. 专用集成电路 -- 反相器
  9. NAND FLASH 内存详解与读写寻址方式
  10. Spring Boot 自定义注解支持EL表达式(基于 MethodBasedEvaluationContext 实现)