大数据—数据分析概论
一、什么是数据分析
数据分析是指使用统计、数学、计算机科学和其他技术手段对数据进行清洗、转换、建模和解释的过程,以提取有用的信息、发现规律、支持决策和解决问题。数据分析可以应用于各种领域,包括商业、医学、工程、社会科学等。
二、数据分析步骤
数据分析的关键步骤包括定义问题和目标、数据收集、数据清洗、数据探索、数据转换和特征工程、数据建模、模型评估和验证、结果解释和报告,以及行动和监控。
1. 定义问题和目标
- 确定问题:明确要解决的问题或要回答的业务问题。
- 设定目标:定义分析的具体目标和期望的结果,如提高销售额、降低成本、优化运营等。
2. 数据收集
- 识别数据源:确定哪些数据源(内部数据库、外部数据源、调查等)可以提供所需数据。
- 收集数据:从各个数据源中提取相关数据。
3. 数据清洗
- 处理缺失值:识别并处理数据中的缺失值,可以选择删除、填补或保留缺失值。
- 处理异常值:识别并处理数据中的异常值,决定是否删除或调整这些值。
- 数据一致性检查:确保数据格式和内容的一致性,如日期格式、单位统一等。
4. 数据探索
- 统计描述:计算数据的基本统计量,如均值、中位数、标准差等。
- 数据可视化:使用图表(如直方图、散点图、箱线图等)探索数据的分布和关系。
- 发现模式和关系:通过可视化和统计方法发现数据中的模式和变量之间的关系。
5. 数据转换和特征工程
- 数据转换:对数据进行必要的转换,如归一化、标准化等。
- 特征提取:从原始数据中提取新的有用特征,提高模型的表现。
- 编码分类变量:将分类变量转换为数值形式,如独热编码(One-Hot Encoding)。
6. 数据建模
- 选择模型:根据分析目标选择适当的建模方法(如回归、分类、聚类等)。
- 训练模型:使用训练数据集构建模型。
- 调参优化:通过交叉验证和超参数调整优化模型性能。
7. 模型评估和验证
- 评估模型:使用测试数据集评估模型的性能,计算评估指标(如准确率、精确率、召回率、F1分数、均方误差等)。
- 验证模型:确保模型的泛化能力,避免过拟合或欠拟合。
8. 结果解释和报告
- 解释结果:解读模型结果,理解模型的预测和发现的规律。
- 生成报告:编写分析报告,使用可视化工具展示关键发现和建议。
- 汇报结果:向决策者和相关利益者汇报分析结果,以支持决策。
9. 行动和监控
- 实施行动:根据分析结果采取相应的业务行动。
- 持续监控:监控实施效果,收集反馈并进行持续优化。
三、数据分析常用的方法
数据分析常用的方法可以根据不同的分析目标和数据类型分为多种。
1. 描述性分析
描述性分析用于总结和描述数据的基本特征,帮助理解数据的分布和趋势。
- 统计描述:均值、中位数、众数、标准差、方差等。
- 数据可视化:直方图、条形图、折线图、散点图、箱线图等。
2. 探索性数据分析(EDA)
探索性数据分析旨在发现数据中的模式、关系和异常,通常是数据分析的初始步骤。
- 分布分析:了解数据的分布情况。
- 相关性分析:使用相关矩阵和散点图查看变量之间的关系。
- 异常值检测:识别数据中的异常值和离群点。
3. 推断性分析
推断性分析通过从样本数据推断总体特征,通常涉及假设检验和置信区间。
- 假设检验:t检验、卡方检验、ANOVA等。
- 置信区间:估计总体参数的范围。
4. 预测性分析
预测性分析用于预测未来的趋势或事件,常用于时间序列分析和回归模型。
- 回归分析:线性回归、逻辑回归、多元回归等。
- 时间序列分析:ARIMA模型、指数平滑法等。
5. 分类和聚类
这些方法用于将数据分组或分类,常用于机器学习和模式识别。
- 分类:决策树、随机森林、支持向量机(SVM)、k近邻(k-NN)、朴素贝叶斯等。
- 聚类:k均值聚类、层次聚类、DBSCAN等。
6. 关联分析
关联分析用于发现数据中变量之间的关联规则,常用于市场篮子分析。
- 关联规则:Apriori算法、FP-Growth算法等。
7. 因果分析
因果分析用于确定变量之间的因果关系,而不仅仅是相关性。
- 随机对照试验(RCT):通过随机分配实验组和对照组来确定因果关系。
- 结构方程模型(SEM):用于复杂变量关系的建模。
8. 文本分析
文本分析用于处理和分析非结构化文本数据。
- 自然语言处理(NLP):分词、词性标注、命名实体识别等。
- 情感分析:分析文本情感倾向(正面、负面、中性)。
- 主题模型:LDA(潜在狄利克雷分配)等。
9. 数据可视化
数据可视化用于直观展示数据和分析结果,帮助理解和决策。
- 静态图表:柱状图、折线图、饼图、热图等。
- 动态图表和仪表盘:交互式图表和仪表盘,常用工具如Tableau、Power BI。
10. 高级分析和机器学习
高级分析和机器学习方法用于复杂数据分析和预测。
- 监督学习:回归、分类等。
- 无监督学习:聚类、降维等。
- 深度学习:神经网络、卷积神经网络(CNN)、循环神经网络(RNN)等。
四、数据建模与算法
在数据分析中,数据建模与算法是关键步骤之一。数据建模通过数学和统计学方法来拟合数据,揭示其内在结构和规律,从而进行预测和决策支持。常用的算法可以分为监督学习和无监督学习,以及其他特定任务的算法。
数据建模步骤
-
定义问题:
- 明确建模目标,如分类、回归、聚类或预测。
-
数据准备:
- 数据清洗:处理缺失值、异常值和重复数据。
- 特征工程:选择和转换特征,包括特征缩放、编码和降维。
-
选择模型:
- 根据问题类型选择适当的算法和模型。
-
训练模型:
- 使用训练数据集构建模型,通过调整参数优化模型性能。
-
模型评估:
- 使用测试数据集评估模型性能,计算评估指标。
-
模型调优:
- 通过交叉验证和超参数调整优化模型。
-
模型部署:
- 将模型应用于实际场景,进行预测和决策支持。
常用的算法
1. 监督学习
用于有标注数据的建模,目标是学习输入特征与目标变量之间的关系。
分类算法:
- 决策树(Decision Tree):
- 基于特征的值将数据分割成不同的子集,形成树状结构。
- 随机森林(Random Forest):
- 由多棵决策树组成的集成模型,通过投票或平均预测结果。
- 支持向量机(SVM):
- 寻找最佳的超平面将不同类别分开,适用于线性和非线性分类。
- k近邻(k-NN):
- 根据样本点的最近邻居进行分类,简单但计算量大。
- 朴素贝叶斯(Naive Bayes):
- 基于贝叶斯定理的概率分类模型,假设特征之间独立。
回归算法:
- 线性回归(Linear Regression):
- 建立输入特征与目标变量之间的线性关系。
- 逻辑回归(Logistic Regression):
- 用于二分类问题,通过sigmoid函数输出概率值。
- 岭回归(Ridge Regression):
- 线性回归的正则化版本,避免过拟合。
- LASSO回归(LASSO Regression):
- 通过L1正则化选择特征,适用于特征较多的场景。
2. 无监督学习
用于无标注数据的建模,目标是揭示数据的内在结构。
聚类算法:
- k均值聚类(k-Means Clustering):
- 将数据分成k个簇,最小化簇内样本点之间的距离。
- 层次聚类(Hierarchical Clustering):
- 通过构建树状层次结构将数据逐级聚类。
- DBSCAN(Density-Based Spatial Clustering of Applications with Noise):
- 基于密度的聚类方法,能够识别噪声点和任意形状的簇。
降维算法:
- 主成分分析(PCA):
- 将高维数据投影到低维空间,最大化数据方差。
- t-SNE(t-Distributed Stochastic Neighbor Embedding):
- 高维数据的非线性降维方法,适用于可视化。
3. 其他算法
关联规则学习:
- Apriori算法:
- 用于发现频繁项集和关联规则,常用于市场篮子分析。
- FP-Growth算法:
- 通过构建频繁模式树发现频繁项集,效率较高。
时间序列分析:
- ARIMA模型(AutoRegressive Integrated Moving Average):
- 结合自回归和移动平均,适用于时间序列预测。
- 指数平滑法(Exponential Smoothing):
- 通过加权平均方法预测时间序列,适用于短期预测。
深度学习:
- 神经网络(Neural Networks):
- 模拟生物神经网络的结构,适用于各种复杂任务。
- 卷积神经网络(CNN):
- 主要用于图像数据处理,通过卷积层提取特征。
- 循环神经网络(RNN):
- 处理序列数据,适用于自然语言处理和时间序列预测。
相关文章:
大数据—数据分析概论
一、什么是数据分析 数据分析是指使用统计、数学、计算机科学和其他技术手段对数据进行清洗、转换、建模和解释的过程,以提取有用的信息、发现规律、支持决策和解决问题。数据分析可以应用于各种领域,包括商业、医学、工程、社会科学等。 二、数据分析步…...

