文章目录

  • 你为什么需要数据分析能力
  • 数据分析全景图及修炼指南
  • 学习数据挖掘的最佳路径是什么
  • Python基础语法:开始你的Python之旅
  • Python科学计算:用NumPy快速处理数据
  • Python科学计算:Pandas
  • 学数据分析要掌握哪些基本概念?
  • 用户画像:标签化就是数据的抽象能力
  • 数据采集:如何自动化采集数据
  • 数据采集:如何用八爪鱼采集微博上的“D&G”评论
  • Python爬虫:如何自动化下载王祖贤海报?
  • 数据科学家80%时间都花费在了这些清洗任务上
  • 数据集成:这些大号一共20亿粉丝?
  • 数据变换:考试成绩要求正态分布合理么?
  • 数据可视化:掌握数据领域的万金油技能
  • 一次学会Python数据可视化的10种技能
  • 数据分析基础篇答疑

你为什么需要数据分析能力

1.如何从海量的数据中找到关联关系,以及如何进行价值挖掘

数据分析全景图及修炼指南

1.数据分析的三个部分

  • 数据采集,可以使用八爪鱼,也可以自己写爬虫
  • 数据挖掘,Weka(一个免费的数据挖掘工作平台)
  • 数据可视化,Matplotlib等工具

学习数据挖掘的最佳路径是什么

1.数据挖掘工作,就好像钻井一样,通过分析数据,从庞大的数据中发现规律,找到宝藏
2.数据挖掘的十大经典算法

  • 分类算法:C4.5,朴素贝叶斯(Naive Bayes),SVM,KNN,Adaboost,CART
  • 聚类算法:K-Means,EM
  • 关联分析:Apriori
  • 连接分析:PageRank
    3.数据挖掘的数学原理
  • 概率论与数理统计
  • 线性代数
  • 图论
  • 最优化方法

Python基础语法:开始你的Python之旅

1.在数据科学领域,Python 有许多非常著名的工具库:比如科学计算工具 NumPy 和 Pandas 库,深度学习工具 Keras 和 TensorFlow,以及机器学习工具 Scikit-learn,使用率都非常高

Python科学计算:用NumPy快速处理数据

1.它不仅是 Python 中使用最多的第三方库,而且还是 SciPy、Pandas 等数据科学的基础库
2.Numpy比Python原生结构节约了内存和计算时间,NumPy 和标准 Python 最大的区别在于 NumPy 中重新对数组进行了定义,同时提供了算术和统计运算,你也可以使用 NumPy 自带的排序功能,一句话就搞定各种排序算法
3.避免采用隐式拷贝,而是采用就地操作的方式。举个例子,如果我想让一个数值 x 是原来的两倍,可以直接写成 x*=2,而不要写成 y=x*2
4.在 NumPy 里有两个重要的对象

  • ndarray解决了多维数组问题
  • ufunc则是解决对数组进行处理的函数

5.ndarray

  • 含义就是多维数组,在Numpy中,维数叫轶,一维数组的轶是1
  • 每一个线性数组又是一个轴,其实轶就是描绘轴的数量
  • 常用函数
    • 函数 shape 属性获得数组的大小
    • 通过 dtype 获得元素的属性
  • NumPy里面也可以有类似JAVA对象的结构数组,通过dtype定义

6.ufunc

  • 主要是用来运算,而且计算很快
  • 常用函数
    • 两个数组之间的加、减、乘、除、求 n 次方和取余数
    • 数据中的最大值、最小值、平均值,是否符合正态分布,方差、标准差多少,我们也可以指定行或列来统计

7.NumPy排序

  • Numpy的sort函数可以直接排序
  • 默认是快速排序

Python科学计算:Pandas

