数据工程流程
** 数据工程流程图**
各步骤详解与具体实现
1. 数据采集
数据采集是获取数据的第一步。以下是常见的采集方式及其实现示例:
具体实现:
-
通过 API 采集数据:
- 示例:从公开 API 获取天气数据。
import requestsapi_url = "http://api.weatherapi.com/v1/current.json" params = {"key": "your_api_key","q": "London" } response = requests.get(api_url, params=params) if response.status_code == 200:data = response.json()print(data) else:print("Failed to fetch data") -
爬取网页数据:
- 示例:使用
BeautifulSoup抓取新闻标题。
import requests from bs4 import BeautifulSoupurl = "https://news.ycombinator.com/" response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser')titles = [title.get_text() for title in soup.find_all('a', class_='storylink')] print(titles) - 示例:使用
注意事项:
- 确保数据来源合法,遵守隐私和数据采集政策。
- 针对大规模数据采集,考虑使用并发工具如
aiohttp或scrapy。
2. 数据清洗
数据清洗是数据工程中的关键环节,用于提升数据质量,便于后续分析。
具体实现:
-
去重与填充缺失值:
import pandas as pddata = pd.DataFrame({'Name': ['Alice', 'Bob', 'Alice', None],'Age': [25, 30, 25, 29],'Score': [90, None, 90, 85] })# 去除重复值 data = data.drop_duplicates()# 填充缺失值 data['Score'] = data['Score'].fillna(data['Score'].mean()) data['Name'] = data['Name'].fillna("Unknown")print(data) -
格式转换与异常值处理:
# 转换日期格式 data['Date'] = pd.to_datetime(data['Date'], errors='coerce')# 检测异常值 z_scores = (data['Score'] - data['Score'].mean()) / data['Score'].std() data = data[z_scores.abs() < 3] # 去除 Z-score 超过 3 的异常值
注意事项:
- 缺失值的填充策略应根据业务需求选择(如均值、插值、特定值填充)。
- 异常值检测可以使用统计方法(如箱型图或 Z-score)。
3. 数据分析
数据分析包括探索性数据分析(EDA)和统计建模,目的是挖掘数据特征,为决策提供依据。
具体实现:
-
生成数据统计报告:
import pandas as pddata = pd.read_csv('data.csv') print(data.describe()) # 生成统计摘要 -
可视化分析:
- 示例:使用
Seaborn绘制数据分布图。
import seaborn as sns import matplotlib.pyplot as pltsns.histplot(data['Score'], bins=30, kde=True) plt.show() - 示例:使用
-
相关性分析:
correlation = data.corr() sns.heatmap(correlation, annot=True) plt.show()
注意事项:
- 分析应紧密围绕业务目标,避免冗余或无关分析。
- 数据可视化可以提高结果的直观性。
4. 人工标注
人工标注用于生成有监督学习所需的数据集。高质量标注是构建模型的重要基础。
具体实现:
-
使用 Label Studio 配置标注任务:
- 安装与启动:
pip install label-studio label-studio start
- 安装与启动:
-
示例:文本分类标注:
- 在 Label Studio 中上传数据集,设置分类任务(如情感分类)。
注意事项:
- 确保标注人员对任务有清晰的理解,提供标注标准。
- 对复杂任务,建议进行多轮校对以提高标注一致性。
5. 数据构造
数据构造包括特征工程、数据增强和数据集划分。
具体实现:
-
数据划分:
from sklearn.model_selection import train_test_splittrain, test = train_test_split(data, test_size=0.2, random_state=42) print("训练集大小:", len(train)) print("测试集大小:", len(test)) -
数据增强:
- 示例:图像翻转与旋转。
from torchvision import transformstransform = transforms.Compose([transforms.RandomHorizontalFlip(),transforms.RandomRotation(10) ]) augmented_image = transform(image) -
特征工程:
- 示例:提取日期特征。
data['Year'] = data['Date'].dt.year data['Month'] = data['Date'].dt.month
注意事项:
- 数据增强适用于深度学习任务,需避免引入噪声。
- 特征构造应基于业务逻辑,确保对模型有正向贡献。
流程关键点总结
| 步骤 | 核心任务 | 工具与技术 |
|---|---|---|
| 数据采集 | 从数据源获取原始数据 | requests、Scrapy |
| 数据清洗 | 提高数据质量,处理缺失与异常值 | Pandas、Numpy |
| 数据分析 | 挖掘数据特征,生成统计与可视化 | Seaborn、Matplotlib |
| 人工标注 | 标注数据,为模型提供训练集 | Label Studio |
| 数据构造 | 特征工程、数据增强、划分数据集 | sklearn、torchvision |
以上流程不仅涵盖了每个阶段的理论与实践,还为具体实现提供了代码示例,便于理解和应用!
相关文章:
数据工程流程
** 数据工程流程图** #mermaid-svg-ArT55xCISSfZImy3 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-ArT55xCISSfZImy3 .error-icon{fill:#552222;}#mermaid-svg-ArT55xCISSfZImy3 .error-text{fill:#552222;stroke…...
Linux宝塔部署wordpress网站更换服务器IP后无法访问管理后台和打开网站页面显示错乱
一、背景: wordpress网站搬家,更换服务器IP后,如果没有域名时,使用服务器IP地址无法访问管理后台和打开网站页面显示错乱。 二、解决方法如下: 1.wordpress搬家后,在新服务器上,新建站点时&am…...
区块链知识体系
1. 区块链基础知识 Q: 什么是区块链? A: 区块链是一种去中心化的分布式账本技术,通过加密算法保证数据的不可篡改性和透明性。它由一系列按时间顺序链接的区块组成,每个区块包含一批交易记录。 Q: 区块链的主要特点是什么? 去…...
力扣第 66 题 “加一”
题目描述 给定一个由 非负整数组成的非空数组,表示一个整数。在该整数的基础上加一。 最高位数字在数组的首位,数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 输入: digits [1,2,3] 输出:…...
C语言数据结构与算法--简单实现队列的入队和出队
(一)队列的基本概念 和栈相反,队列(Queue)是一种先进先出(First In First Out)的线性表。只 允许在表的一端进行插入,而在另一端删除元素,如日常生活中的排队现象。队列中 允许插入的一端叫队尾…...
代码美学:MATLAB制作渐变色
输入颜色个数n,颜色类型: n 2; % 输入颜色个数 colors {[1, 0, 0], [0, 0, 1]}; createGradientHeatmap(n, colors); 调用函数: function createGradientHeatmap(n, colors)% 输入检查if length(colors) ~ nerror(输入的颜色数量与n不一…...
排序算法之冒泡排序篇
冒泡排序的思想: 是一个把元素从小到大排的一个算法思想 相邻的两个元素两两比较,大的那一个元素向后移,小的那个元素向前移 核心逻辑: 比较所有相邻的两个项,如果第一个比第二个大,就交换它们 从头开始…...
WPF ItemsControl控件
ItemsControl 是 WPF 中一个非常灵活的控件,用于显示一组数据项。它是一个基类,许多其他控件(如 ListBox, ListView, ComboBox 等)都是从 ItemsControl 继承而来。ItemsControl 的主要特点是它可以自定义数据项的显示方式…...
CentOS 上安装各种应用的命令行总结
在 CentOS 上安装各种应用的命令行方法可以通过不同的软件包管理工具完成,最常用的是 yum(CentOS 7及以前版本)和 dnf(CentOS 8及以上版本)。以下是一些常见应用的安装命令总结。 目录 1. 基本的包管理命令 2. 安装…...
Java中的JSONObject详解
文章目录 Java中的JSONObject详解一、引言二、JSONObject的创建与基本操作1、创建JSONObject2、添加键值对3、获取值 三、JSONObject的高级特性1、遍历JSONObject2、从字符串创建JSONObject3、JSONObject与JSONArray的结合使用4、更新和删除键值对 四、错误处理1. 键值存在性检…...
音视频流媒体直播/点播系统EasyDSS互联网视频云平台介绍
随着互联网技术的飞速发展,音视频流媒体直播已成为现代社会信息传递与娱乐消费的重要组成部分。在这样的背景下,EasyDSS互联网视频云平台应运而生,它以高效、稳定、便捷的特性,为音视频流媒体直播领域带来了全新的解决方案。 1、产…...
shell编程3,参数传递+算术运算
声明! 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&#…...
自动泊车“哐哐撞大墙”,小米SU7智驾功能bug缠身?
文/王俣祺 导语:小米SU7,自带热度与科技光环的“流量神车”,近日却以一种极为“狼狈”的方式闯入大众视野。多达70余辆小米SU7陷入“泊车魔咒”,瞬间在网络上炸开了锅。从“科技控”到“惹祸精”的背后,究竟藏着怎样的…...
RAG 与 HyDE
传统 RAG 与 HyDE,直观解释! 传统 RAG 系统的一个关键问题是问题在语义上与答案不相似。 考虑以下示例,您想要找到类似于“什么是 ML?”的句子。 “什么是 AI?” 可能看起来比“机器学习很有趣”更相似。 这种语义差…...
在WPF程序中实现PropertyGrid功能
使用C#开发过Windows Forms的都知道,在Windows Forms程序中,有一个PropertyGrid控件,可以用于显示对象的属性,在WPF中并没有默认提供此功能的控件,今天以一个简单的小例子,简述在WPF中借助WinForm的Propert…...
【R语言管理】Pycharm配置R语言及使用Anaconda管理R语言虚拟环境
目录 使用Anaconda创建R语言虚拟环境1. 安装Anaconda2. 创建R语言虚拟环境 Pycharm配置R语言1. 安装Pycharm2. R Language for IntelliJ插件 参考 使用Anaconda创建R语言虚拟环境 1. 安装Anaconda Anaconda的安装可参见另一博客-【Python环境管理工具】Anaconda安装及使用教程…...
.Net与C#
.NET 与 C# 的关系 .NET 是一个由微软开发的软件框架,它提供了一套用于开发、运行和部署应用程序的工具和库。C# 是一种面向对象的编程语言,它是专门为.NET平台设计的。以下是.NET与C#之间关系的详细说明: 目标平台:C# 是.NET平…...
使用ElementUI中的el-table制作可编辑的表格
在前端开发时,可能会需要用到可编辑的表格控件。一些原生的UI框架并不支持Table控件的可编辑功能,所以只能自己实现。 以下用Vue3Element-Plus进行示例开发。 一、实现可编辑的单元格 我想要实现的效果是,鼠标移动到el-table的某行时&…...
开放性技术的面试题该如何应对?
1. 上线出现问题如何解决? 步骤: 立即响应:迅速确认问题的存在和影响范围。回滚:如果问题严重影响用户,考虑立即回滚到上一个稳定版本。日志分析:查看服务器日志、应用日志和前端日志,定位问题…...
Leetcode 面试150题 88.合并两个有序数组 简单
系列博客目录 文章目录 系列博客目录88. 合并两个有序数组 简单示例 1:示例 2:示例 3:提示:问题: 88. 合并两个有序数组 简单 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n,分别表示 nums1 和 nums2 中的元素数目。 请你…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
毫米波雷达基础理论(3D+4D)
3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文: 一文入门汽车毫米波雷达基本原理 :https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...
通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器
拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...
Ubuntu系统多网卡多相机IP设置方法
目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机,交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息,系统版本:Ubuntu22.04.5 LTS;内核版本…...
一些实用的chrome扩展0x01
简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序,无论是测试应用程序、搜寻漏洞还是收集情报,它们都能提升工作流程。 FoxyProxy 代理管理工具,此扩展简化了使用代理(如 Burp…...
UE5 音效系统
一.音效管理 音乐一般都是WAV,创建一个背景音乐类SoudClass,一个音效类SoundClass。所有的音乐都分为这两个类。再创建一个总音乐类,将上述两个作为它的子类。 接着我们创建一个音乐混合类SoundMix,将上述三个类翻入其中,通过它管理每个音乐…...
深入理解 React 样式方案
React 的样式方案较多,在应用开发初期,开发者需要根据项目业务具体情况选择对应样式方案。React 样式方案主要有: 1. 内联样式 2. module css 3. css in js 4. tailwind css 这些方案中,均有各自的优势和缺点。 1. 方案优劣势 1. 内联样式: 简单直观,适合动态样式和…...
记一次spark在docker本地启动报错
1,背景 在docker中部署spark服务和调用spark服务的微服务,微服务之间通过fegin调用 2,问题,docker容器中服务器来后,注册中心都有,调用服务也正常,但是调用spark启动任务后报错,报错…...
