- 博客(48)
- 收藏
- 关注
原创 数据分析项目
使用 pandas 库读取“双十一淘宝美妆数据.csv”文件,通过 head()、info()、shape、describe() 等方法查看数据前五行、数据特征、数据量以及数字类型特征的统计量 ,掌握数据基本结构和特征分布。使用 pandas 库读取“双十一淘宝美妆数据.csv”文件,通过 head()、info()、shape、describe() 等方法查看数据前五行、数据特征、数据量以及数字类型特征的统计量 ,掌握数据基本结构和特征分布。
2025-05-07 09:03:57
320
原创 数据科学与计算
Seaborn 的设计目标是简化统计数据可视化的过程,提供高级接口和美观的默认主题,使得用户能够通过少量的代码实现复杂的图形。格式为sns.set_theme(style="whitegrid", context="paper")格式为sns.set_theme(style="whitegrid", context="paper")sns.violinplot()用于显示分布的形状和密度估计,结合了箱线图和核密度估计。sns.set_theme() 可以选择不同的主题和模板。深色主题,没有网格。
2025-05-07 08:48:18
399
原创 Matplotlib 饼图
除了数据框之外,我们还可以使用 Pandas 中的 Series 对象绘制直方图。当你有一个图像数据(如一个 NumPy 数组)并希望在绘图区域显示它时。plt.imshow() 和 plt.show() 的区别是什么?当你完成了所有绘图命令,并希望将图形显示在屏幕上时。imshow() 可以显示彩色图像。imshow() 可以显示灰度图像。imshow() 可以显示热力图。imshow() 可以显示矩阵。用于在绘图区域显示一幅图像。用于显示所有已创建的图形。pie():绘制饼图。
2025-05-06 22:36:58
244
原创 Matplotlib的介绍
如果我们不指定 x 轴上的点,则 x 会根据 y 的值来设置为 0, 1, 2, 3..N-1。绘制一条不规则线,坐标为 (1, 3)、(2, 8)、(6, 1)、(8, 10)绘制坐标 (1, 3) 和 (8, 10) 的两个点。绘制坐标 (1, 3) 到 (8, 10) 的线。plot() :用于画图,它可以绘制点和线。plot() :用于画图,它可以绘制点和线。plot() :用于画图,它可以绘制点和线。plot() :用于画图,它可以绘制点和线。plot() :用于画图,它可以绘制点和线。
2025-04-28 20:44:39
295
原创 Spark 技术体系深度总结
RDD具备容错机制,通过血统(Lineage)记录数据变换历史,在数据丢失时能快速重建,相比Hadoop MapReduce的中间数据磁盘落盘机制,显著提升计算效率。Spark采用DAG(有向无环图)调度器优化任务执行流程,将用户提交的作业(Job)分解为Stage和Task,通过宽窄依赖(Narrow/Wide Dependency)判断数据分区依赖关系,减少数据混洗(Shuffle)开销,提升整体执行效率。• 扩展应用:支持窗口计算、状态管理,适用于实时监控、欺诈检测等场景。
2025-04-27 16:08:44
697
原创 Spark-Streaming核心编程
Window Operations 可以设置窗口的大小和滑动窗口的间隔来动态的获取当前 Steaming 的允许状态。所有基于窗口的操作都需要两个参数,分别为窗口时长以及滑动步长。使用 updateStateByKey 需要对检查点目录进行配置,会使用检查点来保存状态。定义状态更新函数,用此函数阐明如何使用之前的状态和来自输入流的新值对状态进行更新。定义状态,状态可以是一个任意的数据类型。
2025-04-27 16:00:18
440
原创 Spark-Streaming核心编程
topic 是逻辑上的概念,而 partition 是物理上的概念,每个 partition 对应于一个 log 文件,该 log 文件中存储的就是 producer 生产的数据。DStream 上的操作与 RDD 的类似,分为 Transformations(转换)和 Output Operations(输出)两种,此外转换操作中还有一些比较特殊的原语,如:updateStateByKey()、transform()以及各种 Window 相关的原语。写数据,实际上就是写log, 追加日志。
2025-04-25 10:39:10
820
原创 Kafka基本概念
Apache Kafka是分布式发布-订阅消息系统(消息中间件)。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。就像是一个放鸡蛋的篮子。生产者生产鸡蛋放到篮子中,消费者从篮子中消费鸡蛋消息系统Kafka的优势Kafka就是一个分布式的用于消息存储的消息队列。一般用于大数据的流式处理中。一些常见的中间件:ActiveMQ,IBMMQ,RabbitMQ,ZMQ 但都不是分布式的。
2025-04-23 19:23:36
460
原创 【无标题】
Spark Streaming 用于流式数据的处理。Spark Streaming 支持的数据输入源很多,例如:Kafka、Flume、Twitter等,以及和简单的 TCP 套接字等等。数据输入后可以用 Spark 的高度抽象原语如:map、reduce、join、window 等进行运算。而结果也能保存在很多地方,如 HDFS,数据库等。Spark-Streaming的特点:易用、容错、易整合到spark体系。
2025-04-22 13:03:42
425
原创 Spark_SQL
Spark SQL CLI 可以很方便的在本地运行 Hive 元数据服务以及从命令行执行查询任务。在 Spark 目录下执行如下命令启动 Spark SQL CLI,直接执行 SQL 语句,类似于 Hive 窗口。Spark Thrift Server 是 Spark 社区基于 HiveServer2 实现的一个 Thrift 服务。旨在无缝兼容HiveServer2。运行 Spark beeline(了解)运行Spark-SQL CLI。Spark-SQL连接Hive。
2025-04-21 19:27:39
254
原创 Spark-SQL核心编程
Spark SQL CLI 可以很方便的在本地运行 Hive 元数据服务以及从命令行执行查询任务。在 Spark 目录下执行如下命令启动 Spark SQL CLI,直接执行 SQL 语句,类似于 Hive 窗口。Spark SQL 的默认数据源为 Parquet 格式。如果保存不同格式的数据,可以对不同的数据格式进行设定。Spark SQL 可以配置 CSV 文件的列表信息,读取 CSV 文件,CSV 文件的第一行设置为。是加载数据的通用方法。如果读取不同格式的数据,可以对不同的数据格式进行设定。
2025-04-16 20:31:06
446
原创 Spark-SQL核心编程
除此之外,用户可以设定自己的自定义聚合函数。Spark3.0之前我们使用的是UserDefinedAggregateFunction作为自定义聚合函数,从 Spark3.0 版本后可以统一采用强类型聚合函数 Aggregator。强类型的 Dataset 和弱类型的 DataFrame 都提供了相关的聚合函数, 如 count(),
2025-04-15 11:40:40
223
原创 spark-SOL简介
在 IDEA 中开发程序时,如果需要 RDD 与 DF 或者 DS 之间互相操作,那么需要引入 import spark.implicits._ 这里的 spark 不是 Scala 中的包名,而是创建的 sparkSession 对象的变量名称,所以必 须先创建 SparkSession 对象再导入。DataFrame 是 DataSet 的特列,DataFrame=DataSet[Row] ,所以可以通过 as 方法将 DataFrame 转换为 DataSet。DataSet 是强类型的。
2025-04-14 17:58:00
703
原创 大数据技术之Spark Core编程
在 Driver 程序中定义的变量,在Executor 端的每个 Task 都会得到这个变量的一份新的副本,每个 task 更新这些副本的值后,传回 Driver 端进行 merge。广播变量用来高效分发较大的对象。比如,如果你的应用需要向所有节点发送一个较大的只读查询表,行动算子就是会触发action的算子,触发action的含义就是真正的计算数据。分区的数据通过初始值和分区内的数据进行聚合,然后再和初始值进行分区间的数据聚合。聚集 RDD 中的所有元素,先聚合分区内数据,再聚合分区间数据。
2025-04-11 10:46:24
294
原创 Spark Core
从 shuffle 的角度:reduceByKey 和 groupByKey 都存在 shuffle 的操作,但是 reduceByKey可以在 shuffle 前对分区内相同 key 的数据进行预聚合(combine)功能,这样会减少落盘的数据量,而 groupByKey 只是进行分组,不存在数据量减少的问题,reduceByKey 性能比较高。该操作用于排序数据。当 spark 程序中,存在过多的小任务的时候,可以通过 coalesce 方法,收缩合并分区,减少分区的个数,减小任务调度成本。
2025-04-10 14:23:39
604
原创 大数据技术之SPARK
宽依赖表示同一个父(上游)RDD 的 Partition 被多个子(下游)RDD 的 Partition 依赖,会引起 Shuffle,总结:宽依赖我们形象的比喻为多生。只有 Key-Value 类型的 RDD 才有分区器,非 Key-Value 类型的 RDD 分区的值是 None。不可变:RDD 封装了计算逻辑,是不可以改变的,想要改变,只能产生新的 RDD在新的 RDD 里面封装计算逻辑。RDD 是计算模型的封装,当需求中需要将多个计算模型进行组合时,就需要将多个 RDD 建立依赖关系。
2025-04-09 17:44:26
762
1
原创 spark安装过程
Spark安装解压修改环境变量完成安装 启动Local环境。进入spark-local中,执行如下命令bin/spark-shell
2025-04-08 10:58:58
216
原创 大数据技术之Scala
(4) 扁平化+映射 注:flatMap 相当于先进行 map 操作,在进行 flatten 操作集合中的每个元素的子元素映射到某个函数并返回新集合。Reduce 简化(归约) :通过指定的逻辑将集合中的数据进行聚合,从而减少数据,最终获取结果。单词计数:将集合中出现的相同的单词,进行计数,取计数排名前三的结果。遍历一个集合并从中获取满足指定条件的元素组成一个新的集合。将集合中的每一个元素映射到某一个函数。按照指定的规则对集合的元素进行分组。(2) 转化/映射(map)(6) 简化(归约)
2025-04-08 09:44:27
278
原创 大数据技术之SCALA
基于函数的排序,通过一个 comparator 函数,实现自定义排序的逻辑。(5)集合间合并:将一个整体拆成一个一个的个体,称为扁平化。说明:二维数组中有三个一维数组,每个一维数组中有四个元素。对一个集合进行自然排序,通过传递隐式的Ordering。(2)创建一个 List(数据有顺序,可重复)对一个属性或多个属性进行排序,通过它的类型。(1)List 默认为不可变集合。(4)List 增加数据。创建不可变集合 Map。不可变数组转可变数组。可变数组转不可变数组。(3)遍历 List。
2025-04-07 17:16:32
978
原创 大数据技术之Scala
第二种,一个类(Sub)混入的两个 trait(TraitA,TraitB)中具有相同的具体方法,且两个 trait 继承自相同的 trait(TraitC),及所谓的“钻石问题”,解决这类冲突问题,Scala 采用了特质叠加的策略。第一种,一个类(Sub)混入的两个 trait(TraitA,TraitB)中具有相同的具体方法,且两个 trait 之间没有任何关系,解决这类冲突问题,直接在类(Sub)中重写冲突方法。4)可变集合,就是这个集合可以直接对原对象进行修改,而不会返回新的对象。
2025-04-03 10:17:12
442
原创 大数据技术之Scala
Scala 有两种包的管理风格,一种方式和 Java 的包管理风格相同,每个源文件一个包(包名和源文件所在路径不要求必须一致),包名用“.”进行分隔以表示包的层级关系,如com.zpark.scala。在scala中可以为每个包定义一个同名的包对象,定义在包对象中的成员,作为其对应包下所有 class 和 object 的共享变量,可以被直接访问。封装就是把抽象出的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。在其作用范围内都可以使用。
2025-04-02 17:11:00
659
原创 大数据技术之Scala
(2) 类型省略之后,发现只有一个参数,则圆括号可以省略;解决问题,分解对象,行为,属性,然后通过对象的关系以及行为的调用来解决问题。返回值类型如果能够推断出来,那么可以省略(:和返回值类型一起省略)如果函数无参,但是声明了参数列表,那么调用时,小括号,可加可不加。如果函数没有参数列表,那么小括号可以省略,调用时小括号必须省略。如果不关心名称,只关心逻辑处理,那么函数名(def)可以省略。(1) 参数的类型可以省略,会根据形参进行自动的推导。如果函数体只有一行代码,可以省略花括号。
2025-04-01 11:27:13
310
原创 大数据技术之Scala
(4) 因为 while 中没有返回值,所以当要用该语句来计算并返回结果时,就不可避免的使用变量,而变量需要声明在 while 循环的外部,那么就等同于循环的内部对外部的变量造成了影响,所以不推荐使用,而是推荐使用 for 循环。在Scala的for推导式中,引入变量是指在循环过程中定义额外的临时变量,这些变量的值依赖于循环变量或其他已定义的变量,用于更灵活地处理数据和实现复杂逻辑。- 原理:在循环内部通过条件判断,当元素为偶数时,不执行打印语句(相当于跳过 ),仅当元素为奇数时执行打印操作。
2025-03-31 16:54:20
424
原创 图像识别与应用技术
for 循环中的 yield 会把当前的元素记下来,保存在集合中,循环结束后将返回该集合。如果被循环的是 Map,返回的就是Map,被循环的是 List,返回的就是 List,以此类推。与Java对比:Scala 的算术操作符如 +(加法)、-(减法)、*(乘法)、/(除法)、%(取余) 以及位操作符 &(按位与)、|(按位或)、^(按位异或)、>>>(无符号右移)、<<< 等 ,和Java在功能上类似。◦在Scala中,to 用于创建一个包含起始值和结束值的整数范围,是闭区间。If else(单分支)
2025-03-28 11:05:27
426
原创 图像识别与应用技术
Scala和Java能无缝相互调用代码,Scala还可使用Java标准库及框架,借助其丰富生态。图中的关系图展示了Java和Scala代码在JVM上的编译执行过程,以及两者代码相互调用的情况。扩展性:Scala设计上考虑到领域特定开发需求,提供独特语言机制,能以库的形式添加新语言结构,如方法可作操作符,能自动构造闭包。类型系统:通过编译时检查保障代码安全一致,支持泛型类、协变逆变等多种特性,还具备强大的类型推断、泛型编程及类型系统扩展能力。例如:一只狗的状属性有:颜色,名字,行为有:叫、跑、吃等。
2025-03-27 10:24:04
354
原创 图像识别技术与应用
特征图生成与组合:各层通过卷积操作统一得到64个特征图,一共有5组这样的操作,5×64=320 ,最终将这些特征组合起来得到全部特征,用于后续的处理。特征拼接操作:模型引入了特征拼接操作,不同于以往常用的加法操作,而是将不同层的特征进行拼接融合。图中展示了由下采样、上采样、跳跃连接和卷积操作构成的网络结构,特征图之间的连接更为复杂。整体结构:呈现U型结构,左侧是下采样路径(编码过程),右侧是上采样路径(解码过程)高阶特征整合:利用上采样操作来整合高阶特征,这些高阶特征具有较大的感受野和全局性。
2025-03-21 10:36:51
260
原创 图像识别技术与应用
转置卷积概念:介绍了反卷积输入为22的矩阵 Y = [y_0, y_1, y_2, y_3] ,输出为44的矩阵 X = [x_0, ..., x_{16}] ,卷积核为3*3。•卷积与反卷积关系:二者是转置关系,通过展开卷积运算的矩阵形式可以看出,反卷积是对卷积运算矩阵的转置操作,从而实现上采样等功能,在图像分割等任务中用于恢复图像分辨率。基本原理:利用深度学习等技术,让计算机理解图像中的语义信息,将图像分割成具有语义意义的不同部分。典型图像分割网络:提到卷积网络的编码器部分,但未展开讲解。
2025-03-20 10:22:02
277
原创 YOLO系列-V4
Random Erase(随机擦除):这是计算机视觉领域中常用的数据增强技术,通过用随机值或者训练集的平均像素值来替换图像中的某个区域,增加数据的多样性,让模型在训练时能适应图像局部缺失的情况,提升泛化能力。Hide and Seek(捉迷藏):同样是数据增强方法,依据设定的概率随机隐藏图像中的一些补丁区域,使模型学习到图像不同部分的特征,增强对图像特征的提取和识别能力。引入了自底向上的路径,使得底层信息更容易传到顶部,形成了一个捷径,相比ResNet等网络中较深的路径,能更高效地传递信息。
2025-03-14 10:30:55
342
原创 YOLOV3
数量变化:YOLO - V2中选用了5个先验框,而YOLO - V3增加到了9种 ,先验框数量的增加有助于更准确地匹配不同形状和大小的目标物体。整体融合:该架构融合了当时目标检测领域的多种经典做法,在保证检测速度的同时,提高了检测精度。多尺度检测:多尺度检测有助于检测不同大小的目标,先验框能提高目标定位的准确性。不同特征图的先验框:在不同尺度的特征图上分配了不同尺寸的先验框。网络组成:不同数量的残差块组合,得到不同维度的特征图输出。多尺度特征图 尺度因子 损失函数中的尺度相关项。
2025-03-13 10:23:22
169
原创 YOLOV1和YOLOV2
融合之前特征捕捉小目标;4. 最后,根据边界框、置信度和类别概率,筛选出最终的检测结果,也就是用不同颜色框标记出图像中的各个物体。NMS的作用是在目标检测中,当一个目标被多个边界框检测到时,保留置信度最高的边界框,抑制其他重叠的边界框。2. 每个网格会预测多个边界框及其置信度 ,置信度表示该框内存在物体的可能性以及框的准确性。首先将输入图像划分为S×S的网格 ,若物体的中心落在某个网格中,该网格就负责检测这个物体。3. 同时,每个网格还会预测一个类别概率图,表示该网格所检测到的物体属于不同类别的概率。
2025-03-12 16:40:41
207
原创 图像识别技术与应用
特点:场景丰富多样,涵盖自然、城市、室内等各种场景,目标具有不同尺度、姿态和遮挡情况,标注信息全面,包括目标类别、边界框、分割掩码等。anchor-base anchor-base是自顶向下的 类似于传统方法,滑动窗口法穷举出许多,然后再根据置信度之类的进行筛选。特点:图像分辨率适中,标注质量高,在目标检测发展早期是重要的基准数据集,推动了早期目标检测算法的研究和发展。P-R曲线:以召回率为横轴,准确率为纵轴绘制的曲线,直观展示模型在不同召回率下的准确率变化。Two stage 算法。
2025-03-11 10:32:53
339
原创 图像识别课后总结
4.Pytorch数据处理工具箱讲解了Pytorch数据处理工具箱,包括utils.data中的Dataset和DataLoader、torchvision中的transforms和ImageFolder,以及TensorBoard可视化工具的使用。2.Pytorch工具应用介绍了Pytorch中构建神经网络的工具,如nn.Module和nn.functional,以及多种构建模型的方式,还介绍了自定义网络模块和训练模型的流程。在接触图像识别技术的过程中,我被其巨大的潜力和广泛的应用前景深深震撼。
2025-03-10 17:58:56
303
原创 手写数字识别项目
背景:借助PyTorch的nn工具箱,在PyTorch1.5环境(GPU或CPU)下,利用MNIST数据集完成手写数字识别,以直观理解神经网络。数据预处理与迭代器创建:运用torchvision进行预处理,用torch.utils建立数据迭代器。数据下载:通过PyTorch内置的mnist函数下载MNIST数据集。模型实例化与配置:实例化模型,并定义损失函数和优化器。模型构建:基于nn工具箱搭建神经网络模型。可视化源数据:对原始数据进行可视化展示。结果可视化:可视化展示训练结果。forward 方法。
2025-03-06 12:25:31
2995
原创 机器学习简介
目的与优势:提出集成学习算法主要是为了提高机器学习系统的稳定性与精确度,其优势在于能提高预测准确性、泛化能力和处理复杂问题的能力,在图像识别、自然语言处理、金融预测、基因分类、图像分割、视频检索等诸多领域均有应用。boosting方法。
2025-03-05 17:40:21
138
原创 代码分析解释
net.parameters():在PyTorch中,每个继承自nn.Module的模型(这里假设net是这样的模型实例)都有parameters)方法,该方法返回一个可迭代对象,其中的每个元素代表模型中的一层参数,比如权重和偏置。paras_summary函数:接受输入尺寸input_size和模型model作为参数,用于汇总模型各层参数信息。register_hook内部函数:用于为模型的每一层注册前向传播钩子。hook内部函数:在每次前向传播时被调用,获取层的相关信息。2定义损失函数和优化器。
2025-03-04 14:16:05
254
原创 代码运行解析
3. 加载训练集和测试集:使用torchvision.datasets.CIFAR10加载CIFAR10数据集的训练集和测试集,并通过torch.utils.data.DataLoader创建数据加载器,设置批量大小、是否打乱数据和加载数据的进程数。1. 导入必要的库:导入torch.nn和torch.nn.functional用于构建神经网络,同时检测是否有可用的CUDA设备,以便将模型部署到GPU上加速训练。4. 计算并打印模型参数总数:通过遍历模型的所有参数,计算并输出模型中可训练参数的总数。
2025-03-03 17:48:01
404
原创 图像分类项目
• 模型精度下降:训练过程中,数据量不足易使模型陷入局部最优解,无法找到全局最优的参数组合。模型泛化能力受限:深度学习等机器学习模型依赖大量训练数据学习丰富特征,样本量过少时,模型仅能学到有限特征,面对未知数据时处理能力不足,难以将在训练数据中学到的模式应用到新数据上。可以用来表示模型的精度,即模型识别正确的个数/样本的总个数。召回率:又称为查全率,表示模型正确识别出为正类的样本的数量占总的正类样本数量的比值。准确率:又称为查准率,表示在模型识别为正类的样本中,真正为正类的样本所占的比例。
2025-02-28 10:49:32
339
原创 PyTorch数据处理工具箱
TensorBoard:专为TensorFlow和PyTorch设计的可视化工具,能可视化模型结构、训练指标(如准确率、损失值)、张量分布等,便于监控和调试深度学习模型训练过程。Seaborn:基于Matplotlib的高级可视化库,提供更美观、主题化的图表样式,擅长绘制统计图形,像热力图、箱线图等,有助于探索数据分布和变量间关系。Visdom:Facebook开发的用于可视化神经网络训练的工具,可实时绘制各种图表,展示图像、文本等数据,支持在浏览器中查看,方便远程监控训练。
2025-02-27 09:32:06
306
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