centos7下卸载MySQL,Oracle数据库
📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️宝剑锋从磨砺出,梅花香自苦寒来 操作系统版本为CentOS 7 使⽤ MySQ…...

Spring解决循环依赖
Spring框架为了解决循环依赖问题,设计了一套三级缓存机制: 一级缓存singletonObjects:这个是最常规的缓存,用于存放完成初始化好的bean,如果某个bean已经在这个缓存了直接返回。二级缓存earlySigletonObjects:这个用于存放早期暴…...
RUST运算符重载
在 Rust 中,可以使用特征(traits)来实现运算符重载。运算符重载是通过实现相应的运算符特征(如 Add、Sub、Mul 等)来完成的。这些特征定义在 std::ops 模块中。下面是一个简单的示例,展示如何为一个自定义结…...
描述一下 Array.forEach() 循环和 Array.map() 方法之间的主要区别
Array.forEach() 和 Array.map() 都是 JavaScript 数组中常用的方法,但它们之间有一些重要的区别: 返回值:forEach():没有返回值,它只是对数组中的每个元素执行提供的函数。map():返回一个新的数组,其元素是通过对原数组的每个元素执行提供的函数后的结…...
在GEE中显示矢量或栅格数据的边界(包含样式设计)
需要保证最后显示的数据是一个 FeatureCollection 对象。 如果数据是一个 Geometry 或 Image,我们也可以使用 style 方法来设置样式并将其添加到地图上。以下是针对不同类型对象的处理方式: 1 Geometry对象 如果 table 是一个 Geometry 对象ÿ…...