1.Pandas 提供的基础数据结构 DataFrame 与 json 的契合度很高,转换起来就很方便
2.如通常用几句 Pandas 代码就可以对数据进行规整
3.Pandas的核心数据结构是Series和DataFrame
4.Series

  • 是个定长的字典序列
  • 有两个基本属性:index 和 values
  • 我们可以自己指定索引,比如下面的例子
d = {'a':1, 'b':2}
x3 = Series(d)
print x3 # output
a    1
b    2
dtype: int64

5.DataFrame

  • DataFrame类似于一个数据库表,它包括了行索引和列索引,举个例子
import pandas as pd
from pandas import Series, DataFrame
data = {'Chinese': [66, 95, 93, 90,80],'English': [65, 85, 92, 88, 90],'Math': [30, 98, 96, 77, 90]}
df1= DataFrame(data)
df2 = DataFrame(data, index=['ZhangFei', 'GuanYu', 'ZhaoYun', 'HuangZhong', 'DianWei'], columns=['English', 'Math', 'Chinese'])
print df1
print df2# outputEnglish  Math  Chinese
ZhangFei         65    30       66
GuanYu           85    98       95
ZhaoYun          92    96       93
HuangZhong       88    77       90
DianWei          90    90       80

6.Pandas 允许直接从 xlsx,csv 等文件中导入数据,也可以输出到 xlsx, csv 等文件
7.Pandas 也可以做数据清洗

  • 删除 DataFrame 中的不必要的列或行
  • 重命名列名 columns
  • 去重
  • 字段类型修改
  • 去掉字段里面的空格或符号
  • 大小写转换
  • 查找控制
  • apply自定义函数

8.数据统计,包括最大值,最小值,平均值等等,最重要的是describe函数直接输出多个统计指标
9.多个DataFrame合并

  • 指定列连接
  • 内连接
  • 左连接
  • 右连接
  • 外连接

10.在 Python 里可以直接使用 SQL 语句来操作 Pandas,具体是pandasql工具

学数据分析要掌握哪些基本概念?

1.数据预测用户购物行为属于商业智能,积累的顾客的消费行为习惯会存储在数据仓库中,通过对个体进行消费行为分析总结出来的规律属于数据挖掘

  • 商业智能的英文是 Business Intelligence,缩写是 BI
  • 数据仓库的英文是 Data Warehouse,缩写是 DW
  • 数据挖掘的英文是 Data Mining,缩写是 DM

2.数据挖掘的流程

  • 数据挖掘的一个英文解释叫KDD
  • 在数据挖掘中,分类,聚类,预测和关联分析是几个非常重要的任务
  • 分类 通过训练集(给机器做训练的,通常是人们整理好训练数据,以及这些数据对应的分类标识)得到一个分类模型,然后用这个模型可以对其他数据进行分类
  • 聚类 将数据自动聚类成几个类别,聚到一起的相似度大
  • 预测 通过当前和历史数据来预测未来趋势
  • 关联分析 发现数据中的关联规则,它被广泛应用在购物篮分析,或事务数据分析中

3.数据的格式以及质量是参差不齐的,所以我们需要对数据进行预处理

  • 数据清洗 去除重复数据,去噪声(即干扰数据)以及填充缺失值
  • 数据集成 是将多个数据源中的数据存放在一个统一的数据存储中
  • 数据变换 就是将数据转换成适合数据挖掘的形式

用户画像:标签化就是数据的抽象能力

1.将自己企业的用户画像做个白描,告诉他这些用户“都是谁”“从哪来”“要去哪”
2.用户唯一标识 设计唯一标识可以从这些项中选择:用户名、注册手机号、联系人手机号、邮箱、设备号、CookieID 等
3.用户消费行为分析

  • 用户标签:它包括了性别、年龄、地域、收入、学历、职业等。这些包括了用户的基础属性。
  • 消费标签:消费习惯、购买意向、是否对促销敏感。这些统计分析用户的消费习惯。
  • 行为标签:时间段、频次、时长、访问路径。这些是通过分析用户行为,来得到他们使用 App 的习惯。
  • 内容分析:对用户平时浏览的内容,尤其是停留时间长、浏览次数多的内容进行分析,分析出用户对哪些内容感兴趣,比如,金融、娱乐、教育、体育、时尚、科技等。
    4.有了用户画像,可以根据画像来获客、粘客和留客

