- 博客(49)
- 收藏
- 关注
原创 双11美妆数据分析
查看统计摘要: df.describe() 对数值型列给出计数、均值、标准差、最小值、四分位数和最大值等统计信息。数据清洗 1. 处理缺失值 检测缺失值: df.isnull().sum() 统计每列缺失值数量。处理方式: 对于少量缺失值且该列是数值型,可考虑用均值填充 若是分类数据,可用众数填充 若缺失值较多且对分析影响大,可考虑删除整行或整列 2. 处理重复值 检测重复值: df.duplicated().sum() 统计数据中重复行的数量。
2025-05-07 19:18:53
1042
原创 电商双11美妆数据分析
缺失值处理:先观察存在缺失值的行的基本情况,用 0 来填补缺失值 :先了解缺失值所在行的数据特点,判断缺失原因。用 0 填补是一种简单处理方式,适用于某些数值型数据,且假设缺失值代表没有发生或数值为 0 的情况 数据挖掘寻找新的特征:给商品添加分类,给出各个关键词的分类类别 :从原始数据中挖掘新信息,对商品进行分类,比如将美妆产品细分为护肤类、彩妆类、美发类等,给关键词分类(如将 “保湿”“美白” 等关键词归类到护肤功效类 ),有助于更细致地分析数据。3. 数据分析及可视化。
2025-05-06 20:11:04
570
原创 数据科学与计算
Seaborn 的设计目标是简化统计数据可视化的过程,提供高级接口和美观的默认主题,使得用户能够通过少量的代码实现复杂的图形。sns.violinplot()用于显示分布的形状和密度估计,结合了箱线图和核密度估计。sns.scatterplot()用于绘制两个变量之间的散点图,可选择添加趋势线。sns.boxplot()用于绘制变量的分布情况,包括中位数、四分位数等。sns.lineplot()用于绘制变量随着另一个变量变化的趋势线图。sns.barplot()用于绘制变量的均值或其他聚合函数的柱状图。
2025-04-30 18:19:16
908
原创 大数据应用开发和项目实战-matplotlib(二)
其格式为imshow(X, cmap=None, interpolation=None, )imshow() 函数是 Matplotlib 库中的一个函数,可显示图像。我们可以使用 pyplot 中的 hist() 方法来绘制直方图。imsave() 可以将生成的图像保存到指定的目录中。imread() 用于从图像文件中读取图像数据。结合 Pandas 绘制直方图。pie():绘制饼图。
2025-04-29 13:20:34
483
原创 大数据应用开发和项目实战-matplotlib
Matplotlib 是 Python 的绘图库,它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。Matplotlib的导入:import matplotlib.pyplot as plt。x, y:点或线的节点,x 为 x 轴数据,y 为 y 轴数据,数据可以列表或数组。**kwargs:可选,用在二维平面图上,设置指定属性,如标签,线的宽度等。plot()中的 marker 参数:定义一些不一样的标记。plot() :用于画图,它可以绘制点和线。grid():来设置图表中的网格线。
2025-04-28 19:24:51
471
原创 Spark总结
其弹性分布式数据集(RDD)是核心数据结构,支持多种操作,如转换操作(map、filter等)和行动操作(count、collect等),让开发者能方便地处理大规模数据集,适用于复杂算法和迭代计算场景。可从多种数据源(如Hive、Parquet、JSON等)读取数据,进行复杂的查询、分析和转换,在ETL、报表生成、交互式数据分析场景中应用广泛。通过DStream(离散化流)这一抽象数据结构,实现对实时数据流的转换和操作,像窗口操作、状态维护等。常用于实时监控、实时日志分析、在线广告投放等实时处理场景。
2025-04-27 16:27:32
314
原创 Spark-Streaming核心编程
输出操作包括print()、saveAsTextFiles()、saveAsObjectFiles()、saveAsHadoopFiles()和foreachRDD(),其中foreachRDD()最通用,但使用时连接操作不能写在driver层面,写在foreach中效率低,推荐使用foreachPartition在分区创建连接。UpdateStateByKey:用于在DStream中跨批次维护状态,构建由(键,状态)对组成的新DStream。使用时需定义状态及状态更新函数,且要配置检查点目录。
2025-04-27 16:22:00
585
原创 Spark-Streaming核心编程
ReceiverAPI:早期版本使用,需专门Executor接收数据再发送给其他Executor计算,存在接收和计算速度不一致导致计算节点内存溢出问题,当前版本不适用。需求:用SparkStreaming从Kafka读取数据,简单计算后打印到控制台。DirectAPI:由计算的Executor主动消费Kafka数据,速度可控。运行程序:程序接收并处理Kafka生产的数据,打印相关日志。2. Kafka 0-10 Direct模式操作步骤。1. Kafka数据源的两种API对比。
2025-04-24 11:22:15
643
原创 kafka
安装与启动:需先安装JDK和Zookeeper,下载解压安装包并修改配置,分发到其他节点。可通过脚本启动和停止,还能配置环境变量实现一键启停。角色与术语:包含Broker、Topic、Partition等多种角色,消息消费后默认保存7天,由Zookeeper管理。优势与模式:与传统消息系统不同,具备分布式、高吞吐量、多订阅者、消息持久化等优势。简介:分布式发布 - 订阅消息系统,具有快速、可扩展、分布式、分区和可复制的特点。特性:高吞吐量、低延迟,可扩展,持久可靠,容错性强,支持高并发。
2025-04-23 19:05:09
495
原创 Spark-Streaming简介 核心编程
2. Spark-Streaming架构:包含背压机制,1.5版本前靠设置静态参数限制Receiver数据接收速率,易导致资源利用率低。1. RDD队列创建DStream:可利用 ssc.queueStream(queueOfRDDs) 创建DStream,队列中的每个RDD都会被当作一个DStream处理。定义:用于处理流式数据,支持多种数据输入源,可运用Spark原语运算,结果能保存于多处。特点:易用,支持多语言编写实时计算程序;易整合,能在Spark上运行,结合离线处理实现交互式查询。
2025-04-22 11:39:47
603
原创 Spark-SQL核心编程
外部Hive:在spark-shell中连接外部Hive,需拷贝hive-site.xml到conf/目录并修改其中的url、将MySQL驱动拷贝到jars/目录、把core-site.xml和hdfs-site.xml拷贝到conf/目录,最后重启spark-shell。1. Spark-SQL连接Hive概述:Spark SQL编译时可选择包含Hive支持,包含后能支持Hive表访问、UDF、HQL等功能,且无需事先安装Hive,编译时引入Hive支持为佳。
2025-04-21 19:16:10
571
原创 Spark-SQL核心编程
将 hive-site.xml (修改 ConnectionURL 为实际Hive元数据库地址)、 core-site.xml 、 hdfs-site.xml 拷贝到Spark的 conf/ 目录。通用方法: df.write.save ,通过 format 指定格式, option 设置参数(如JDBC连接信息), save 指定路径。保存: df.write.mode("append").save("保存路径") (自动以Parquet格式保存)。
2025-04-16 19:11:15
1003
原创 Spark-SQL简介及核心编程
实际开发常借助样例类转换,定义 case class User(name:String, age:Int) 后,通过 sc.makeRDD(List(("zhangsan",30), ("lisi",40))).map(t=>User(t._1, t._2)).toDF.show 实现转换。共性:都是分布式弹性数据集,有惰性机制、共同函数,操作需 import spark.implicits._ ,会自动缓存运算,都有分区概念,DataFrame和DataSet可模式匹配获取字段信息。
2025-04-14 19:15:52
848
原创 Spark-Core编程
函数签名 def aggregate[U: ClassTag](zeroValue: U)(seqOp: (U, T) => U, combOp: (U, U) => U): U。cogroup算子:作用于(K, V)和(K, W)型RDD,返回(K, (Iterable[V], Iterable[W]))型RDD。join算子:连接两个(K, V)和(K, W)型RDD,返回(K, (V, W))型RDD。5. first:返回RDD中的首个元素,函数签名 def first(): T。
2025-04-11 14:05:41
780
原创 spark Core-RDD转换算子
3. mapPartitionsWithIndex算子:以分区为单位处理数据,处理时可获取当前分区索引,函数签名为 def mapPartitionsWithIndex[U: ClassTag](f: (Int, Iterator[T]) => Iterator[U], preservesPartitioning: Boolean = false): RDD[U]。5. glom算子:将同一个分区的数据转换为内存数组,分区不变,函数签名为 def glom(): RDD[Array[T]]。
2025-04-10 15:01:59
1687
原创 spark运行架构
Yarn Client模式:Driver在本地机器运行,与ResourceManager通讯申请启动ApplicationMaster,后续流程包括启动Executor、反向注册、执行main函数等,执行Action算子时触发Job并分发任务。具有存储、容错、计算、分片弹性,数据分布式存储,封装计算逻辑但不保存数据。3. 执行原理:在Yarn环境中,先启动集群,Spark申请资源创建调度和计算节点,将计算逻辑按分区划分为任务,调度节点根据计算节点状态发送任务执行,RDD负责封装逻辑并生成任务。
2025-04-09 19:39:31
1095
原创 Spark概述及安装
local 本地模式毕竟只是用来进行练习演示的,真实工作中还是要将应用提交到对应的集群中去执行,Spark 的 Standalone 模式体现了经典的 master-slave 模式。-rw-r--r-- 1 root root 106418783 11月 22 20:14 spark-2.0.0-bin-hadoop2-without-hive.tgz。Spark核心模块:Spark Core,Spark SQL ,Spark Streaming ,Spark MLlib ,Spark GraphX。
2025-04-08 10:50:43
712
原创 Scala语言-集合计算高级函数
(4)扁平化+映射 注:flatMap 相当于先进行 map 操作,在进行 flatten 操作集合中的每个元素的子元素映射到某个函数并返回新集合。Reduce 简化(归约) :通过指定的逻辑将集合中的数据进行聚合,从而减少数据,最终获取结果。(1)过滤:遍历一个集合并从中获取满足指定条件的元素组成一个新的集合。单词计数:将集合中出现的相同的单词,进行计数,取计数排名前三的结果。(2)转化/映射(map):将集合中的每一个元素映射到某一个函数。(5)分组(group):按照指定的规则对集合的元素进行分组。
2025-04-08 09:54:25
560
原创 数组 集合 元组
默认情况下, Scala 使用的是不可变集合, 如果你想使用可变集合, 需要引用scala.collection.mutable.Set 包。Scala 中的 Map 和 Java 类似,也是一个散列表,它存储的内容也是键值对(key-value) 映射。(3)sortWith:基于函数的排序,通过一个 comparator 函数,实现自定义排序的逻辑。(1)arr2.toArray 返回结果才是一个不可变数组,arr2 本身没有变化。(5)集合间合并:将一个整体拆成一个一个的个体,称为扁平化。
2025-04-07 19:39:39
642
原创 Scala面向对象(二)
Scala 语言中,采用特质 trait(特征)来代替接口的概念,也就是说,多个类具有相同的特质(特征)时,就可以将这个特质(特征)独立出来,采用关键字 trait 声明。Scala 中的 trait 中即可以有抽象属性和方法,也可以有具体的属性和方法,一个类可以混入(mixin)多个特质。(5)当使用 new 关键字构建对象时,调用的其实是类的构造方法,当直接使用类名构建对象时,调用的其实时伴生对象的 apply 方法。4)可变集合,就是这个集合可以直接对原对象进行修改,而不会返回新的对象。
2025-04-03 11:37:57
1688
原创 Scala面向对象
Scala 有两种包的管理风格,一种方式和 Java 的包管理风格相同,每个源文件一个包(包名和源文件所在路径不要求必须一致),包名用“.”进行分隔以表示包的层级关系。另一种风格,通过嵌套的风格表示层级关系。封装就是把抽象出的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。在 Scala 中可以为每个包定义一个同名的包对象,定义在包对象中的成员,作为其对应包下所有 class 和 object 的共享变量,可以被直接访问。
2025-04-02 18:01:33
1071
原创 函数式编程
如果函数无参,但是声明了参数列表,那么调用时,小括号,可加可不加如果函数没有参数列表,那么小括号可以省略,调用时小括号必须省略如果不关心名称,只关心逻辑处理,那么函数名(def)可以省略。当函数返回值被声明为 lazy 时,函数的执行将被推迟,直到我们首次对此取值,该函数才会执行。这种函数我们称之为惰性函数。解决问题时,将问题分解成一个一个的步骤,将每个步骤进行封装(函数),通过调用这些封装好的步骤,解决问题。闭包:如果一个函数,访问到了它的外部(局部)变量的值,那么这个函数和他所处的环境,称为闭包。
2025-04-01 13:38:43
624
原创 大数据技术之Scala
Scala 内置控制结构特地去掉了 break 和 continue,是为了更好的适应函数式编程,推荐使用函数式的风格解决break 和continue 的功能,而不是一个关键字。因为 while 中没有返回值,所以当要用该语句来计算并返回结果时,就不可避免的使用变量,而变量需要声明在 while 循环的外部,那么就等同于循环的内部对外部的变量造成了影响,所以不推荐使用,而是推荐使用 for 循环。其 中 ,for,while,do…循环守卫,即循环保护式(也称条件判断式,守卫)。7.while循环控制。
2025-03-31 17:55:51
590
原创 Scala基础
1.字符串的插值操作Scala中的三个字符串插值器:s、f、raws:在任何字符串前加上s,就可以直接在串中使用变量了f:除了 s 的功能外(不指定格式就和 s 一样),还能进行格式化输出,在变量后用 % 指定输出格式raw:除了对字面值中的字符不做编码外,raw 插值器与 s 插值器在功能上是相同的2.条件表达式 当y的值类型既可能为Int又可能为String时,它的类型被定义为Any,是Int和String的父类。没有else时,会默认为else (),y的类型被定义为AnyVal3.类型的转换 4.块
2025-03-28 11:11:27
628
原创 Scala基础语法
Scala标识符的命名应遵循清晰、简洁、有意义的原则,以提高代码的可读性和可维护性。用于组织代码,避免命名冲突。do 、 while :先执行一次循环体,再判断条件,条件为真则继续循环。使用 object 定义单例对象,可用于存放工具方法或全局共享的状态。Scala标识符是用来给变量、函数、类、对象等命名的符号。数组: Array ,用于存储固定大小的同类型元素序列。没有函数名的函数,可作为参数传递或赋值给变量。高阶函数:接受函数作为参数或返回函数的函数。for :用于遍历集合或执行固定次数的循环。
2025-03-27 11:35:13
685
原创 Scala简介
Scala运行在Java虚拟机(JVM)上,可以与Java代码无缝交互,能方便地调用现有的Java类库,这使得Scala可以充分利用Java生态系统的丰富资源。函数式编程应用:在一些需要高度并发和并行处理的场景中,Scala的函数式编程特性使其能够有效地处理异步操作和并发任务,如Akka框架基于Scala实现了高效的并发编程模型。强大的类型系统:Scala的类型系统非常强大,支持泛型、类型参数、抽象类型等高级特性,能在编译时进行严格的类型检查,提高代码的可靠性。Scala是静态编译的,所以速度会快很多。
2025-03-27 11:12:19
673
原创 U-net系列算法
概述就是编码解码过程,简单但是很实用 ,应用广,起初是做医学方向 , 现在也是。不同的max pool整合低阶特征(X1和X2 , 轮廓之类的)上采样整合高阶特征(感受野大的 , 全局的)5*64 =320 , 最终组合得到全部特征。现在来看 , 很多视觉任务都可以套用这招。训练的时候同样会用到L4 ,效果还不错。把能拼能凑的特征全用上就是升级版了。以前我们都是加法 , 现在全都要。其实跟densenet思想一致。可以根据速度要求来快速完成剪枝。也是很常见的事 , 多输出。特征融合 ,拼接更全面。
2025-03-21 11:06:51
799
原创 图像分割项目
Cityscape数据集:5000张精细标注的图像(2975张训练图、500张验证图和1525张测试图)、20000张粗略标注的图像。COCO数据集:共91类,以人类4岁小孩能够辨识为基准,其中82类有超过5000个instance。实例分割:只预测前景目标的类别属性以及边框,个体ID,每一个像素可以属于多个ID。图像分割的应用场景:人像抠图,医学组织提取,遥感图像分析,自动驾驶,材料图像等。将不同的像素划分到不同的类别,非常细粒度的分类。全景分割:每个像素点分配一个语义类别和一个唯一的实例ID。
2025-03-20 10:35:22
532
原创 YOLOV4
数据增强: 调整亮度、 对比度、 色调、 随机缩放、 剪切、 翻转、 旋转网络正则化的方法: Dropout、 Dropblock等。并且还是一个捷径 , 红色的没准走个100层(Resnet) , 绿色的几层就到了。亲民政策 , 单GPU就能训练的非常好 , 接下来很多小模块都是这个出发点。M V3中为了更好满足不同输入大小 , 训练的时候要改变输入数据的大小。M 做人留一面日好相见 ,柔和一点的NMS , 更改分数而且直接剔除。M 注意力机制 , 网络细节设计 ,特征金字塔等 , 你能想到的全有。
2025-03-14 10:44:26
741
原创 YOLOV3
YOLO-V2中选了5个,这回更多了,一共有9种13*13特征图上:(116x90),(156x198),(373x326) 26*26特征图上:(30x61),(62x45),(59x119) 52*52特征图上:(10x13),(16x30),(33x23)终于到V3了,最大的改进就是网络结构,使其更适合小目标检测特。先验框更丰富了,3种scale,每种3个规格,一共9种。征做的更细致,融入多持续特征图信息来预测不同规格物体。下采样通过stride为2实现。3种scale,更多先验框。
2025-03-13 10:14:29
601
原创 LOLOV1和YOLOV2
堆叠小的卷积核所需的参数更少一些,并且卷积过程越多,特征提取也会越细致,加入的非线性变换也随着增多,还不会增大权重参数个数,这就是VGG网络的基本出发点,用小的卷积核来完成体特征提取操作。faster-rcnn系列选择的先验比例都是常规的,但是不一定完全适合数据集。可能导致模型水土不服,V2训练时额外又进行了10次448*448的微调。tx=1,则将bbox在x轴向右移动wp;最后一层时感受野太大了,小目标可能丢失了,需融合之前的特征。这样会导致收敛问题,模型不稳定,尤其是刚开始进行训练的时候。
2025-03-12 16:48:32
824
原创 目标检测项目
COCO(JSON)格式:(Xmin, Ymin, W, H),其中x,y,w,h均不是归一化后的数值,分别代表左上角坐标和宽、高。VOC(XML)格式:(Xmin,Ymin,Xmax,Ymax)分别代表左上角和右下角的两个坐标。mean AP:每个类别所得到的AP的均值Average Precision:11点法、近似面积法。YOLO(TXT)格式:(x,y,w,h)分别代表中心点坐标和宽、高x,y,w,h均为归一化结果。候选框列表中的所有框依次与A计算IoU,删除大于阈值的候选框。
2025-03-11 10:29:01
751
原创 pytorch实现cifar10多分类总结
它包含了10个不同类别,每个类别有6000张图像,其中5000张用于训练,1000张用于测试。这10个类别分别为:飞机、汽车、鸟类、猫、鹿、狗、青蛙、马、船和卡车。1.数据加载及预处理(实现数据加载及预处理、归一化的理解、访问数据集、Dataset对象、Dataloader对象)CIFAR-10是一个常用的图像分类数据集,每张图片都是 3×32×32,3通道彩色图片,分辨率32×32。5.测试网络:部分数据集(实际的label)、部分数据集(预测的label)、整个测试集。
2025-03-10 16:44:10
540
原创 集成算法 机器学习
print("VGG16模型迭代" + str(ep) + "次的正确率为:" + str(correct/len(testloader)))print("epoch:" + str(ep) + "集成模型的正确率" + str(vote_correct/len(testloader)))print("模型" + str(idx) + "的正确率为:" + str(correct/len(testloader)))optimizer.zero_grad() #10个网络清除梯度。
2025-03-05 17:36:32
978
原创 图像分类项目
可以用来表示模型的精度,即模型识别正确的个数/样本的总个数。一般情况下,模型的精度越高,说明模型的效果越好。多类别分类模型各个类别之间的分类情况对于k分类问题,混淆矩阵为k*k的矩阵,元素Cij表示第i类样本被分类器判定为第j类的数量。准确率(Precision):又称为查准率,表示在模型识别为正类的样本中,真正为正类的样本所占的比例。主对角线的元素之和为正确分类的样本数,其余元素之和为错误分类的样本数。召回率(Recall):又称为查全率,表示模型正确识别出为正类的样本的数量占总的正类样本数量的比值。
2025-02-28 09:57:16
712
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