数据采集与预处理【大数据导论】

个人主页:在线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的阿川![]() ![]() |
相关文章:

数据采集与预处理【大数据导论】
各位大佬好 ,这里是阿川的博客,祝您变得更强 个人主页:在线OJ的阿川 大佬的支持和鼓励,将是我成长路上最大的动力 阿川水平有限,如有错误,欢迎大佬指正 数据采集与预处理前 必看 【大数据导论】—大数据序…...
白骑士的PyCharm教学进阶篇 2.2 高级调试技术
系列目录 上一篇:白骑士的PyCharm教学进阶篇 2.1 高效编码技巧 在Python开发中,调试是一个非常重要的环节。PyCharm作为一款功能强大的IDE,不仅提供了基本的调试功能,还包含了许多高级调试工具与技巧。本篇将详细介绍这些高级调试…...

[网鼎杯]2018Unfinish
使用ctf在线靶场https://adworld.xctf.org.cn/home/index。 进入靶场,发现是一个登录页面。 使用awvs进行扫描,发现存在login.php和register.php,并且register.php存在sql注入漏洞。 访问一下register.php试试,发现是一个注册页面…...
Java算法-力扣leetcode-383. 赎金信
383. 赎金信 给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以,返回 true ;否则返回 false 。 magazine 中的每个字符只能在 ransomNote 中使用一次。 示例 1:…...

使用idea对spring全家桶的各种项目进行创建
目录 1. 简介2. spring2.1 简介2.2 创建 3. springmvc3.1 介绍3.2 创建 4. springboot4.1 简介4.2 创建(仅仅就其中一种) 5. 其他:maven6. 参考链接 1. 简介 因为总是分不清spring全家桶,所以就在这里进行一个总结。 2. spring …...
FAT32、NTFS、FAT的区别
FAT(File Allocation Table) 特点 簇大小限制:FAT文件系统的簇大小是固定的,这限制了单个文件的大小和文件系统的效率。 存储效率:由于簇大小的限制,FAT文件系统在存储小文件时可能会浪费空间。 文件系统结…...

捉虫笔记(二)之 杀软请你自重点
捉虫笔记(二)之 杀软请你自重点 前一篇文章介绍了如何配置符号,这一篇文章我们来个实战。 1 现象 在我们的程序中利用robocopy进行文件的复制。但是QA反馈,只要进行了备份操作,整个进程就会卡住。但是奇怪的是只有他…...

python学习之路 - python的函数
目录 一、python函数1、函数介绍2、函数的定义3、函数的参数4、函数的返回值5、函数说明文档6、函数的嵌套调用7、变量的作用域8、综合案例9、函数与方法的区别 二、python函数进阶1、函数多返回值2、函数多种传参方式a、位置参数b、关键字参数c、缺省参数d、不定长参数 3、匿名…...

使用SpringBoot+Vue3开发项目(2)---- 设计文章分类的相关接口及页面
目录 一.所用技术栈: 二.后端开发: 1.文章分类列表渲染: 2.新增文章分类: 3.编辑文章分类: 4.删除文章分类 : 5.完整三层架构后端代码: (1)Controller层:…...
Layui---toolbar与 tool的区别
table.on(toolbar): table.on(toolbar): 这个事件监听器是用来处理表格工具栏的事件。工具栏通常位于表格的上方,可以包含添加、删除、导出等按钮。当用户与这些工具栏中的按钮交互时,比如点击一个按钮来添加新行或者进行搜索操作,…...

U-Net++原理与实现(含Pytorch和TensorFlow源码)
U-Net原理与实现 引言1. U-Net简介1.1 编码器(Encoder)1.2 解码器(Decoder)1.3 跳跃连接(Skip Connections) 2. U-Net详解2.1 密集跳跃连接2.2 嵌套和多尺度特征融合2.3 参数效率和性能2.4 Pytorch代码2.5 …...

产品心理学:啦啦队效应
电视里我们常会看见这样一个场景,一群女孩穿着短裙有说有笑地在大街上走过,把路人们都看傻了,其实单个来看,她们的长相并不出众,可是凑在一起就显得青春貌美,这就是“啦啦队效应”——cheerleader effect。…...