数据采集:如何自动化采集数据

1.数据源包括

  • 开放数据源 比如美国人口调查局开放了美国的人口信息,谷歌金融提供了股票数据,云上贵州等等
  • 爬虫抓取
    • python爬虫,比如通过Requests爬取,XPath解析,用 Pandas 保存爬取的数据。最后通过 Pandas 再写入到 XLS 或者 MySQL 等数据库中
    • 抓取工具,比如八爪鱼等等
  • 传感器
  • 日志采集,比如友盟、Google Analysis、Talkingdata等前端埋点和后端日志

数据采集:如何用八爪鱼采集微博上的“D&G”评论

1.基本上不需要编写代码,除了在正则表达式匹配的时候会用到 XPath

Python爬虫:如何自动化下载王祖贤海报?

1.八爪鱼的优点就是上手速度快,当然也存在一些问题,比如运行速度慢、可控性差等
2.爬虫主要分为三步:打开网页、提取数据和保存数据
3.打开网页 可以使用 Requests 访问页面
4.提取数据 针对 HTML 页面,可以使用 XPath 进行元素定位,提取数据;针对 JSON 数据,可以使用 JSON 进行解析
5.我们可以使用 Pandas 保存数据,最后导出 CSV 文件
6.使用 XPath 定位,你会用到 Python 的一个解析库 lxml。这个库的解析效率非常高,使用起来也很简便,只需要调用 HTML 解析命令即可,然后再对 HTML 进行 XPath 函数的调用

from lxml import etree
html = etree.HTML(html)
result = html.xpath('//li')

7.在 Python 中有 JSON 库,可以让我们将 Python 对象和 JSON 对象进行转换

8.如果爬取的页面是动态页面,就需要关注 XHR 数据
9.但有时候,网页会用 JS 请求数据,那么只有 JS 都加载完之后,我们才能获取完整的 HTML 文件。XPath 可以不受加载的限制,帮我们定位想要的元素
10.一个快速定位 XPath 的方法就是采用浏览器的 XPath Helper 插件,使用 Ctrl+Shift+X 快捷键的时候,用鼠标选中你想要定位的元素
11.有时候当我们直接用 Requests 获取 HTML 的时候,发现想要的 XPath 并不存在。这是因为 HTML 还没有加载完,因此你需要一个工具,来进行网页加载的模拟,直到完成加载后再给你完整的 HTML,这个工具就是 Selenium 库

数据科学家80%时间都花费在了这些清洗任务上

1.Pandas纳入了大量库,可以利用这些库高效地进行数据清理工作

  • 缺失值处理,可以使用删除,也可以填充均值等
  • 空行可以进行删除
  • 可以进行单位转换,比如克转化为千克
  • 非 ASCII 字符可以采用删除或者替换的方式
  • 删除重复数据

数据集成:这些大号一共20亿粉丝?

1.数据集成就是将多个数据源合并存放在一个数据存储中(如数据仓库),从而方便后续的数据挖掘工作
2.数据集成的两种架构:ELT 和 ETL,ETL就是把L和T返过来,先落库
3.ELT Extract、Transform 和 Load

  • Extract 抽取 将数据从已有的数据源中提取出来
  • Transform 转换 对原始数据进行处理
  • 加载 结果写入目的地

4.ELT保留了原始数据,更加灵活
5.ETL工具

  • Kettle 纯 Java 编写,可以在 Window 和 Linux 上运行,不需要安装就可以使用,
  • DataX 连接了不同的数据源,以完成它们之间的转换。
  • Sqoop 主要用来在 Hadoop 和关系型数据库中传递数据

