- 博客(49)
- 收藏
- 关注
原创 数据清洗-电商双11美妆数据分析(二)
显然,在没有区分性别的情况下,由于清洁类是男性女性通用,所以占得销量最高是理所应当的。先观察销量,各店小类中销量最高的是相宜本草的补水类商品以及妮维雅的清洁类商品,这两类销量很接近。而销售额上,相宜本草的补水类商品比妮维雅的清洁类商品要高得多,这显然是商品平均单价不同所导致的。由于不同的类别使用量也不同,销量自然也会有所区别,所以相对于比较每个店铺的不同类别的销售量,比较每个不同类别的各店铺的销售量应该更有价值。销量最高的相宜本草的均价就很低,同时它的销售额也是最高额的。因为清洁类显然是有男性市场的。
2025-05-07 16:01:30
1332
原创 数据清洗-电商双11美妆数据分析
存在的缺失值很可能意味着售出的数量为0或者评论的数量为0,所以我们用0来填补缺失值。3.2 接下来用seaborn包给出每个店铺各个大类以及各个小类的销量销售额。2.1 因为数据中存在重复跟空值,将数据进行重复值处理。2.4 对是否是男性专用进行分析并新增一列。2.5 对每个产品总销量新增销售额这一列。3.1 接下来考虑各个类别的销售情况。2.3 数据挖掘寻找新的特征。由title新生成两列类别。给出各个关键词的分类类别。1.数据读取(前八行)3.数据分析及可视化。
2025-05-06 20:20:05
674
原创 大数据应用开发和项目实战-Seaborn
Seaborn 是一个建立在 Matplotlib 基础之上的 Python 数据可视化库,专注于绘制各种统计图形,以便更轻松地呈现和理解数据。Seaborn 的设计目标是简化统计数据可视化的过程,提供高级接口和美观的默认主题,使得用户能够通过少量的代码实现复杂的图形。
2025-04-30 19:22:45
633
原创 大数据应用开发和项目实战-Matplotlib
Matplotlib 是 Python 的绘图库,它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。Matplotlib 可以用来绘制各种静态,动态,交互式的图表。比如说散点图、柱状图等等。
2025-04-28 16:43:53
456
原创 spark 课程总结
有 Local(用于教学调试)、Standalone(独立集群模式)、Yarn(常用,与资源调度框架集成)、K8S & Mesos(国外使用较多)、Windows(方便学习)等模式,各模式在安装机器数、需启动进程、所属者和应用场景上有差异。可通过多种方式创建 DataFrame 和 DataSet,支持 SQL 语法、DSL 语法操作,RDD、DataFrame 和 DataSet 之间可相互转换,还能进行自定义函数和聚合函数操作,以及数据的加载与保存。有向无环图(DAG)是程序计算执行过程的抽象模型。
2025-04-27 15:47:53
883
原创 spark-streaming(四)
3. saveAsObjectFiles(prefix, [suffix]):以 Java 对象序列化的方式将 Stream 中的数据保存为SequenceFiles . 每一批次的存储文件名基于参数中的为"prefix-TIME_IN_MS[.suffix]".4. saveAsHadoopFiles(prefix, [suffix]):将 Stream 中的数据保存为 Hadoop files. 每一批次的存储文件名基于参数中的为"prefix-TIME_IN_MS[.suffix]"。
2025-04-27 15:16:34
678
原创 spark-streaming(二)
3.在虚拟机中,开启kafka、zookeeper、yarn、dfs集群。4.创建一个新的topic---kafka,用于接下来的操作。1.在idea中的 pom.xml 中添加依赖。2.创建一个新的object,并写入以下代码。启动idea中的代码,在虚拟机中输入数据。DStream创建(kafka数据源)查看所有的topic(是否创建成功)开启kafka生产者,用于产生数据。输入后可以在idea中查看到。
2025-04-24 09:36:23
512
原创 kafka安装、spark安装
Kafka中存储的消息,被消费后不会被删除,可以被重复消费,消息会保留多长,由kafka自己去配置。首先进入到 /opt/software 中,将kafka的安装包传入,进行解压并重命名。将文件传输到node01、node02、node03中,并解压重命名。以后台守护进程启动:(前面启动不行 使用该命令)三个节点都启动。注意: 在启动kafka之前,必须先启动zookeeper。将文件传输到node02、node03中,并且修改配置。Kafka就是一个分布式的用于消息存储的消息队列。
2025-04-23 19:45:34
549
原创 Spark-streaming(一)
和 Spark 基于 RDD 的概念很相似,Spark Streaming 使用离散化流(discretized stream)作为抽象表示,叫作 DStream。Spark-Streaming的特点:易用、容错、易整合到spark体系。Spark Streaming 用于流式数据的处理。DStream 是随时间推移而收到的数据的序列。对数据的操作也是按照 RDD 为单位来进行的。Spark-Streaming概述。Spark-Streaming概述。Spark-Streaming架构。
2025-04-22 09:57:35
543
原创 Spark-SQL(总结)
掌握了 Spark - SQL 的特点,如易整合、统一数据访问、兼容 Hive 以及支持标准数据连接,可处理多种数据源的数据。对于与Hive集成方面,学习了 Spark SQL 连接 Hive 的多种方式,如内嵌 Hive、外部 Hive、Spark beeline、Spark - SQL CLI 以及代码操作。由于 Shark 对 Hive 的依赖限制了发展,Spark - SQL 应运而生,具备易整合、统一数据访问、兼容 Hive、支持标准数据连接等特性,能处理多种数据源的数据。
2025-04-22 09:36:25
817
原创 Spark-SQL(四)
为了使在 node01:50070 中查看到数据库,需要添加如下代码,就可以看到新创建的数据库 spark-sql_1。本节课学习了spark连接hive数据,在 spark-shell 中,可以看到连接成功。将数据放进input中,并运行如下代码,用于输出统计。创建文件夹 spark-warehouse。将依赖放进pom.xml中。
2025-04-21 19:12:48
664
原创 Spark-SQL(三)
本节课继续学习了SparkSQL ,了解到它提供了通用的保存数据和数据加载的方式。这里的通用指的是使用相同的API,根据不同的参数读取和保存不同格式的数据,SparkSQL 默认读取和保存的文件格式为parquet。
2025-04-16 19:42:58
948
原创 Spark-SQL(二)
弱类型 UDAF 在 Spark 早期版本中使用较多,使用时需要关注数据类型的定义和转换,灵活性稍弱但能满足常规聚合需求;强类型 UDAF 在 Spark 3.0 及之后版本提供了更简洁、类型安全的聚合方式,开发效率和代码可读性在一些复杂场景下可能更优。3. 在 Spark-SQL/src/main/scala 中创建Scala Class 文件,名为SparkSQLDemo ,添加以下代码。学习了自定义函数(UDF)、用户定义函数(UDAF)的使用,了解到强类型UDAF跟弱类型UDAF的区别。
2025-04-15 10:38:19
396
原创 Spark-SQL(一)
DataFrame 也可以叫 Dataset[Row],每一行的类型是 Row,不解析,每一行究竟有哪些字段,各个字段又是什么类型都无从得知,只能用上面提到的 getAS 方法或者共性里提到的模式匹配拿出特定字段。而 Dataset 中,每一行是什么类型是不一定的,在自定义了 case class 之后可以很自由的获得每一行的信息。与 RDD 和 Dataset 不同,DataFrame 每一行的类型固定为Row,每一列的值没法直接访问,只有通过解析才能获取各个字段的值。3 兼容 Hive。
2025-04-14 16:28:17
1153
原创 spark(三)
本节课接着上节课的继续学习了Key-Value类型中的sortByKey、join、leftOuterJoin、cogroup,新学习了RDD行动算子,其中包括。行动算子就是会触发action的算子,触发action的含义就是真正的计算数据。对两个类型为 (K, V) 和 (K, W) 的 RDD 进行连接操作。对两个类型为 (K, V) 和 (K, W) 的 RDD 进行分组操作。对 RDD 元素进行聚集操作,先聚合分区内数据,再聚合分区间数据。返回 RDD 中元素的数量。返回 RDD 的第一个元素。
2025-04-11 09:01:57
326
原创 spark(二)
示例:现有数据 List(("a", 88), ("b", 95), ("a", 91), ("b", 93), ("a", 95), ("b", 98)),求每个key的总值及每个key对应键值对的个数。本节课接上节课继续对于RDD进行学习,首先是对于创建RDD的不同方式,接着学习了RDD的三种转换算子:Value类型、双Value类型、Key-Value类型,以及各个转换算子的不同使用方式。以源 RDD 元素为主,去除两个 RDD 中的重复元素,保留源 RDD 的其他元素。
2025-04-10 09:44:10
723
原创 spark(一)
在不同的部署环境中,这个提交过程基本相同,但是又有细微的区别,这里不进行详细的比较,但是因为国内工作中,将 Spark 引用部署到Yarn 环境中会更多一些,所以这里提到的提交流程是基于 Yarn 环境的。对RDD相关概念进行了细致学习,包括其核心属性、执行原理、序列化方式、依赖关系、持久化操作、分区器的运用,以及文件读取与保存等内容。不可变:RDD 封装了计算逻辑,是不可以改变的,想要改变,只能产生新的 RDD,在新的 RDD 里面封装计算逻辑。Spark 在计算时,是使用分区函数对每一个分区进行计算。
2025-04-09 17:39:07
971
原创 Scala(七)
集合中的常用函数本节课学习了集合计算高级函数、普通WorldCount案例、复杂WordCount 案例。3.Reduce 简化(归约) :通过指定的逻辑将集合中的数据进行聚合,从而减少数据,最终获取结果。单词计数:将集合中出现的相同的单词,进行计数,取计数排名前三的结果。本节课继续学习了集合中的常用函数,新学习了队列、并行集合。扁平化+映射(FlatMap)简约(归约)(Reduce)普通WordCount 案例。扁平化(Flatten)分组(GroupBy)过滤(Filter)转化/映射(Map)
2025-04-08 08:35:19
581
原创 Scala(六)
数组包括可变数组、不可变数组,学习了如何定义和创建数组、可变数组和不可变数组之间的转换、多维数组、数组遍历。(2)[Int]是指定可以存放的数据类型,如果希望存放任意数据类型,则指定Any。本节课学习了数组、列表、Set集合、Map集合、元组、集合中常用的函数等等。Map集合同样也学习了可变Map和不可变Map,以及如何访问Map中的数据。集合中常用的函数学习了获取集合的相关属性、获取特定元素相关、排序相关等。二、可变mutable.Set。一、不可变 Set。
2025-04-07 15:52:00
663
原创 Scala(五)
案例中的 super,不是表示其父特质对象,而是表示上述叠加顺序中的下一个特质,即,MyClass 中的 super 指代 Color,Color 中的 super 指代Category,Category 中的super指代Ball。当一个类混入多个特质的时候,scala 会对所有的特质及其父特质按照一定的顺序进行排序,而此案例中的 super.describe()调用的实际上是排好序后的下一个特质中的 describe() 方法。可变集合,就是这个集合可以直接对原对象进行修改,而不会返回新的对象。
2025-04-03 10:09:55
763
原创 Scala(四)
Scala 有两种包的管理风格,一种方式和 Java 的包管理风格相同,每个源文件一个包(包名和源文件所在路径不要求必须一致),包名用“.”进行分隔以表示包的层级关系,如com.zpark.scala。本节课学习了Scala中的面向对象,Scala 的面向对象思想和 Java 的面向对象思想和概念是一致的但Scala 中语法和 Java 不同,补充了更多的功能。封装就是把抽象出的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。
2025-04-02 17:54:17
942
原创 Scala(三)
函数的定义本节课学习了函数式编程,了解到它与Java、C函数式编程的区别;学习了函数的基础,了解到它的基本语法、函数和方法的定义、函数高级。。。学习到函数至简原则,高阶函数,匿名函数等。函数的定义函数基本语法例子:函数和方法的区别函数:为完成某一功能的程序语句的集合方法:类中的函数1.Scala 语言可以在任何的语法结构中声明任何的语法2.函数没有重载和重写的概念;方法可以进行重载和重写3.Scala 中函数可以嵌套定义例子:函数定义函数1无参数无返回值函数2无参数。
2025-04-01 11:37:47
842
原创 Scala(二)
本节课继续学习了Scala中的循环语句,学习了循环守卫、循环步长、循环返回值、倒序打印、循环中断等等,学习了代码中的经典实例:鸡兔同笼、百钱买百鸡。循环守卫,即循环保护式(也称条件判断式,守卫)。保护式为 true 则进入循环体内部,为false 则跳过,类似于continue。将遍历过程中处理的结果返回到一个新 Vector 集合中,使用 yield 关键字。例子:输出1-10,并将原数据中所有值乘以 2,并把数据返回到一个新的集合中。例子:请输出1-20中所有的偶数(不包含20)1-10中,不输出2。
2025-03-31 16:43:40
223
原创 Scala
本节课学习了Scala编程中的数据类型、变量的定义、基本操作符、字符串的穿插、条件表达式和循环语句。数据类型涵盖值类型,如Byte、Short、Int、Long、Float、Double、Char、Boolean,能满足不同数值和字符的表示需求;如果被循环的是 Map,返回的就是Map,被循环的是 List,返回的就是 List,以此类推。当y的值类型既可能为Int又可能为String时,它的类型被定义为Any,是Int和String的父类。先进行除法运算,再将结果赋值给左边的变量。
2025-03-28 11:18:53
1042
原创 Scala简介
本节课对Scala进行了系统的学习,先是学习了它的简介,了解到它融合了面向对象与函数式编程特点,是一种多范式的编程语言,运行于Java平台,应用广泛,兼容现有的 Java 程序,Scala是基于Java的,Scala与Java的关系是非常紧密的,因为Scala是基于JVM(JAVA虚拟机)的一门编程语言。Scala 的编译模型(独立编译,动态类加载)与 Java 和 C# 一样,所以 Scala 代码可以调用 Java 类库(对于.NET实现则可调用.NET类库)。Scala可以任意调用Java的代码。
2025-03-27 09:33:21
781
原创 图像识别技术与应用(二十)
本节课我们深入学习了net算法系列中的U-net、U-net++和U-net+++。U-net是一种经典的卷积神经网络架构,广泛应用于图像分割任务,其独特的U形结构结合了编码器和解码器,能够有效地捕捉图像的上下文信息并生成精确的分割结果。;U-net++ 在 U-net 的基础上进行优化,通过引入更复杂的跳跃连接(密集跳跃连接)和嵌套结构,提升了分割精度,进一步增强了特征传递和信息融合;U-net+++ 则进一步创新,通过更复杂的网络结构和多层次的特征融合,进一步提高了模型的性能,实现了更好的分割效果。
2025-03-21 09:36:27
575
原创 图像识别技术与应用(十八)
本节课讲解了YOLO系列中的YOLOv4,YOLOv4作为目标检测领域的重要算法,极大地提升了检测的速度与精度。课程从其核心原理入手,剖析了骨干网络CSPDarknet53如何高效提取图像特征,以及FPN+PAN结构怎样实现多尺度特征融合,让模型对不同大小目标都能精准识别。在学习过程中,还深入了解了数据增强、损失函数设计等关键技术,明白了它们在提升模型性能中所发挥的作用。通过代码实践与案例分析,切实掌握了YOLOv4在实际场景,如智能安防、自动驾驶物体识别中的应用流程。
2025-03-14 10:19:32
1190
原创 图像识别技术与应用(十六)
YOLOv1(You Only Look Once v1)是一种具有开创性的目标检测算法将目标检测任务当作一个回归问题来处理,把输入图像划分为S\times S的网格,若目标中心落在某个网格内,则该网格负责预测这个目标。每个网格预测B个边界框和这些边界框的置信度,以及C个类别概率。最终通过非极大值抑制等操作得到检测结果。采用了类似GoogLeNet的网络结构,包含24个卷积层和2个全连接层。先通过卷积层提取图像特征,然后全连接层进行目标类别和位置的预测。
2025-03-12 16:27:11
882
原创 图像识别技术与应用(十五)
本节课学习了目标检测项目,目标检测是计算机视觉领域的重要任务,主要是识别图片中有哪些物体并且找到物体的存在位置。多任务:位置 + 类别目标种类与数量繁多的问题目标尺度不均的问题 遮挡、声等外部环境干扰。
2025-03-11 10:39:06
1381
原创 学习总结项目
未来计划进一步优化模型,如尝试更先进的模型架构、收集更多高质量数据,提升模型在复杂场景下的性能,以拓展模型在实际业务中的应用范围。制作可以按照数据获取、数据预处理、选择模型、模型预测的流程进行讲述,可以叠加介绍项目背景、模型选择、模型预测、可视化界面使用展示、未来规划、未来展望等进行完善。本次项目我使用了VGG19模型、AlexNet模型和已使用的VGG16模型进行对比,在已有的条件下,对代码进行更改是,结果展示中,VGG19模型的准确率要比VGG16高,而AlexNet模型的准确率却要低于VGG16。
2025-03-10 17:26:31
324
原创 图像识别技术与应用(十四)
它从 MNIST 数据集中加载数据,构建一个包含两个隐藏层的全连接神经网络,使用交叉熵损失函数和随机梯度下降(SGD)优化器进行训练,最后绘制训练损失曲线。定义损失函数可以通过自定义方法或使用PvIorch内署的损失函数,如回归使用的loss fimem, SELoss0),分类使用的m.BCELoss等损失函数。optimizer.zero grad()在默认情况下梯度是累加的,需要手工把梯度初始化或清零,调用optimizer.zero_grad()即可。:训练的轮数,即整个数据集被训练的次数。
2025-03-06 11:05:38
702
原创 图像识别技术与应用(十三)
综上所述,这段代码通过构建多个不同的 CNN 模型,并采用集成学习的方法对 CIFAR - 10 数据集进行图像分类,同时单独训练和评估了 VGG16 模型。在每个训练轮次中,依次对每个模型进行前向传播、计算损失和反向传播,最后更新所有模型的参数。在测试阶段,对 VGG16 模型进行预测,统计正确预测数量,并输出每个训练轮次的正确率。在每个训练轮次中,对 VGG16 模型进行前向传播、计算损失和反向传播,更新模型参数。)确定最终的预测结果,统计集成模型和每个模型的正确预测数量,并输出正确率。
2025-03-05 17:45:39
538
原创 图像识别技术与应用(十二)
这段代码是用于评估对于已经训练好的神经网络的准确率,correct是用于记录预测正确的样本数量,所以初始值为0,total是用于记录测试集中样本总数,所以初始值为0;这段代码是计算输出一个分类模型在测试集上,创建两个长度为10的列表,分别记录每个类别预测正确的样本数和每个类别样本的总数量,关闭了梯度计算,第一个for循环遍历测试数据加载器,第二个for循环统计每个类别的正确预测数和总数,第三个for循环是计算并输出每个类别的准确率,发现10个样本中,准确率最高的是car,为73%,最低的是cat-28%
2025-03-04 11:17:08
628
原创 图像识别技术与应用(十一)
trainloader是之前定义的数据加载器,用于加载训练数据。本节课回顾了上周所讲过的图像分类问题,理解到图像是可以有三种分类:通用的多类别图像分类,子类细粒度图像分类,实例级图像分类;transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)):对图像进行归一化处理,有三个值是因为有三个通道-RGB)(transforms.ToTensor():将图像转换为Tensor格式,通常会将图像的像素值从[0, 255]的范围转换为[0, 1]的范围。
2025-03-03 17:38:09
622
原创 图像识别技术与应用(十)
采用深度残差网络(ResNet)、密集连接网络(DenseNet)等非常深的神经网络架构,通过大量的卷积层、池化层、归一化层等构建极深的网络,能自动学习到图像中极其复杂和抽象的特征表示,有效捕捉图像的全局和局部信息。它展示了模型预测结果与真实标签之间的关系,矩阵的行表示真实类别,列表示预测类别,矩阵中的每个元素表示相应真实类别被预测为相应预测类别的样本数量。一般情况下,模型的精度越高,说明模型的效果越好。准确率(Precision):又称为查准率,表示在模型识别为正类的样本中,真正为正类的样本所占的比例。
2025-02-28 10:27:21
946
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人