AC+AP组网
配置DHCP Switch1 <Huawei>sys [Huawei]undo in en [Huawei]vlan batch 10 20 30 40[Huawei]int vlan 10 [Huawei-Vlanif10]ip add 192.168.10.1 24 [Huawei-Vlanif10]quit[Huawei]int vlan 20 [Huawei-Vlanif20]ip add 192.168.20.1 24 [Huawei-Vlanif20]quit[Huawei]…...

2024.8.05(glibc的安装及MySQL的安全用户角色权限)
一、glibc的安装 1、清空/etc目录下的my.cnf [rootlocalhost ~]# ls -l /etc/my.cnf -rw-r--r--. 1 root root 570 6月 8 2017 /etc/my.cnf [rootlocalhost ~]# rm -rf /etc/my.cnf 2、删除mariadb [rootlocalhost ~]# yum -y remove mariadb [rootlocalhost ~]# find / -na…...

【精选】6款一键生成论文的软件3000字论文网站
千笔-AIPassPaPer是一款功能强大且全面的AI论文写作工具,特别适合学术研究者和学生使用。它不仅能够一键生成高质量的论文初稿,还涵盖了700多个学科专业方向,满足各种学术需求。 一、千笔-AIPassPaPer 传送门:https://www.aipape…...

如何使用 PHP Simple HTML DOM Parser 轻松获取网页中的特定数据
背景介绍 网页数据的抓取已经成为数据分析、市场调研等领域的重要工具。无论是获取产品价格、用户评论还是其他公开数据,网页抓取技术都能提供极大的帮助。今天,我们将探讨如何使用 PHP Simple HTML DOM Parser 轻松获取网页中的特定数据。PHP Simple H…...

Linux笔记 --- 传统链表
目录 链表 单向链表 单向循环链表 双向链表 设计表 初始化 在auchor后插入节点, 在auchor前插入节点 删除节点 传统链表 通过使用链表我们可以将一个数组中的数据分开到不同位置存放并使用指针指向他们,使之逻辑相连,解决了顺序存储所需要…...

C语言的编译(预处理操作)+链接
目录 翻译环境和执行环境 预定义符号 #define定义标识符 续行符\ #define定义宏 再说一下,#define其实就是替换 #和## 宏和函数的对比 命名约定 #undef 命令行定义 条件编译 文件包含 避免头文件重复引用,否则会增加代码长度 翻译环境和执行环境 在C中存…...

FFmpeg实战 - 解复用与解码
大纲目录 文章目录 前置知识音视频基础概念解复用、解码的流程分析FFMPEG有8个常用库 常见音视频格式的介绍aac格式介绍(ADTS)h264格式分析FLV和MP4格式介绍 FFmpeg解码解封装实战数据包和数据帧(AVPacket/AVFrame)AVPacket/AVFra…...

8.5作业
1.思维导图 2.提示并输入一个字符串,统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数,要求使用C风格字符串完成 #include <iostream>using namespace std;int main() {string str;cout << "请输入一个字符串&quo…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...

python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...

Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...

GraphQL 实战篇:Apollo Client 配置与缓存
GraphQL 实战篇:Apollo Client 配置与缓存 上一篇:GraphQL 入门篇:基础查询语法 依旧和上一篇的笔记一样,主实操,没啥过多的细节讲解,代码具体在: https://github.com/GoldenaArcher/graphql…...

医疗AI模型可解释性编程研究:基于SHAP、LIME与Anchor
1 医疗树模型与可解释人工智能基础 医疗领域的人工智能应用正迅速从理论研究转向临床实践,在这一过程中,模型可解释性已成为确保AI系统被医疗专业人员接受和信任的关键因素。基于树模型的集成算法(如RandomForest、XGBoost、LightGBM)因其卓越的预测性能和相对良好的解释性…...
第22节 Node.js JXcore 打包
Node.js是一个开放源代码、跨平台的、用于服务器端和网络应用的运行环境。 JXcore是一个支持多线程的 Node.js 发行版本,基本不需要对你现有的代码做任何改动就可以直接线程安全地以多线程运行。 本文主要介绍JXcore的打包功能。 JXcore 安装 下载JXcore安装包&a…...