数据变换:考试成绩要求正态分布合理么?

1.数据变换是数据准备的重要环节,它通过数据平滑、数据聚集、数据概化和规范化等方式将数据转换成适用于数据挖掘的形式
2.在数据变换前,我们需要先对字段进行筛选,然后对数据进行探索和相关性分析,接着是选择算法模型(这里暂时不需要进行模型计算),然后针对算法模型对数据的需求进行数据变换,从而完成数据挖掘前的准备工作
3.数据变换是数据准备的重要环节,它通过数据平滑、数据聚集、数据概化和规范化等方式将数据转换成适用于数据挖掘的形式

  • 数据平滑 去除数据中的噪声,将连续数据离散化。这里可以采用分箱、聚类和回归的方式进行数据平滑
  • 数据聚集 对数据进行汇总,在 SQL 中有一些聚集函数可以供我们操作
  • 数据概化 用更高的概念替代更低的概念。比如说上海、杭州、深圳、北京可以概化为中国
  • 数据规范化 使属性数据按比例缩放,这样就将原来的数值映射到一个新的特定区域中。常用的方法有最小—最大规范化、Z—score 规范化、按小数定标规范化等
  • 属性构造:构造出新的属性并添加到属性集中。这里会用到特征工程的知识,因为通过属性与属性的连接构造新的属性,其实就是特征工程。比如说,数据表中统计每个人的英语、语文和数学成绩,你可以构造一个“总和”这个属性,来作为新属性。这样“总和”这个属性就可以用到后续的数据挖掘计算中。

4.数据规范化

  • Min-max 规范化 将原始数据变换到 [0,1] 的空间中
  • Z-Score 规范化 A和B都是80分,但是A满分100分,B满分500分,在知道平均分和方差的情况下,我们可以使用Z-Score来比较他俩
  • 小数定标规范化 就是通过移动小数点的位置来进行规范化。小数点移动多少位取决于属性 A 的取值中的最大绝对值。比如属性 A 的取值范围是 -999 到 88,那么最大绝对值为 999,小数点就会移动 3 位,即新数值 = 原数值 /1000。那么 A 的取值范围就被规范化为 -0.999 到 0.088。

5.Python 的 SciKit-Learn 库使用

  • 它帮我们封装了大量的机器学习算法,比如分类、聚类、回归、降维等。此外,它还包括了数据变换模块★
  • Min-max 规范化 使用函数MinMaxScaler
  • Z-Score preprocessing.scale() 函数

6.数据变换比算法选择更重要

数据可视化:掌握数据领域的万金油技能

1.商业智能分析 Tableau 和 PowerBI
2.可视化大屏类 DataV 和 FineReport
3.前端可视化组件

  • 可视化组件都是基于 Web 渲染的技术的。所以你需要了解一下几个典型的 Web 渲染技术:Canvas、SVG 和 WebGL。简单来说,Canvas 和 SVG 是 HTML5 中主要的 2D 图形技术,WebGL 是 3D 框架
  • 可视化组件: Echarts、D3、Three.js 和 AntV
    • Echarts 可以和 DataV、Python 进行组合使用,
    • D3 它提供了各种简单易用的函数,大大简化了 JavaScript 操作数据的难度
    • Three.js Three.js 是一款 WebGL 框架,封装了大量 WebGL 接口
    • AntV 是蚂蚁金服出品的一套数据可视化组件

4.在 Python 里包括了众多可视化库,比如 Matplotlib、Seaborn、Bokeh、Plotly、Pyecharts、Mapbox 和 Geoplotlib。其中使用频率最高,最需要掌握的就是 Matplotlib 和 Seaborn。
5.Seaborn 是一个基于 Matplotlib 的高级可视化效果库,针对 Matplotlib 做了更高级的封装,让作图变得更加容易
6.少量的数据还是喜欢用EXCEL来画简单的图,数据量大的话基本就用matplotlib和seaborn了

