- 博客(38)
- 收藏
- 关注
原创 【无标题】
avg_price=data.groupby('店名')['销售额'].sum()/data.groupby('店名').sale_count.sum() ###每个品牌售出的商品的平均单价。data.groupby('店名').sale_count.sum().sort_values().plot.bar()data.groupby('店名')['销售额'].sum().sort_values().plot.bar()plt.ylabel('售出商品的平均单价' , fontsize = 15)
2025-05-06 11:40:27
722
原创 【无标题】
是 Python 的绘图库,它能让使用者很轻松地将数据图形化,可以用来绘制各种静态,动态,交互式的图表。grid():来设置图表中的网格线。xlabel()、ylabel() :设置 x 轴和 y 轴的标签。subplot():用于绘制多个子图,在绘图时需要指定位置。plot()中的 marker 参数:定义一些不一样的标记。plot() :用于画图,它可以绘制点和线。grid():来设置图表中的网格线。scatter():绘制散点图。scatter():绘制散点图。scatter():绘制散点图。
2025-04-28 18:01:58
227
原创 spark总结
DStream转换:DStream 上的操作与 RDD 的类似,分为 Transformations(转换)和 Output Operations(输出)两种,此外转换操作中还有一些比较特殊的原语,如:updateStateByKey()、transform()以及各种 Window 相关的原语。RDD(弹性分布式数据集):Spark 的核心数据结构,是一个容错、并行的数据集合,可以进行各种转换(如 map、filter、join 等)和动作操作(如 collect、count、save 等)。
2025-04-27 19:31:33
341
原创 Spark-Streaming
与 RDD 中的惰性求值类似,如果一个 DStream 及其派生出的 DStream 都没有被执行输出操作,那么这些 DStream 就都不会被求值。updateStateByKey()为我们提供了对一个状态变量的访问,用于键值对形式的 DStream。2. 定义状态更新函数,用此函数阐明如何使用之前的状态和来自输入流的新值对状态进行更新。可以设置窗口的大小和滑动窗口的间隔来动态的获取当前 Steaming 的允许状态。输出操作指定了对流数据经转化操作得到的数据所要执行的操作。基于窗口的操作需要两个参数。
2025-04-27 17:45:59
324
原创 kafka
面每次调用在这个整数上自增),将这个值与 topic 可用的 partition 总数取余得到 partition 值。3.既没有 partition 值又没有 key 值的情况下,第一次调用时随机生成一个整数(后。在启动kafka之前,必须先启动zookeeper。Kafka就是一个分布式的用于消息存储的消息队列。Kafka.sh:一键启动和关闭kafka集群。Kafka 中消息是以topic 进行分类的。
2025-04-27 17:45:45
222
原创 kafka
3.既没有 partition 值又没有 key 值的情况下,第一次调用时随机生成一个整数(后面每次调用在这个整数上自增),将这个值与 topic 可用的 partition 总数取余得到 partition 值。2.没有指明 partition 值但有 key 的情况下,将 key 的 hash 值与 topic 的 partition 数进行取余得到 partition 值;1.指明 partition 的情况下,直接将指明的值直接作为 partiton 值;
2025-04-23 23:58:23
283
原创 spark-streaming
支持多种数据输入源(如Kafka、Flume、Twitter、TCP套接字等)和输出存储位置(如HDFS、数据库等)。RDD队列案例:循环创建多个RDD并推送到队列中,使用Spark Streaming处理RDD队列进行词频统计。使用Spark SQL语言进行数据处理,包括创建数据库、数据表,导入数据文件,进行数据转换。代码配置包括设置关键对象、接收TCP套接字数据、扁平化处理、累加相同键值对、分组统计词频。代码包括配置对象、创建可变队列、转换RDD为DStream、累加和分组统计词频。
2025-04-23 23:55:01
554
原创 spark SQL
格式转换:按照题目要求,利用 get_json_object 函数(如果是在SQL语句中操作,在不同语言中使用该函数的语法略有差异)对JSON格式数据进行格式转换,以便后续分析处理。筛选有效数据:依据有效数据的定义( uid 、 phone 、 addr 三个字段均无空值 ),使用过滤条件(如 filter 函数 )筛选出满足条件的数据行。排序与筛选:根据统计出的用户数量,使用排序函数(如 orderBy ,并按降序排列)对地址进行排序,最后使用 limit 函数选取用户数量最多的前二十个地址。
2025-04-23 23:51:11
179
原创 数据的加载与保存
具体数据加载和查询JSON数据加载JSON文件:使用spark.read.json方法加载JSON文件。val path = "/opt/module/spark-local/people.json" val peopleDF = spark.read.json(path)查询数据:可以通过SQL语句查询JSON数据。CSV数据加载CSV文件:可以配置CSV文件的列表信息并读取CSV文件。保存数据的方法通用方法:使用df.write方法保存数据。路径参数:可以传入加载数据的路径。
2025-04-23 23:47:57
279
原创 spark-SQL
Dataset 和 DataFrame 拥有完全相同的成员函数,区别只是每一行的数据类型不同。如果同样的数据都给到这三个数据结构,他们分别计算之后,都会给出相同的结果。Spark SQL 是 Spark 用于结构化数据处理的 Spark 模块。DataFrame 与 DataSet 均支持 SparkSQL 的操作。DataFrame 是一种以 RDD 为基础的分布式数据集。全都是 spark 平台下的分布式弹性数据集。DataFrame 每一行的类型固定为Row。不同是的他们的执行效率和执行方式。
2025-04-14 18:02:51
201
原创 spark-core
在类型为(K,V)和(K,W)的 RDD 上调用,返回一个(K,(Iterable<V>,Iterable<W>))类型的 RDD。在一个(K,V)的 RDD 上调用,K 必须实现 Ordered 接口(特质),返回一个按照 key 进行排序。在类型为(K,V)和(K,W)的 RDD 上调用,返回一个相同 key 对应的所有元素连接在一起的。分区的数据通过初始值和分区内的数据进行聚合,然后再和初始值进行分区间的数据聚合。返回一个由 RDD 的前 n 个元素组成的数组。(K,(V,W))的 RDD。
2025-04-11 11:39:56
176
原创 spark-core
spark程序中存在过多的小任务的时候,可以通过 coalesce 方法,收缩合并分区,减少分区的个数,减小任务调度成本。Map 算子是分区内一个数据一个数据的执行 ,主要目的将数据源中的数据进行转换和改变,性能比较低。reduceByKey:可以将数据按照相同的 Key 对 Value 进行聚合。aggregateByKey:将数据根据不同的规则进行分区内计算和分区间计算。groupByKey:将数据源的数据根据 key 对 value 进行分组。zip以键值对的形式进行合并两个RDD中的元素。
2025-04-10 11:27:16
173
原创 spark RDD
RDD 在整个流程中主要用于将逻辑进行封装,并生成 Task 发送给Executor 节点执行计算。Spark 的数据读取及数据保存可以从两个维度来作区分:文件格式以及文件系统。Spark 目前支持 Hash 分区和 Range 分区,和用户自定义分区。RDD代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合。计算数据时,可以根据计算节点的状态选择不同的节点位置进行计算。Spark 在计算时,是使用分区函数对每一个分区进行计算。Spark 通过申请资源创建调度节点和计算节点。启动yarn集群环境。
2025-04-09 17:24:09
150
原创 Scala
Reduce 简化(归约) :通过指定的逻辑将集合中的数据进行聚合,从而减少数据,最终获取结果。单词计数:将集合中出现的相同的单词,进行计数,取计数排名前三的结果。过滤 转化映射 扁平化+映射 分组 简化(归约) 折叠。Fold 折叠:化简的一种特殊情况。普通WordCount 案例。
2025-04-08 10:08:29
198
原创 Scala
默认情况下, Scala 使用的是不可变集合 使用可变集合要引用scala.collection.mutable.Set包。list 默认为不可变集合 集合间合并:将一个整体拆成一个一个的个体,称为扁平化。二维数组中有三个一维数组,每个一维数组中有四个元素。是一个散列表,它存储的内容也是键值对映射。将多个无关的数据封装为一个整体,称为。如果 key 不存在,返回 0。不可变数组与可变数组的转换。可变mutable.Set。元组 最大只能有22个元素。不可变数组转可变数组。可变数组转不可变数组。
2025-04-07 18:01:18
155
原创 Scala
说明:Scala 有两种包的管理风格,一种方式和 Java 的包管理风格相同,每个源文件一个包(包名和源文件所在路径不要求必须一致),包名用“.”进行分隔以表示包的层级关系,如com.zpark.scala。包对象在 Scala 中可以为每个包定义一个同名的包对象,定义在包对象中的成员,作为其对应包下所有 class 和 object 的共享变量,可以被直接访问。使用 Java 的包管理风格,则包对象一般定义在其对应包下的package.scala文件中,包对象名与包名保持一致。1.区分相同名字的类。
2025-04-02 17:01:02
378
原创 scala
解决问题时,将问题分解成一个一个的步骤,将每个步骤进行封装(函数),通过调用这些封装好的步骤,解决问题。闭包:如果一个函数,访问到了它的外部(局部)变量的值,那么这个函数和他所处的环境,称为闭包。解决问题,分解对象,行为,属性,然后通过对象的关系以及行为的调用来解决问题。一个函数/方法在函数/方法体内又调用了本身,我们称之为递归调用。(1) 为完成某一功能的程序语句的集合,称为函数。函数柯里化:把一个参数列表的多个参数,变成多个参数列表。3.函数可以作为函数返回值返回。没有名字的函数就是匿名函数。
2025-04-01 11:30:52
202
原创 scala
j <- 1 to 3) { println(" i =" + i + " j = " + j)}循环步长在for循环中设置步长,默认步长为1,可以通过指定步长来改变循环的取值间隔。例如,设置步长为2时,循环变量会每次增加2。1)基本语法for (i <- 1 to 10 by 2) { println("i=" + i)}循环守卫的概念,通过足球守门员的比喻,说明了循环守卫的作用是控制循环的执行。j = 4 - i) { println("i=" + i + " j=" + j)}说明:by 表示步长。
2025-03-31 18:01:08
411
原创 Scala
使用val定义的变量值是不可变的,相当于java里用final修饰的变量。输出个位数与十位数不相同的两位数(个位、十位数均从1-3取值)使用var定义的变量是可变的,在Scala中鼓励使用val。scala中没有提供++、--操作符,我们只能使用+和-在scala里面没有运算符,所有的符号其实都是方法。Scala中的三个字符串插值器:s、f、raw。在scala中,有以下数据类型。弱类型语言:JS、Scala。do while循环。强类型语言:Java。变量名在前,类型在后。
2025-03-28 14:12:58
238
原创 Scala
全名Scalable Language 专为大规模软件开发设计 Martin Odersky 于 2003 年开发,2004 年发布 运行于Java平台,完全兼容 Java 生态。(如果若干单词被用作构成方法的名称那么每个单词第一个字母大写)静态类型 类型推断 泛型编程 类型系统扩展。Scala命名规则:首字符小写 类名首字符大写。Scala支持类和对象 可以定义属性和方法。支持类的继承和多态 可以定义抽象类和特质。Scala程序从main()方法开始处理。所有方法名称第一个字母用小写。
2025-03-27 10:54:43
319
原创 unet++
现在来看 , 很多视觉任务都可以套用这招。整体结构:概述就是编码解码过程。起初是做医学方向 , 现在也是。损失由多个位置计算 , 再更新。也是很常见的事 , 多输出。简单但是很实用 ,应用广。
2025-03-21 14:02:51
153
原创 图像分割项目
全景分割(Panoptic Segmentation):结合语义分割和实例分割,每个像素点分配一个语义类别和一个唯一的实例ID。30个类别,5000张精细标注的图像(2975张训练图、500张验证图、1525张测试图),20000张粗略标注的图像。图像分割:预测目标的轮廓,将不同的像素划分到不同的类别,属于细粒度的分类任务。实例分割:预测前景目标的类别、边框和个体ID,每个像素可以属于多个ID。反卷积:输入2x2,输出4x4,卷积核3x3。卷积:输入4x4,输出2x2,卷积核3x3。
2025-03-20 11:32:43
327
原创 YOLO V4
CSPNet 通过将特征图拆分成两部分,一部分正常走网络,另一部分直接连接到输出,从而提高了特征的利用率。DIOU-NMS 不仅考虑了 IOU 的值,还考虑了两个框中心点之间的距离,从而更准确地决定是否删除一个框。这些改进的损失函数不仅考虑了重叠面积,还考虑了中心点距离和长宽比,从而更准确地优化预测框。这种方法可以增加数据的多样性,提高模型的泛化能力。YOLOv4 通过调整激活函数前的系数,缓解了坐标回归预测值在 grid 边界时的敏感性问题,从而提高了模型的稳定性。通过软化标签,模型不会过于自信。
2025-03-14 11:38:25
409
原创 YOLO V3
YOLOv3 采用了多尺度的特征图来进行物体检测,而不是传统的图像金字塔方法 YOLOv3 通过单一输入图像,利用不同层次的特征图来检测不同大小的物体,大大提高了检测效率。多尺度特征图:YOLOv3 设计了3个不同的scale,分别用于检测不同大小的物体。9种先验框:YOLOv3 在先验框的设计上更加丰富,共有9种不同规格的先验框,分别对应不同的特征图。特征图融合:YOLOv3 通过融合不同层次的特征图来进行预测,使得模型能够同时利用浅层和深层的特征信息。先验框:YOLOv3 在先验框的设计上更加丰富。
2025-03-13 11:13:06
259
原创 YOLO系列
将目标检测问题转化为回归问题,通过一个卷积神经网络(CNN)直接预测目标的边界框和类别概率。使用DarkNet,输入为416x416,没有全连接层,5次降采样到13x13的特征图。从现在的角度来看,Batch Normalization已经成网络必备处理。经过Batch Normalization处理后的网络会提升2%的mAP。最后一层时感受野太大了,小目标可能丢失了,需融合之前的特征。堆叠多个小卷积核可以在保持较大感受野的同时,减少参数数量。网络的每一层的输入都做了归一化,收敛相对更容易。
2025-03-12 16:49:10
256
原创 【无标题】
非极大值抑(Non-maximumsuppression,NMS)设定目标框的置信度阈值,常用的阈值是0.5左右根据置信度降序排列候选框列表选取置信度最高的框A添到输出列表,将其从候选框列表删除候选框列表中的所有框依次与A计算IoU,删除大于阈值的候选框重复上述过程,直到候选框列表为空,返回输出列表。YOLO(TXT)格式:(x,y,w,h)分别代表中心点坐标和宽、高x,y,w,h均为归一化结果VOC(XML)格式:(Xmin,Ymin,Xmax,Ymax)分别代表左上角和右下角的两个坐标。
2025-03-11 13:22:25
1267
原创 近期学习总结
通过学习,我了解到图像数字化是将连续的图像信号转换为离散的数字信号,以便计算机进行处理,而特征提取则是从图像中提取能够代表图像本质特征的信息,CNN通过卷积层、池化层和全连接层等结构,自动学习图像的层次化特征,大大提高了图像识别的准确率和效率。机器学习作为人工智能领域的核心技术,是让计算机通过数据进行学习,自动改进性能的算法研究。我掌握了从数据预处理(清洗、归一化、划分数据集),到模型选择、训练、调优(调整超参数、使用正则化防止过拟合),再到模型评估(准确率、召回率、F1值、均方误差等指标)的完整流程。
2025-03-10 18:10:04
219
原创 pytorch
使用两个隐含层,每层使用ReLU激活函数,输出层使用softmax激活函数,最后使用torch.max(out,1)找出张量out最大值对应索引作为预测值。最后下载并预处理训练集和测试集数对张量进行归一化,这里两个0.5分别表示归一化的全局平均值和方差。图像是灰色的只有一个通道。从生成的图表来看,随着训练轮数增加,训练损失快速下降后趋于平稳,反映出模型损失值在训练过程中逐渐减少。利用torchvision对数据进行预处理,调用torch.utils建立一个数据迭代器。实例化模型,并定义损失函数及优化器。
2025-03-06 13:26:31
165
原创 【无标题】
对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断好。集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务等。集成学习的结果通过投票法产生?
2025-03-05 18:42:06
176
原创 pytorch
输出显示预测类别为“frog”、“dog”、“deer”和“horse”conv卷积层 pool池化层 使用全局平均池化层。将图像和标签移动,并使用训练好的模型对图像进行预测。计算准确率 准确率是百分之六十六。加载测试数据集并显示部分图像的标签。输出损失值 损失值逐渐降低。将图像拼接成网格形式显示。一个linear全连接层。
2025-03-04 10:26:45
314
原创 pytorch
数据集分为5个训练批次和1个测试批次,每个批次有10000个图像。测试批次包含来自每个类别的恰好1000个随机选择的图像。训练批次以随机顺序选取剩余图像,但一些训练批次可能更多会选取来自一个类别的图像。图6-27显示了数据集中涉及的10个类,以及来自每个类的10个随机图像。CIFAR-10数据集由10个类的60000个32x32彩色图像组成,每个类有6000个图像。以下是使用PyTorch实现CIFAR-10多分类任务的示例代码,CIFAR-10数据集包含10个不同类别的图像,如飞机、汽车、鸟类等。
2025-03-03 19:06:58
428
原创 图像分类项目
可以用来表示模型的精度,即模型识别正确的个数/样本的总个数。一般情况下,模型的精度越高,说明模型的效果越好。2. 准确率(Precision):又称为查准率,表示在模型识别为正类的样本中,真正为正类的样本所占的比例。主对角线的元素之和为正确分类的样本数,其余元素之和为错误分类的样本数。召回率(Recall):又称为查全率,表示模型正确识别出为正类的样本的数量占总的正类样本数量的比值。深度学习最重要的属性,计算最长路径的卷积层+全连接层数量。将不同的图像,划分到不同的类别标签,实现最小的分类误差。
2025-02-28 11:22:53
302
原创 pytorch数据处理
2调用相应的API接口,接口一般格式为:add_xxx(tag-name, object, iteration-number)#即add_xxx(标签,记录的对象,迭代次数)其中,xxx指的是各种可视化方法。transforms提供了对PIL Image对象和Tensor对象的常用操作。transforms提供了对PIL Image对象和Tensor对象的常用操作。transforms提供了对PIL Image对象和Tensor对象的常用操作。1对PIL Image的常见操作如下。
2025-02-27 11:05:45
159
原创 pytorch数据处理
数据集(torchvision.datasets):提供了MNIST、CIFAR10、ImageNet等多个常用数据集,封装在torch.utils.data.Dataset的子类中,方便读取和迭代,还支持自定义数据集创建。可视化工具(torchvision.utils):可将多个图像拼接成一个网格,以更好地观察生成的图像或模型预测的效果,还提供了一些函数,可以轻松绘制学习曲线和其他统计指标,帮助开发者分析模型训练过程中的表现。DataLoader并不是迭代器,可以通过“iter”命令转换成迭代器。
2025-02-26 18:36:26
174
原创 pytorch神经网络
残差块有两种,一种是正常的模块方式,将输入与输出相加,然后应用激活函数ReLU。ResidualBlock:定义一个残差块,包含两个卷积层 relu激活函数。使用 nn.ModuleDict 容器存储多个层,并通过键值对访问。使用 nn.ModuleList容器存储多个层。继承nn.Module基类并应用模型容器构建模型。nn.Sequential 按顺序组合多个层。1.使用nn.Sequential模型容器。2.使用nn.ModuleList模型容器。3.使用nn.ModuleDict模型容器。
2025-02-25 13:23:09
153
原创 Pytorch神经网络
如‘nn.functional.linear‘、‘nn.functional.conv2d‘、‘nn.functional.cross_entropy‘等。写法一般为`nn.Xxx`,如`nn.Linear`、`nn.Conv2d`、`nn.CrossEntropyLoss`等。‘nn.functional‘需要手动管理参数,且无法与‘nn.Sequential‘结合使用。‘nn.Module‘更适合与‘nn.Sequential‘结合使用,且不需要手动管理参数。
2025-02-24 16:56:45
456
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