![](https://img-blog.csdnimg.cn/direct/f4d00d4392e1447e950b3047872b47e4.jpeg#pic_center)
个人主页:在线OJ的阿川
大佬的支持和鼓励,将是我成长路上最大的动力
阿川水平有限,如有错误,欢迎大佬指正
数据采集与预处理前 必看
【大数据导论】—大数据序言
【大数据导论】—大数据、人工智能、云计算、物联网、区块链序言
【大数据导论】—大数据基础知识
【大数据导论】—大数据应用
大数据步骤
- 数据采集
- 数据清洗
- 数据处理
- 数据分析
- 数据可视化
其中数据采集
通过数据采集,可以获取传感器、互联网、日志文件、企业系统等数据,再通过数据预处理(数据清洗 数据转换 数据脱敏),从而便于后一步的分析
被采集数据类型
- 结构化数据
- 半结构化数据
- 非结构化数据
大数据特点
- 数据量大
- 数据类型丰富
- 处理速度快
数据采集比较
数据采集特点
-
全面性
-
多维性
-
高效性
主要数据源
-
日志文件数据
-
传感器数据
-
互联网数据
-
企业业务系统数据
数据采集工具
-
Chukwa
-
Flume
-
Scribe
-
分布式消息订阅分发
- Kafka
- 实时在线处理低延迟
- 批量离线处理高吞吐量
- Kafka
-
ETL
实现大规模数据加载
-
网络数据采集
通过网络爬虫、API接口从网站上获取非结构化数据信息且储存为统一的本地结构化数据文件
当中网络爬虫- 爬虫节点
- 控制节点
- 资源库
控制节点与爬虫节点关系
网络爬虫的类型
-
通用网络爬虫(又称全网爬虫)
主要为
门户站点搜索引擎
大型Web服务提供商采集数据
通用网络爬虫结构
页面爬行
页面分析
连接过滤
页面数据库
URL队列
初始URL集合
爬行策略
深度优先策略
广度优先策略
-
聚焦网络爬虫(又称主题网络爬虫)
选择性爬取与预先定好的主题相关页面的网络爬虫
爬虫步骤
过滤主题无关链接
有用链接放入等待抓取URL队列
根据一定搜索策略
选择下一步抓取的网页URL
-
增量式网络爬虫
对已下载的网页采取增量式更新和只爬行新产生或已发生变化网页爬虫且保证所爬行页面是尽可能新的页面
爬行策略
- 广度优先策略
- PageRank优先策略
优点
- 有效减少数据下载量
- 及时更新已爬行的网页
- 减少时间和空间耗费
-
深层网络爬虫
利用一些关键词,将搜索表达后的页面提取出来
基本功能模块
爬行控制器
LVS控制器
解析器
响应分析器
表单分析器
表单处理器
内部数据结构- URL列表
- LVS表
爬虫框架
- Scrapy爬虫
基于Python实现的框架,该框架可以运行在Linux、Windows、macOS上,该框架速度快、扩展性强、使用简便且可以运行在本地或者云端,用户只需要开发几个模块,就可以实现爬虫效果,常常被用于监测、数据挖掘、自动化测试
市面上基于Python的爬虫框架还有Crawley、Portia、Newspaper、Python-goose、Beautiful Soup、Mechanize、Selenium、Cola
反爬机制
- 数据是宝贵的资源,拥有数据方不愿意他人获取自己的数据,为了保护企业网站和网站数据,从而运用了反扒技术
缺点:反爬机制过于严格,可能会误伤到真正的用户请求
其中数据清洗
按照一定的规则,发现并纠正含有错误值、缺失值、异常值、可疑数据,使脏的数据变成干净的数据的步骤
数据清洗步骤
- 检查数据一致性
- 处理缺失值、重复值、异常/无效值、数据类型有误数据
当中
-
处理缺失值
-
估算
- 样本均值
- 中位数
- 众数
-
整例删除
直接剔除缺失值,但可能导致有效样本量大大减少,更适合关键变量缺失,因为这样异常值或缺失值的样本比重很小
-
变量删除
变量缺失值很多且删除该变量对问题影响不大,从而减少共分析的变量数目且没有改变样本量
-
成对删除
采用一些特殊码替换缺失值且保留全部变量和样本,从而最大限度地保留可用信息
-
-
处理异常/无效值
根据每个变量合理的取值范围和相互关系,检查数据是否合乎要求 -
处理重复值
对于数据要进行重复性检验,否则重复值的存在会影响数据分析和挖掘结果的准确性
数据清洗注意事项
-
注意数据类型转换,数据类型会影响到后面的数据处理分析环节,所以要明确每个字段的数据类型
-
优先缺失值、异常/无效值和数据类型转换操作,最后重复值处理
-
在对缺失值、异常/无效值进行处理时候,要根据业务需求进行填充处理(统计值填充、零值填充、前后值填充)
-
进行数据清洗前,要对数据表进行查看,要了解表的结构,从而发现要处理的值
-
数据量大小关系也决定着数据处理方式,当总数据量较大,选择直接删除处理;当总数据量较小,认真对数据进行处理
-
当数据导入数据表之后,需要将所有列一个个进行清洗,从而保证数据处理的彻底性
其中数据转换
将数据转化成适合处理的形式
数据转换策略
- 平滑处理
- 聚集处理
- 数据泛化处理
- 数据规范化处理
- 属性构造处理
当中
-
平滑处理
除去数据中的噪声(被测量的变量随机错误的变化)
平滑处理方法
-
分箱
被平滑数据点的近邻点,对一组排序数据进行平滑处理,排序后的数据分配到若干个箱子中
分配方法有-
等高方法
每个箱子中元素的个数相同
例子:
-
等宽方法
每个箱子的间距 取值相同
例子:
-
-
回归
可以使用拟合函数对数据进行平滑处理
-
聚类
通过聚类分析方法,可以帮助发现异常数据
-
-
聚集处理
对数据进行汇总操作- 获得每月或每年总额
- 构建数据立方体
- 进行多粒度分析
-
数据泛化处理
用更抽象的概念来取代低层次的数据对象
例如:
用街道属性来取代城市、国家用年龄属性来取代年轻、中年、老年
适用场景:- 神经网络
- 基于距离计算的最近邻分类
- 聚类挖掘的数据预处理
-
数据规范化处理
将属性值按比例缩放,使之落入一个特定的区间,从而消除数值型数据因大小不一而造成结果偏差
方法:
- Max-Min
对被转换的数据进行线性转换
例子:
注意:当有新的值加入或删除的时候,可能会导致新的最大值或最小值 - Z-Score
将不同量级的数据 统一转化成 同一量级的数据,不需要知道数据集中的最大值最小值且对离群点规范化效果好,统一用计算出的真实值衡量,不受数据量级的影响,从而保证数据间的可比性,消除量级给分析带来的不便
例子:
注意:规范化处理 需要数据分布符合正态分布且该处理会消除数据具有的实际意义 - 小数定标
通过直观简单的移动数据值的小数位数来达到规范化的目的
例子:
注意:小数定标法并没有消除属性间的权重差异
- Max-Min
-
属性构造处理
根据已有属性集及构造新属性,后续数据处理直接使用新增的属性
例如:
利用质量、体积属性构建出新属性密度
其中数据脱敏
在给定的规则策略下,对敏感数据进行变换修改,从而在很大程度上解决敏感数据在非可信环境中使用问题
数据脱敏原则
当中
-
开发、测试以及大数据类业务不受脱敏的影响
-
数据一致性和有效性
-
数据漂白
抹去数据中的敏感内容 -
保持原有的数据特征
数据脱敏前后必须保证数据特征的保持
例如:身份证
-
业务规则和数据关联性
数据脱敏时数据关联性(主外键关联性、关键字段的业务语义关联性)及业务保持不变
数据脱敏方法
-
数据替换
用设置的固定虚构值替换真值
-
无效化
对数据值的截断、加密、隐藏
-
随机化
随机数据代替真值
-
偏移和取整(重要)
随机移位改变数字数据
-
掩码屏蔽
针对账户类数据(银行卡号、身份证号)部分信息进行脱敏
-
灵活编码
需要特殊脱敏规则时,可采用灵活编码满足各种可能的脱敏规则
好的,到此为止啦,祝您变得更强
想说的话
学习来源厦门大学林子雨老师的 《大数据导论》(反反复复学习了5遍哈并且做了相应的练习 然后才进行的这篇博客的书写)
实不相瞒,写的这篇博客要写六个小时以上(加上自己学习和纸质笔记,共八小时吧),很累,希望大佬支持一下
道阻且长 行则将至 |
---|
个人主页:在线OJ的阿川![]() ![]() |