一次学会Python数据可视化的10种技能

1.在 Matplotlib 中,我们经常会用到 pyplot 这个工具包,它包括了很多绘图函数
2.我们可以用Seaborn绘制
2.主要视图包括了散点图、折线图、直方图、条形图、箱线图、饼图、热力图、蜘蛛图、二元变量分布和成对关系

  • 散点图 展示两个变量之间的关系
  • 折线图 用来表示数据随着时间变化的趋势
  • 直方图 长度代表数量,横坐标是数量区间
  • 条形图 长条形的长度表示类别的频数,宽度表示类别
  • 箱线图 最大值 (max)、最小值 (min)、中位数 (median) 和上下四分位数 (Q3, Q1)。它可以帮我们分析出数据的差异性、离散程度和异常值等
  • 饼图 可以显示每个部分大小与总和之间的比例
  • 热力图 不同的颜色代表不同大小的值
  • 蜘蛛图 王者荣耀的玩家做一个战力图,指标一共包括推进、KDA、生存、团战、发育和输出
  • 二元变量分布 如果我们想要看两个变量之间的关系,散点图也是二元变量分布
  • 成对关系 描绘一个数据集两两关系

3.Matplotlib 和 Seaborn 工具包的使用。他们两者之间的关系就相当于 NumPy 和 Pandas 的关系

数据分析基础篇答疑

1.axis=0 代表跨行(实际上就是按列),axis=1 代表跨列(实际上就是按行)
2.结构数组中S21代表32 个字符的字符串,中文可以把类型设置为 U32
3.PyCharm 中无法 import numpy 的问题

  • PyCharm 会给每一个新建的项目都是一个全新的虚拟环境
  • 在这个环境下,默认的包只有 pip、setuptools 和 wheel
  • 需要手动点击右侧的 + 号,对 numpy 进行添加

4.学一些算法的时候比如 SVM,这些算法都有封装,直接使用即可。在 python 的 sklearn 中就是一行语句的事,大部分从 0 开始学数据挖掘的人来说,可以淡化公式,重点理解使用场景和概念

5.数据变化相关

  • 数据规范化

    • 数据归一化,就是让数据分布在[0,1]等区间上
    • 数据标准化,让数据正态分布
  • 进行数据规范化有两个作用:一是让数据之间具有可比较性,二是加快后续算法的迭代收敛速度
  • 不论是采用哪种数据规范化方法,规范化后的数值都会在同一个数量的级别上,这样方便后续进行运算
  • 大部分算法需要先进行数据规范化,尤其是针对距离相关的运算,比如在 K-Means、KNN 以及聚类算法中,我们需要有对距离的定义,在构造决策树的时候,可以不用提前做数据规范化,因为我们不需要关心特征值的大小维度,也没有使用到梯度下降来做优化

