- 博客(48)
- 收藏
- 关注
原创 电商双11美妆数据分析项目(二)
在临近双11时,9日销量达到最高,因为更临近了,所以关注的人更多,购买的人更多。但是在10日有所下降,和双11下降有相同的理由,是人们都主观的认为双11当天的购买人数太多,可能会有网络、平台卡顿导致无法成功下单的忧虑,所以反而造成了双11当天销量急剧下滑。先观察销量,各店小类中销量最高的是相宜本草的补水类商品以及妮维雅的清洁类商品,这两类销量很接近。由于不同的类别使用量也不同,销量自然也会有所区别,所以相对于比较每个店铺的不同类别的销售量,比较每个不同类别的各店铺的销售量应该更有价值。
2025-05-07 16:44:36
904
原创 电商双11美妆数据分析项目
事实上,D类中,也就是高端商品中,雅诗兰黛占据了主要份额,一方面可能由于品牌效应,就个人主观的分析,雅诗兰黛为人熟知,在推广营销方面做的很好,所以销量尚可。观察饼图,不难发现A类平均单价的品牌所占的销售额比例最高,D类最少,并且D类中的一半以上收入都来自于雅诗兰黛品牌,而最受欢迎的相宜本草由于其价格便宜,销售额也最高。相宜本草商品数量也只属于中游,但其销量销售额均排在第一位,由于其销量是第二名的大约两倍,而销售额远不到两倍,所以销售额/销量,也就是每一单的均价也是一个值得研究的新指标。
2025-05-06 11:07:40
667
原创 数据科学与计算
Seaborn 是一个建立在 Matplotlib 基础之上的 Python 数据可视化库,专注于绘制各种统计图形,以便更轻松地呈现和理解数据。Seaborn 的设计目标是简化统计数据可视化的过程,提供高级接口和美观的默认主题,使得用户能够通过少量的代码实现复杂的图形。sns.set_theme() 可以选择不同的主题和模板。
2025-04-30 15:38:27
1053
原创 Matplotlib(二)
已知五年级三班的同学中,喜欢篮球的同学占20%,喜欢乒乓球的同学占30%,喜欢羽毛球的同学占20%,喜欢足球的同学占18%,喜欢排球的同学占12%。imread() 方法返回一个 numpy.ndarray 对象,其形状是 (nrows, ncols, nchannels),表示读取的图像的行数、列数和通道数。其格式为matplotlib.pyplot.hist(x, bins=None, color=None, label=None, **kwargs)使用 hist() 函数绘制多个数据组的直方图。
2025-04-29 11:19:59
448
原创 Matplotlib
注意:如果我们不指定 x 轴上的点,则 x 会根据 y 的值来设置为 0, 1, 2, 3..N-1。任务三:绘制一条不规则线,坐标为 (1, 3)、(2, 8)、(6, 1)、(8, 10)xlabel()、ylabel() :设置 x 轴和 y 轴的标签。任务二:绘制坐标 (1, 3) 和 (8, 10) 的两个点。plot()中的 marker 参数:定义一些不一样的标记。任务一:绘制坐标 (1, 3) 到 (8, 10) 的线。grid():来设置图表中的网格线。任务七:定义线的类型为点虚线。
2025-04-28 17:27:50
465
原创 spark学习总结
1. Spark Core 中提供了 Spark 最基础与最核心的功能,Spark 其他的功能如:Spark SQL,Spark Streaming,GraphX, MLlib 都是在 Spark Core 的基础上进行扩展的。总体而言,Spark编程模型围绕RDD、DataFrame和Dataset展开,开发者可根据具体的数据特点和处理需求灵活选择使用,利用它们进行数据的转换、分析和获取结果等操作,以实现高效的大数据处理任务。从外部存储系统: `sc.textFile()`不可变(immutable)
2025-04-27 16:46:52
361
原创 Spark-Streaming(四)
给定一个由(键,事件)对构成的 DStream,并传递一个指定如何根据新的事件更新每个键对应状态的函数,它可以构建出一个新的 DStream,其内部数据为(键,状态) 对。saveAsObjectFiles(prefix, [suffix]):以 Java 对象序列化的方式将 Stream 中的数据保存为SequenceFiles . 每一批次的存储文件名基于参数中的为"prefix-TIME_IN_MS[.suffix]".每一批次的存储文件名基于参数中的 prefix 和 suffix。
2025-04-27 15:53:32
617
原创 Spark-Streaming(三)
计算过程就是对当前批次的两个流中各自的 RDD 进行 join,与两个 RDD 的 join 效果相同。DStream 上的操作与 RDD 的类似,分为 Transformations(转换)和 Output Operations(输出)两种,此外转换操作中还有一些比较特殊的原语。无状态转化操作就是把简单的 RDD 转化操作应用到每个批次上,也就是转化 DStream 中的每一个 RDD。任务需求2:Kafka生产者生成的数据利用Flume进行采集,将采集到的数据打印到Flume的控制台上。
2025-04-25 11:20:10
841
原创 Spark-Streaming(二)
1)ReceiverAPI:需要一个专门的 Executor 去接收数据,然后发送给其他的 Executor 做计算。存在的问题,接收数据的 Executor 和计算的 Executor 速度会有所不同,特别在接收数据的 Executor速度大于计算的 Executor 速度,会导致计算数据的节点内存溢出。2)DirectAPI:是由计算的 Executor 来主动消费 Kafka 的数据,速度由自身控制。读取数据时,分区间的数据是无序的,分区中的数据是有序。此命令会从日志文件中的最后的位置开始消费。
2025-04-24 10:26:46
484
原创 虚拟机下kafka和spark的安装
(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处),发送消息必须有主题。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。当consumer去消费数据的时候,会有一个偏移量(offset),一个分区的数据,一个consumer只能消费一次。replica 中的一个角色,从 leader 中复制数据,数据备份,如果leader挂掉,顶替leader的工作。
2025-04-23 19:50:55
1414
原创 Spark-Streaming
在Spark 1.5 以前版本,用户如果要限制 Receiver 的数据接收速率,可以通过设置静态配制参数“spark.streaming.receiver.maxRate”的值来实现,此举虽然可以通过限制接收速率,来适配当前的处理能力,防止内存溢出,但也会引入其它问题。和 Spark 基于 RDD 的概念很相似,Spark Streaming 使用离散化流作为抽象表示,叫作 DStream。2)容错:Spark Streaming在没有额外代码和配置的情况下,可以恢复丢失的数据。
2025-04-22 10:28:15
1248
原创 Spark-SQL(四)
先将需要用的user_login_info.json文件放到Spark-SQL/input目录下。可以得到文件中有效的数据有78537条,以及用户数量最多的前二十个地址。进行数据转换,创建表、加载数据、查询数据进行数据转换。统计有效数据条数及用户数量最多的前二十个地址。
2025-04-21 18:46:28
621
原创 Spark-SQL(三)
Spark SQL 能够自动推测 JSON 数据集的结构,并将它加载为一个 Dataset[Row]. 可以通过 SparkSession.read.json()去加载 JSON 文件。"):在"jdbc"格式下需要传入 JDBC 相应参数。"):在"jdbc"格式下需要传入 JDBC 相应参数,如:url、user、password 和 dbtable。Spark SQL 可以配置 CSV 文件的列表信息,读取 CSV 文件,CSV 文件的第一行设置为数据列。"):格式下需要传入加载数据的路径。
2025-04-16 17:59:34
1365
原创 Spark-SQL(二)
5)DataSet转换成DataFrame ,DataFrame转换成 RDD。RDD转换成DataFrame,DataFrame转换成DataSet。1)在idea中读取json文件创建DataFrame。1 在pop.xml中添加spark-sql依赖。创建SparkSession ,读取json文件。任务需求:计算平均工资。3 )DSL风格语法。
2025-04-15 11:04:11
627
原创 Spark-SQL
这使得 Spark SQL 得以洞察更多的结构信息,从而对藏于 DataFrame 背后的数据源以及作用于 DataFrame 之上的变换进行了针对性的优化,最终达到大幅提升运行时效率的目标。但是,随着 Spark 的发展,Shark 对于 Hive 的太多依赖,制约了 Spark 的 One Stack Rule Them All 的既定方针,制约了 Spark 各个组件的相互集成,所以提出了 SparkSQL 项目。DataFrame 其实是 DataSet 的特例,所以它们之间是可以互相转换的。
2025-04-14 17:40:38
1154
原创 Spark-core编程(三)
在 Driver 程序中定义的变量,在Executor 端的每个 Task 都会得到这个变量的一份新的副本,每个 task 更新这些副本的值后,传回 Driver 端进行 merge。在类型为(K,V)和(K,W)的 RDD 上调用,返回一个(K,(Iterable<V>,Iterable<W>))类型的 RDD。在类型为(K,V)和(K,W)的 RDD 上调用,返回一个相同 key 对应的所有元素连接在一起的。分区的数据通过初始值和分区内的数据进行聚合,然后再和初始值进行分区间的数据聚合。
2025-04-11 11:24:42
758
原创 Spark Core编程(二)
从 shuffle 的角度:reduceByKey 和 groupByKey 都存在 shuffle 的操作,但是 reduceByKey可以在 shuffle 前对分区内相同 key 的数据进行预聚合(combine)功能,这样会减少落盘的数据量,而 groupByKey 只是进行分组,不存在数据量减少的问题,reduceByKey 性能比较高。该操作用于排序数据。将待处理的数据以分区为单位发送到计算节点进行处理,这里的处理是指可以进行任意的处理,哪怕是过滤数据,在处理时同时可以获取当前分区索引。
2025-04-10 11:37:43
875
原创 Spark Core编程
Spark 框架的核心是一个计算引擎,整体来说,它采用了标准 master-slave 的结构 如图所示2 核心组件Spark 框架有两个核心组件:1)Driver2)Spark 驱动器节点(用于执行 Spark 任务中的 main 方法,负责实际代码的执行工作。
2025-04-09 17:43:25
1524
原创 Spark的安装
3.1cmd下输入spark-shell提示版本号则安装成功。2.2 PATH添加saprk文件的相对路径。3 在cmd下验证spark环境是否配置成功。
2025-04-08 11:15:47
398
原创 Scala的集合(二)
相当于先进行 map 操作,在进行 flatten 操作集合中的每个元素的子元素映射到某个函数并返回新集合。Scala 为了充分使用多核 CPU,提供了并行集合(有别于前面的串行集合),用于多核环境的并行计算。Reduce 简化(归约) :通过指定的逻辑将集合中的数据进行聚合,从而减少数据,最终获取结果。1)过滤:遍历一个集合并从中获取满足指定条件的元素组成一个新的集合。单词计数:将集合中出现的相同的单词,进行计数,取计数排名前三的结果。按照指定的规则对集合的元素进行分组。1)fold 基本使用。
2025-04-08 10:47:45
757
原创 Scala的集合
说的简单点,就是将多个无关的数据封装为一个整体,称为。1) arr2.toArray 返回结果才是一个不可变数组,arr2 本身没有变化。2) arr1.toBuffer 返回结果才是一个可变数组,arr1 本身没有变化。3)Map 中的键值对其实就是元组,只不过元组的元素个数为 2,称之为对偶。5)集合间合并:将一个整体拆成一个一个的个体,称为扁平化。1)声明元组的方式:(元素 1,元素 2,元素 3)2)向集合中添加数据,打印数据,修改数据,删除数据。2)创建一个 List(数据有顺序,可重复)
2025-04-07 17:13:27
875
原创 scala的面向对象与集合
一个类(Sub)混入的两个 trait(TraitA,TraitB)中具有相同的具体方法,且两个 trait 继承自相同的 trait(TraitC),及所谓的“钻石问题”,解决这类冲突问题,Scala 采用了。由于一个类可以混入(mixin)多个 trait,且 trait 中可以有具体的属性和方法,若混入的特质中具有相同的方法(方法名,参数列表,返回值均相同),必然会出现继承冲突问题。3. Scala 不可变集合,就是指该集合对象不可修改,每次修改就会返回一个新对象, 而不会对原对象进行修改。
2025-04-03 11:37:28
1094
原创 Scala的面向对象
一种方式和 Java 的包管理风格相同,每个源文件一个包(包名和源文件所在路径不要求必须一致),包名用“.”进行分隔以表示包的层级关系,如com.zpark.scala。在 Scala 中可以为每个包定义一个同名的包对象,定义在包对象中的成员,作为其对应包下所有 class 和 object 的共享变量,可以被直接访问。如采用嵌套方式管理包,则包对象可与包定义在同一文件中,但是要保证包对象与包声明在同一作用域中。1)和 Java 一样,可以在顶部使用 import 导入,在这个文件中的所有类都可以使用。
2025-04-02 17:59:32
809
原创 Scala的函数式编程
2)类型省略之后,发现只有一个参数,则圆括号可以省略;解决问题时:将问题分解成一个一个的步骤,将每个步骤进行封装(函数),通过调用这些封装好的步骤,解决问题。:如果一个函数,访问到了它的外部(局部)变量的值,那么这个函数和他所处的环境,称为闭包。4)如果参数只出现一次,则参数省略且后面参数可以用_代替。7)如果函数无参,但是声明了参数列表,那么调用时,小括号,可加可不加。8)如果函数没有参数列表,那么小括号可以省略,调用时小括号必须省略。6)Scala 如果期望是无返回值类型,可以省略等号。
2025-04-01 11:36:03
843
原创 Scala的基本语法(二)
推荐使用函数式的风格解决break 和continue 的功能,而不是一个关键字。2)for 推导式有一个不成文的约定:当 for 推导式仅包含单一表达式时使用圆括号, 当包含多个表达式时,一般每行一个表达式,并用花括号代替圆括号。循环守卫,即循环保护式(也称条件判断式,守卫)。方式四:循环遍历 10 以内的所有数据,奇数打印,偶数跳过(continue)需求:将原数据中所有值乘以 2,并把数据返回到一个新的集合中。需求:鸡兔一共有35只,脚一共有94只,问鸡和兔各多少只?倒序打印 10 到 1。
2025-03-31 17:44:43
1338
原创 Scala的基本语法
3. Scala的基本操作符scala的算术操作符与java的算术操作符也没有什么区别,比如算术运算符+、-、*、/、%等,以及逻辑运算符&、|、^关系运算符>>、<<等但是,在scala中,这些操作符其实是数据类型的方法,比如1 + 1,可以写做1.+(1) 例如,1.to(10),又可以写做1 to 104.字符串的插值操作Scala中的三个字符串插值器:s、f、raws在任何字符串前加上s,就可以直接在串中使用变量了f。
2025-03-28 11:38:59
736
原创 初识scala
Martin Odersky 等人在 2003 年开发的,并于 2004 年首次发布,它运行于Java平台,并兼容现有的Java程序,也与java。优雅:这是框架设计师第一个要考虑的问题,框架的用户是应用开发程序员,API是否优雅直接影响用户体验。例如:一只狗的状属性有:颜色,名字,行为有:叫、跑、吃等。对象是一个类的实例。Scala是大小写敏感的,这意味着标识Hello 和 hello在Scala中会有不同的含义。Scala程序从main()方法开始处理,这是每一个Scala程序的强制程序入口部分。
2025-03-27 10:59:59
1275
原创 图像识别技术与应用-U-net
可以更容易剪枝: 因为前面也单独有监督训练 可以根据速度要求来快速完成剪枝 训练的时候同样会用到L4 ,效果还不错。特征融合 ,拼接更全面,其实跟densenet思想一致 把能拼能凑的特征全用上就是升级版了。3)各层统一用卷积得到64个特征图 5*64 =320 , 最终组合得到全部特征。1)不同的max pool整合低阶特征 (X1和X2 , 轮廓之类的):也是很常见的事 ,多输出 ,损失由多个位置计算 ,再更新。2)采样整合高阶特征 (感受野大的 , 全局的)
2025-03-21 10:41:27
257
原创 图像识别技术与应用-图像分割项目
VOC数据集:PASCAL VOC挑战赛(The PASCAL Visual Object Classes)是一个世界级的计算机视觉挑战赛。VOC数据集:从2007年开始引进了语义分割和实例分割的标注。3)有5000张精细标注的图像(2975张训练图、500张验证图和1525张测试图)、20000张粗略标注的图像。图像分割:预测目标的轮廓。将不同的像素划分到不同的类别,非常细粒度的分类。只预测前景目标的类别属性以及边框,个体ID,每一个像素可以属于多个ID。每个像素点分配一个语义类别和一个唯一的实例ID。
2025-03-20 10:24:56
405
原创 图像识别技术与应用-YOLO(三)
与Relu有点太绝对了 , Mish更符合实际,但是计算量确实增加了 ,效果会提升一点。读折一篇相当于把今年来部分优秀的论文又过了一遍。在不重叠情况下能让预测框尽可能朝着真实框前进。其实就是用最大池化来满足最终输入特征一致即可。用随机值或训练集的平均像素值替换图像的区域。好像只有一条路子 , 能不能来个双向的呢?引入了各种能让特征提取更好的方法。,从数据层面和网络设计层面来进。就是遍历各个框跟置信度高的。网络细节部分加入了很多改进。但可以提高模型精度的方法。感觉能做的都让他给做了。一句话概述就是更简单了。
2025-03-14 10:35:34
1132
原创 图像识别技术与应用-YOLO(二)
V3最大的改进就是网络结构,使其更适合小目标检测,特征做的更细致,融入多持续特征图信息来预测不同规格物体,先验框更丰富了,3种scale,每种3个规格,一共9种。softmax改进,预测多标签任务。从今天的角度来看,基本所有网络架构都用上了残差连接的方法V3中也用了resnet的思想,堆叠更多的层来进行特征提取。2)左图:对不同的特征图分别利用;右图:不同的特征图融合后进行预测;为了能检测到不同大小的物体,设计了3个scale。YOLO-V3一共有九种相比YOLO-V2更多了。3种scale,更多先验框。
2025-03-13 10:12:14
571
原创 图像识别技术与应用-YOLO
它通过对训练集中标注的目标框尺寸等信息进行聚类分析,自动确定合适的先验框尺寸,使得先验框能更好地匹配不同数据集中目标的实际形状和大小分布情况,进而提升目标检测的精度,让网络在预测时更容易收敛到合适的边界框。YOLO-V1它是经典的one-stage方法,You Only Look Once,名字就已经说明了一切!DarkNet,实际输入为416*416,没有FC层,5次降采样(13*13),1*1卷积节省了很多参数。最后一层时感受野太大了,小目标可能丢失了,需融合之前的特征。比YOLO-V1更快,更强,
2025-03-12 16:32:00
803
原创 图像识别技术与应用-目标检测项目
YOLO(TXT)格式:(x,y,w,h)分别代表中心点坐标和宽、高 x,y,w,h均为归一化结果。VOC(XML)格式:(Xmin,Ymin,Xmax,Ymax)分别代表左上角和右下角的两个坐标。VOC(XML)格式:(Xmin,Ymin,Xmax,Ymax)分别代表左上角和右下角的两个坐标。重复上述过程,直到候选框列表为空,返回输出列表。万个目标标注 平均每个图像的目标数是7.2。设定目标框的置信度阈值,常用的阈值是0.5。添到输出列表,将其从候选框列表删除。②按置信度的从大到小,计算P和。
2025-03-11 10:51:54
671
原创 图像识别技术与应用总结
2.学习多层感知机后,我明白它有着独特的魅力,通过层层神经元构建起复杂的网络结构,能处理非线性问题,让数据的分析和处理变得更灵活、精准,不再局限于简单的线性关系。生活中,拍照识物让获取信息变得轻而易举。5,从项目过程中我学到了,前期准备数据就很关键,要精心收集、标注图像,确保数据的质量和多样性,这直接关系到后续模型的效果。而且图像分类在实际中有诸多应用,从安防监控到医疗影像诊断等,深感这个项目不仅让我技术上有收获,更明白了如何将所学应用到实际,去解决实实在在的问题,也让我对图像识别领域的探索更有热情了。
2025-03-10 17:55:46
653
原创 图像识别技术与应用-手写识别项目
optimizer.zero grad()在默认情况下梯度是累加的,需要手工把梯度初始化或清零,调用optimizer.zero_grad()即可。Pytoch常用的优化方法都封装在torch.optin里面,其设计很灵活,可以扩展为自定义的优化方法。所有的优化方法都是继承了基类optin.optinizer,并实现了自己的优化步骤。调用model.eval()会把所有的training属性设置为False。调用model.train()会把所有的module设置为训练模式。1.加载预处理数据集。
2025-03-06 10:42:46
475
原创 图像识别技术与应用-卷积神经网络实现cifar10分类2
对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断好。2 卷积神经网络实现cifar10分类。
2025-03-05 18:40:31
437
原创 图像识别技术与应用-卷积神经网络的CIFAR10图像分类
CIFAR10:由 10 个类中的 60000 张 32x32 彩色图像组成,每类 6000 张图像。有50000个训练图像和10000个测试图像。数据集分为五个培训批次和一个测试批次,每个测试批次有 10000 张。测试批次包含来自每个类的 1000 个随机选择的图像。培训批次随机包含剩余图像,但某些培训批次可能包含来自一个班级的图像。培训批次包含每节课的 5000 张图片。十个类分别是:【飞机,汽车,鸟,猫,鹿,狗,青蛙,马,船,卡车】
2025-03-03 17:46:46
531
原创 图像识别技术与应用-图像分类
可以用来表示模型的精度,即模型识别正确的个数/样本的总个数。一般情况下,模型的精度越高,说明模型的效果越好。Precision):又称为查准率,表示在模型识别为正类的样本中,真正为正类的样本所占的比例。P-R曲线:召回率增加,精度下降 曲线和坐标轴面积越大,模型越好。(1).通用类别图像分类:指得是差异性非常大,它完全是不同的类别。:又称为查全率,表示模型正确识别出为正类的样本的数量占总的正类样本数量的比值。将不同的图像划分到不同的类别标签,实现最小的分类误差。将正类预测为正类数。将反类预测为正类数。
2025-02-28 10:33:53
673
原创 图像识别技术与应用-数据处理工具箱(二)
可视化类型:涵盖多种类型,如用 add_graph 可视化神经网络结构,用 add_scalar 展示单一数值变化(如损失值),用 add_image 可视化图像数据(如特征图) ,不同类型适用于不同数据展示需求。将这些操作像管道一样拼接起来,类似于。如果要对数据集进行多个操作,可通过。把一个取值范围是[0,255]的。标准化,即减均值,除以标准差。调整尺寸,长宽比保持不变。修改亮度、对比度和饱和度。
2025-02-27 15:28:21
702
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