django使用fetch上传文件
在上一篇文章中,我包装了fetch方法,使其携带cookie。但是之前fetch传递的是json数据,现在有了一个上传文件的需求,因此需要进行修改: const sendRequest (url, method, data) > {const csrftoken Cookies.get(cs…...
linux安装docker步骤
步骤1 脚本自动安装 curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh 步骤2 启动Docker服务: sudo systemctl start docker 步骤3 验证Docker是否正确安装并运行一个容器: sudo docker run hello-world 安装正确,则可拉取镜像&am…...

Unity DOTS技术(一)简介
文章目录 一.概述二.将会介绍的内容三.DOTS技术与传统方式的不同传统问题DOTS技术 四.插件安装 一.概述 传统的游戏开发中,如果有成千上万的物体在场景中运动,那么你一定会认为是疯了.但有了Dost技术这一些都将变成可能.如图场景中有10000个物体在同时运动,帧率即能保持在60Fp…...

深度解读ChatGPT基本原理
一、基本原理 ChatGPT是一个基于深度学习的自然语言生成模型,使用了类似于GPT(Generative Pre-trained Transformer)的架构。GPT是由OpenAI开发的一种语言模型,能够生成与输入文本相关的连续性文本。 ChatGPT的基本原理是先使用…...

python实现——分类类型数据挖掘任务(图形识别分类任务)
分类类型数据挖掘任务 基于卷积神经网络(CNN)的岩石图像分类。有一岩石图片数据集,共300张岩石图片,图片尺寸224x224。岩石种类有砾岩(Conglomerate)、安山岩(Andesite)、花岗岩&am…...
【安卓跨进程通信IPC】-- Binder
目录 BinderBinder是什么?进程空间分配进程隔离Binder跨进程通信机制模型优点AIDL常见面试题 Binder 夯实基础之超详解Android Binder的工作方式与原理以及aidl示例代码 比较详细的介绍:Android跨进程通信:图文详解 Binder机制 原理 操作系统…...

大数据之Schedule调度错误(一)
当我们在利用ooize发起整个任务的调度过程中,如果多个调度任务同时运行并且多个调度任务操作了相同的表,那么就会出现如下的错误关系: Invalid path hdfs://iZh5w01l7f8lnog055cpXXX:8000/user/admin/xxx: No files matching path hdfs://iZh5w01l7f8lnog055cpXXX:8000/user/ad…...

DiffIR论文阅读笔记
ICCV2023的一篇用diffusion模型做Image Restoration的论文,一作是清华的教授,还在NIPS2023上一作发表了Hierarchical Integration Diffusion Model for Realistic Image Deblurring,作者里甚至有Luc Van Gool大佬。模型分三个部分,…...

prometheus+alertmanager+webhook钉钉机器人告警
版本:centos7.9 python3.9.5 alertmanager0.25.0 prometheus2.46.0 安装alertmanager prometheus 配置webhook # 解压: tar -xvf alertmanager-0.25.0.linux-amd64.tar.gz tar -xvf prometheus-2.46.0.linux-amd64.tar.gz mv alertmanager-0.25.0.linu…...
ctfshow 年CTF web
除夕 Notice: Undefined index: year in /var/www/html/index.php on line 16 <?phpinclude "flag.php";$year $_GET[year];if($year2022 && $year1!2023){echo $flag; }else{highlight_file(__FILE__); } 弱比较绕过很简单,连函数都没有直…...
原型链、闭包、手写一个闭包函数、 闭包有哪些优缺点、原型链继承
什么是原型链? 原型链是一种查找规则 为对象成员查找机制提供一个方向 因为构造函数的 prototype 和其实例的 __ proto __ 都是指向原型对象的 所以可以通过__proto__ 查找当前的原型对象有没有该属性, 没有就找原型的原型, 依次类推一直找到Object( null ) 为…...
linux中SSH_ASKPASS全局变量的作用
在工作中遇到一段代码,通过SSH_ASKPASS全局变量实现了ssh登录远程IP时的密码输入,chatgpt搜索了一下,其解释大致如下所示: SSH_ASKPASS 是一个环境变量,它在 SSH 客户端需要用户输入密码时起作用。当 SSH 客户端检测到…...

9 -力扣高频 SQL 50 题(基础版)
9 - 上升的温度 -- 找出与之前(昨天的)日期相比温度更高的所有日期的 id -- DATEDIFF(2007-12-31,2007-12-30); # 1 -- DATEDIFF(2010-12-30,2010-12-31); # -1select w1.id from Weather w1, Weather w2 wheredatediff(w1.recordDate,w2.recordDat…...

TCP的重传机制
TCP 是一个可靠的传输协议,解决了IP层的丢包、乱序、重复等问题。这其中,TCP的重传机制起到重要的作用。 序列号和确认号 之前我们在讲解TCP三次握手时,提到过TCP包头结构,其中有序列号和确认号, 而TCP 实现可靠传输…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...

用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)
题目 做法 启动靶机,点进去 点进去 查看URL,有 ?fileflag.php说明存在文件包含,原理是php://filter 协议 当它与包含函数结合时,php://filter流会被当作php文件执行。 用php://filter加编码,能让PHP把文件内容…...
【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)
LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 题目描述解题思路Java代码 题目描述 题目链接:LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...
Spring Boot + MyBatis 集成支付宝支付流程
Spring Boot MyBatis 集成支付宝支付流程 核心流程 商户系统生成订单调用支付宝创建预支付订单用户跳转支付宝完成支付支付宝异步通知支付结果商户处理支付结果更新订单状态支付宝同步跳转回商户页面 代码实现示例(电脑网站支付) 1. 添加依赖 <!…...

Linux基础开发工具——vim工具
文章目录 vim工具什么是vimvim的多模式和使用vim的基础模式vim的三种基础模式三种模式的初步了解 常用模式的详细讲解插入模式命令模式模式转化光标的移动文本的编辑 底行模式替换模式视图模式总结 使用vim的小技巧vim的配置(了解) vim工具 本文章仍然是继续讲解Linux系统下的…...

网页端 js 读取发票里的二维码信息(图片和PDF格式)
起因 为了实现在报销流程中,发票不能重用的限制,发票上传后,希望能读出发票号,并记录发票号已用,下次不再可用于报销。 基于上面的需求,研究了OCR 的方式和读PDF的方式,实际是可行的ÿ…...
深入解析 ReentrantLock:原理、公平锁与非公平锁的较量
ReentrantLock 是 Java 中 java.util.concurrent.locks 包下的一个重要类,用于实现线程同步,支持可重入性,并且可以选择公平锁或非公平锁的实现方式。下面将详细介绍 ReentrantLock 的实现原理以及公平锁和非公平锁的区别。 ReentrantLock 实现原理 基本架构 ReentrantLo…...