【数据分析46讲】基础篇相关推荐

  1. 视频教程-C# For Unity系列之基础篇-Unity3D

    C# For Unity系列之基础篇 二十多年的软件开发与教学经验IT技术布道者,资深软件工程师.具备深厚编程语言经验,在国内上市企业做项目经理.研发经理,熟悉企业大型软件运作管理过程.软件架构设计理 ...

  2. python基础篇{控制流语句}

    控制流语句 条件控制 单条件判断 多条件判断 练习 循环控制 while语句 for语句 range函数 练习 break 和 continue 语句 break语句 continue  python ...

  3. 视频教程-Power Pivot商业智能数据分析(第1季 基础篇)-Office/WPS

    Power Pivot商业智能数据分析(第1季 基础篇) Office培训讲师,51CTO金牌讲师,从2005开始从事Office培训至今.擅长Excel.Word.PowerPoint等软件的应用, ...

  4. 测试52讲学习总结之测试基础篇

    测试基础篇 一.测试文档 1. 软件缺陷报告 要求: 把发现的缺陷准确无歧义地表达清楚,不易过长 "准确无歧义地表达"意味着,开发工程师可以根据缺陷报告快速理解缺陷,并精确定位问题 ...

  5. MySQL学习笔记(基础篇未完待补充)

    一.MySQL数据库基 目录 一.MySQL数据库基础篇 1.数据库概述与MySQL安装篇 第1章:数据库概述 1.为什么要使用数据库 2. 数据库与数据库管理系统 2.2 数据库与数据库管理系统的关 ...

  6. 计算机编程书籍-笨办法学Python 3:基础篇+进阶篇

    编辑推荐: 适读人群 :本书适合所有已经开始使用Python的技术人员,包括初级开发人员和已经升级到Python 3.6版本以上的经验丰富的Python程序员. "笨办法学"系列, ...

  7. Puppet基础篇9-Puppetmaster多环境配置

    Puppet基础篇9-Puppetmaster多环境配置 零基础学习Puppet自动化配置管理系列文档 扩充现有架构环境是对一个企业成长的见证 将基础环境模块部署到puppetmaster端之后就可以 ...

  8. 鸟哥的Linux私房菜(基础篇)- 第八章、Linux 磁盘与文件系统管理

    第八章.Linux磁盘与文件系统管理 最近升级日期:2009/08/30 系统管理员很重要的任务之一就是管理好自己的磁盘文件系统,每个分割槽不可太大也不能太小,太大会造成磁盘容量的浪费,太小则会产生文 ...

  9. python包括哪些部分_第一部分 Python基础篇

    第⼀一部分 Python基础篇 1. 为什什么学习Python? 朋友推荐,比较简单易学,生态圈比较强大 发展趋势:人工智能.数据分析 2. 通过什什么途径学习的Python? 廖雪峰.网络博客.相关 ...

最新文章

  1. 宝塔Linux, 反向代理服务器, 开启WSS
  2. Apache ZooKeeper - 使用源码启动ZK集群模式
  3. java rsa ssh2_给定两个SSH2密钥,如何检查它们是否属于Java中的同一密钥对?
  4. linux作业(第四章练习题)
  5. 今天,我种下了一朵小蓝花
  6. Oracle开发常用知识
  7. 另辟蹊径:从其他角度去解决数据库问题
  8. KubeCon 2018 参会记录 —— FluentBit Deep Dive 1
  9. 前端本地使用线上数据
  10. sublime text 3 3143
  11. mysql适配器_MySQL适配器之PyMySQL的详细介绍
  12. comsol和java_COMSOL java API——编译comsol模型java文件
  13. 计算机黑屏但是有鼠标,电脑黑屏有鼠标箭头怎么办
  14. 计步算法 睡眠 心率 学习 PPG传感器(转))
  15. 除了性以外,有没有快速、高效的释放压力、清空大脑的方式?
  16. realme 真我Q2系列手机及多款AIoT生态新品汇总盘点
  17. 深度学习epochs、batch、batch_size和iteration的区分
  18. cont_c指令_SFB41_CONT_C输入和输出参数
  19. 图片怎么做雕刻路径_精雕图怎么做路径
  20. 我是郭敬明小说里手握信用金卡的银行客户,但并没有变成有头有脸的社会土豪

热门文章

  1. RAW图像数据到RGB
  2. 电脑耳机电流声的消除2021-09-11
  3. phpMyAdmin 4.8.1 远程文件包含 CVE-2018-12613 漏洞复现
  4. vmware 虚拟机安装成功,但没有虚拟网卡的解决方法
  5. 电商平台对接第三方快递鸟物流轨迹查询api接口申请对接全流程
  6. 一篇解析论文MapReduce
  7. vue 引入富文本编辑器(巨简单)
  8. 哈工大2019年春算法设计与分析期末复习
  9. 利用蒙特卡洛(Monte Carlo)方法计算π值
  10. 利用mathematica画多个函数图像