- 博客(48)
- 收藏
- 关注
原创 电商双11美妆数据分析
平均每单价格低的店铺的总销量、销售额都高于均价更高的。价格便宜是消费者考虑的最多的一个点。销量最高的相宜本草的均价就很低,同时它的销售额也是最高额的。而均价较高的类中,只有雅诗兰黛的销售额相对客观。对于一些中高端商品,可以考虑适当降价来吸引更多消费者。而一些低端商品可以考虑多推广来提高知名度获取销量。所有大类中,护肤品类的销量最高,其次是化妆品类。所有小类中,清洁类、补水类分别是销量的前二名。男士专用的商品中,护肤品销量最高,而化妆品类中主要是唇膏。并且妮维雅占据了男士专用的大部分市场。
2025-05-07 17:08:54
2007
原创 数据初步了解
data = df.drop_duplicates(inplace = False) 删除数据中的重复行, inplace = False 表示不直接在原数据 df 上操作,而是返回一个新的 DataFrame 赋值给 data。- df = pd.read_csv('双十一淘宝美妆数据.csv') 读取了名为 双十一淘宝美妆数据.csv 的文件,并将数据存储在 df 这个 DataFrame 对象中。可以看出数据有27598条记录,7列。1. 导入库并读取数据。
2025-05-06 19:40:02
237
原创 大数据应用开发和项目实战-Seaborn
Seaborn是基于Python数据可视化库Matplotlib开发的扩展库,专注于统计图形的绘制,旨在通过简洁的代码实现复杂数据的可视化,帮助用户更轻松地呈现和理解数据。- 功能:比较不同类别变量的统计值(默认显示均值),可通过 estimator 参数指定聚合函数(如求和、中位数)。- 功能:展示两个连续变量的关系,可通过颜色、大小等维度添加额外信息,或添加趋势线( line_kws 参数)。- 功能:结合箱线图和核密度估计,展示数据分布的形状和密度,适合对比多组数据的分布特征。
2025-04-30 18:34:35
614
原创 大数据应用开发和项目实战
imread() 方法返回一个 numpy.ndarray 对象,其形状是 (nrows, ncols, nchannels),表示读取的图像的行数、列数和通道数。imsave() 可以将生成的图像保存到指定的目录中。其格式为matplotlib.pyplot.hist(x, bins=None, color=None, label=None, **kwargs)imsave() 可以将生成的图像保存到指定的目录中。imsave() 可以将生成的图像保存到指定的目录中。
2025-04-29 11:54:17
424
原创 大数据应用开发和项目实战
plot() :用于画图,它可以绘制点和线。plot() :用于画图,它可以绘制点和线。plot() :用于画图,它可以绘制点和线。· 绘制一条不规则线,坐标为 (1, 3)、(2, 8)、(6, 1)、(8, 10)。plot() :用于画图,它可以绘制点和线。· 绘制坐标 (1, 3) 和 (8, 10) 的两个点。plot() :用于画图,它可以绘制点和线。· 绘制坐标 (1, 3) 到 (8, 10) 的线。xlabel()、ylabel() :设置 x 轴和 y 轴的标签。
2025-04-28 18:18:14
402
原创 Spark-Streaming核心编程的总结
在Spark 1.5 以前版本,用户如果要限制 Receiver 的数据接收速率,可以通过设置静态配制参数“spark.streaming.receiver.maxRate”的值来实现,此举虽然可以通过限制接收速率,来适配当前的处理能力,防止内存溢出,但也会引入其它问题。➢ saveAsHadoopFiles(prefix, [suffix]):将 Stream 中的数据保存为 Hadoop files. 每一批次的存储文件名基于参数中的为"prefix-TIME_IN_MS[.suffix]"。
2025-04-27 16:20:25
990
原创 Spark-Streaming核心编程
给定一个由(键,事件)对构成的 DStream,并传递一个指定如何根据新的事件更新每个键对应状态的函数,它可以构建出一个新的 DStream,其内部数据为(键,状态) 对。与 RDD 中的惰性求值类似,如果一个 DStream 及其派生出的 DStream 都没有被执行输出操作,那么这些 DStream 就都不会被求值。updateStateByKey() 的结果会是一个新的 DStream,其内部的 RDD 序列是由每个时间区间对应的(键,状态)对组成的。1. 定义状态,状态可以是一个任意的数据类型。
2025-04-27 15:54:32
595
原创 Spark-Streaming核心编程
示例代码从两个不同节点的socket接收数据,分别处理成 (word, 1) 和 (word, "a") 形式的DStream,然后进行join操作并打印结果。1. DStream转换概述:DStream操作分Transformations(转换)和Output Operations(输出)两类,转换操作中有 updateStateByKey() 、 transform() 及Window相关原语等特殊操作。2. 无状态转化操作:将简单RDD转化操作应用于DStream的每个批次(即每个RDD)。
2025-04-25 09:53:33
237
原创 Spark-Streaming核心编程
定义Kafka参数,通过KafkaUtils.createDirectStream读取Kafka数据创建DStream,提取数据中的value部分,进行wordCount计算并打印结果,最后启动StreamingContext等待终止。导入依赖:添加 org.apache.spark:spark - streaming - kafka - 0 - 10_2.12:3.0.0 依赖,为后续代码实现提供支持。DirectAPI:由计算的Executor主动消费Kafka数据,速度可自行控制。
2025-04-24 11:15:56
449
原创 Kafka简介
基础概念:是分布式消息系统,有高吞吐量、可扩展等特性。- Yarn模式部署:解压缩并重命名文件,修改Hadoop和Spark配置文件,启动HDFS和Yarn集群后提交测试应用,配置历史服务可记录任务运行情况。- Windows模式部署:解压到指定路径,执行bin目录下的spark-shell.cmd启动本地环境,在命令行执行代码指令进行操作。- 安装与配置:安装前需准备JDK和Zookeeper,下载解压后修改配置文件,分发安装包到集群节点,配置环境变量后可启动。1. Kafka核心要点。
2025-04-23 19:06:09
353
原创 Spark-Streaming核心编程
在Spark 1.5 以前版本,用户如果要限制 Receiver 的数据接收速率,可以通过设置静态配制参数“spark.streaming.receiver.maxRate”的值来实现,此举虽然可以通过限制接收速率,来适配当前的处理能力,防止内存溢出,但也会引入其它问题。Spark Streaming 支持的数据输入源很多,例如:Kafka、Flume、Twitter等,以及和简单的 TCP 套接字等等。容错:Spark Streaming在没有额外代码和配置的情况下,可以恢复丢失的数据。
2025-04-22 11:49:46
311
原创 Spark-SQL编程
代码操作Hive:导入spark-hive_2.12和hive-exec依赖,将hive-site.xml拷贝到项目resources目录。外部Hive:在spark-shell中连接外部Hive,需拷贝hive-site.xml到conf/目录并修改连接地址,将MySQL驱动拷贝到jars/目录,拷贝core-site.xml和hdfs-site.xml到conf/目录,最后重启spark-shell。连接步骤与连接外部Hive类似,还需启动Thrift Server,再用beeline连接。
2025-04-21 19:53:36
604
原创 Spark-SQL核心编程
代码操作Hive:先导入 spark-hive_2.12 和 hive-exec 依赖,拷贝 hive-site.xml 到项目 resources 目录,代码中启用Hive支持。- 外部Hive:在 spark-shell 连接需拷贝 hive-site.xml core-site.xml hdfs-site.xml 到 conf/ 目录,将 hive-site.xml 中 localhost 改为实际节点名,拷贝MySQL驱动到 jars/ 目录,最后重启 spark-shell。
2025-04-21 10:19:15
483
原创 spark-SQL核心编程
UDAF(用户自定义聚合函数):以计算平均工资为例,分别通过RDD、弱类型UDAF、强类型UDAF三种方式实现。RDD方式直接对RDD进行转换和聚合操作;编写测试代码,创建Spark配置和SparkSession对象,读取JSON文件,运用SQL和DSL风格语法查询数据,展示RDD、DataFrame、DataSet之间的相互转换。- UDF(用户自定义函数):注册一个将输入字符串加上 Name: 前缀的UDF,在SQL语句中使用该函数处理DataFrame数据。
2025-04-15 11:38:57
442
原创 spark-SQL核心编程
➢ DataFrame 是 DataSet 的特列,DataFrame=DataSet[Row] ,所以可以通过 as 方法将 DataFrame 转换为 DataSet。获取数据时需要指定顺序。共性:都是分布式弹性数据集,有惰性机制,有共同函数,需特定包,自动缓存运算,有分区概念,DataFrame和DataSet可模式匹配获取字段信息。编程抽象:提供DataFrame和DataSet两个编程抽象,DataFrame带schema元信息,DataSet是其扩展,具有强类型等特性。
2025-04-14 16:51:12
763
原创 spark-core编程2
文档通过简单示例展示了累加器的基本用法,还给出了自定义累加器实现wordcount的详细步骤,包括创建自定义累加器类,重写相关方法,以及在Spark程序中注册和调用自定义累加器。文档通过代码示例,展示了广播变量的使用过程,先创建广播变量,然后在RDD操作中使用广播变量的值,最终输出结果。- reduce:聚集RDD所有元素,先分区内聚合,再分区间聚合 ,如 rdd.reduce(_+_) 可对 RDD[Int] 类型数据求和。- takeOrdered:返回RDD排序后的前n个元素组成的数组。
2025-04-11 10:47:32
567
原创 spark-core编程
从 shuffle 的角度:reduceByKey 和 groupByKey 都存在 shuffle 的操作,但是 reduceByKey可以在 shuffle 前对分区内相同 key 的数据进行预聚合(combine)功能,这样会减少落盘的数据量,而 groupByKey 只是进行分组,不存在数据量减少的问题,reduceByKey 性能比较高。3. reduceByKey :对相同Key的Value进行聚合 ,相比 groupByKey ,在shuffle前可预聚合,性能更优。
2025-04-10 11:44:24
1817
原创 spark RDD相关概念和运行架构
有向无环图(DAG):由Spark程序执行时数据流向抽象,用于表示程序拓扑结构,是第二代计算引擎支持特性,Spark为第三代计算引擎支持Job内部DAG和实时计算。- Driver:执行Spark任务main方法,负责将用户程序转为作业、调度任务、跟踪Executor执行情况、通过UI展示运行情况。- 执行原理:在Yarn环境下,经启动集群、申请资源、划分任务、发送任务步骤,RDD封装逻辑生成Task供Executor计算。- 依赖关系:含血统关系、窄依赖、宽依赖,介绍RDD任务划分及相关概念。
2025-04-09 18:07:00
408
原创 Scala安装
Spark的Local模式仅需要单个虚拟机节点即可,无需启动hadoop集群。在解压缩文件夹下的 data 目录中,添加 word.txt 文件。
2025-04-08 13:10:09
310
原创 Scala数组
Reduce 简化(归约) :通过指定的逻辑将集合中的数据进行聚合,从而减少数据,最终获取结果。单词计数:将集合中出现的相同的单词,进行计数,取计数排名前三的结果。遍历一个集合并从中获取满足指定条件的元素组成一个新的集合。集合中的每个元素的子元素映射到某个函数并返回新集合。将集合中的每一个元素映射到某一个函数。Fold 折叠:化简的一种特殊情况。按照指定的规则对集合的元素进行分组。
2025-04-08 09:25:03
372
原创 Scala数组
可变ListBuffer:可变集合,通过 collection.mutable.ListBuffer 导入,可实现元素的增删 ,如 ListBuffer(1, 2, 3) , += 添加元素。- 可变mutable.Map:经 scala.collection.mutable.Map 引入,可变,可进行键值对的增删改 ,如 mutable.Map("key" -> 1)。- 多维数组:用 Array.ofDim 创建,如 Array.ofDim[Int](3, 4) 表示3行4列数组。
2025-04-07 17:30:39
390
原创 Scala面向对象2
第二种,一个类(Sub)混入的两个 trait(TraitA,TraitB)中具有相同的具体方法,且两个 trait 继承自相同的 trait(TraitC),及所谓的“钻石问题”,解决这类冲突问题,Scala 采用了。由于一个类可以混入(mixin)多个 trait,且 trait 中可以有具体的属性和方法,若混入的特质中具有相同的方法(方法名,参数列表,返回值均相同),必然会出现继承冲突问题。2. 单例对象:用 object 声明,可包含属性和方法,能直接调用,伴生对象与伴生类同名,可访问类私有成员。
2025-04-03 11:31:13
667
原创 Scala面向对象
,包名用“.”进行分隔以表示包的层级关系,如com.zpark.scala。一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。如采用嵌套方式管理包,则包对象可与包定义在同一文件中,但是要保证包对象与包声明在同一作用域中。Scala 有两种包的管理风格,一种方式和 Java 的包管理风格相同,每个源文件一个包((1)如果主构造器无参数,小括号可省略,构建对象时调用的构造方法的小括号也可以省略。Scala 的面向对象思想和 Java 的面向对象思想和概念是一致的。
2025-04-02 17:56:37
874
原创 Scala函数式编程
解决问题时,将问题分解成一个一个的步骤,将每个步骤进行封装(函数),通过调用这些封装好的步骤,解决问题。解决问题,分解对象,行为,属性,然后通过对象的关系以及行为的调用来解决问题。:如果一个函数,访问到了它的外部(局部)变量的值,那么这个函数和他所处的环境,称为闭包。函数的本质:函数可以当做一个值进行传递。万物皆对象对象的本质:对数据和行为的一个封装。一个函数/方法在函数/方法体内又调用了本身,我们称之为递归调用。:把一个参数列表的多个参数,变成多个参数列表。参数的类型可以省略,会根据形参进行自动的推导。
2025-04-01 12:11:11
871
原创 Scala基础
推荐使用函数式的风格解决break 和continue 的功能,而不是一个关键字。Scala 中使用breakable 控制结构来实现 break 和 continue 功能。说明:将遍历过程中处理的结果返回到一个新 Vector 集合中,使用 yield 关键字。While 和 do..While 的使用和 Java 语言中用法相同。循环遍历 10 以内的所有数据,奇数打印,偶数跳过(continue)输出 1 到 5 中,不等于 3 的值。说明:没有关键字,所以范围后一定要加。注意:开发中很少使用。
2025-03-31 17:49:20
264
原创 Scala基础
相比其他编程语言,Scala 代码更加简洁,往往一行代码就能实现其他语言多行代码的功能,开发效率更高。貌似与Java的基本数据类型的包装类型相同,但是scala没有基本数据类型与包装类型的概念,统一都是类。在Scala中,以下是基本数据类型:Byte、Short、Int、Long、Float、Double、Char、String、Boolean。Scala 中的运算符包括算术运算符(如 +、-、*、/ 等)、关系运算符(如 >、<、== 等)、逻辑运算符(如 &&、||、!
2025-03-28 10:47:14
662
原创 Scala 基础语法
Scala 的设计秉承一项事实,即在实践中,某个领域特定的应用程序开发往往需要特定于该领域的语言扩展。易学:大多数的 JVM 语言大部分可能会想到 Java,但 Java 做出来的 API 太丑,或者学习曲线陡峭,Scala 语言,为后续学习 Scala+Spark 奠定基础。然而以"$"开头的标识符为保留的 Scala 编译器产生的标志符使用,应用程序应该避免使用"$"开始的标识符,以免造成冲突。保存文件时,应该保存它使用的对象名称(记住Scala是区分大小写),并追加".scala"为文件扩展名。
2025-03-27 11:11:09
827
原创 U-net系列算法
5*64 =320 , 最终组合得到全部特征。M 训练的时候同样会用到L4 ,效果还不错。现在来看 , 很多视觉任务都可以套用这招。M 以前我们都是加法 , 现在全都要。这么简单的结构就能把分割任务做好。把能拼能凑的特征全用上就是升级版了。不同的max pool整合低阶特征。起初是做医学方向 , 现在也是。其实跟densenet思想一致。损失由多个位置计算 , 再更新。(X1和X2 , 轮廓之类的)也是很常见的事 , 多输出。(感受野大的 , 全局的)简单但是很实用 ,应用广。特征融合 ,拼接更全面。
2025-03-21 09:51:24
402
原创 图像分割项目
» 输出44,X = [x_0,x_1,x_2,x_3,x_4,x_5,x_6,x_7,x_8,x_9,x_{10},x_{11},x_{12},x_{13},x_{14},x_{15},x_{16}]» 输入44,X = [x_0,x_1,x_2,x_3,x_4,x_5,x_6,x_7,x_8,x_9,x_{10},x_{11},x_{12},x_{13},x_{14},x_{15}]· 实例分割:只预测前景目标的类别属性以及边框,个体ID,每一个像素可以属于多个ID。· 图像分割:预测目标的轮廓。
2025-03-20 10:29:52
394
原创 YOLO系列 - V4
V4中用的是SAM , 也就是空间的注意力机制 不光NLP,语音识别领域在搞attention , CV中也一样。- 例如原来标签为(0,1):[0,1]×(1 - 0.1)+0.1/2 = [0.05,0.95]并且还是一个捷径 , 红色的没准走个100层(Resnet) , 绿色的几层就到了。- 亲民政策,单GPU就能训练的非常好,接下来很多小模块都是这个出发点。M 注意力机制 , 网络细节设计 ,特征金字塔等 , 你能想到的全有。- 其中v函数考虑了三个几何因素:重叠面积,中心点距离,长宽比。
2025-03-14 10:58:40
294
原创 YOLO - V3
13×13特征图上:(116×90),(156×198),(373×326)- 26×26特征图上:(30×61),(62×45),(59×119)- 52×52特征图上:(10×13),(16×30),(33×23)- 特征做的更细致,融入多持续特征图信息来预测不同规格物体。- 先验框更丰富了,3种scale,每种3个规格,一共9种。- YOLO - V2中选了5个,这回更多了,一共有9种。- YOLO - V2中选了5个,这回更多了,一共有9种。- 3种scale,更多先验框。
2025-03-13 09:59:19
256
原创 YOLO-V1和YOLO-V2
K - means聚类中的距离:d(box, centroids) = 1 - IOU(box, centroids)- 最小的图像尺寸为320 x 320,最大的图像尺寸为608 x 608。- 最后一层时感受到太大了,小目标可能丢失了,需融合之前的特征。- V1训练时用的是224*224,测试时使用448*448。- 数据集一系列选择的先验比例都是常规的,但是不一定完全适合。- 这样会导致在x轴方向,模型不稳定,尤其是刚开始训练的时候。- 10 = (X,Y,H,W,C)*B(2个类别)
2025-03-12 16:50:19
418
原创 目标检测项目
(Xmin, Ymin, W, H),其中 x,y,w,h 均不是归一化后的数值,分别代表左上角坐标和宽、高。- 经典发展线:R - CNN、SPP - Net、Fast R - CNN、 Faster R - CNN。(Xmin,Ymin,Xmax,Ymax)分别代表左上角和右下角的两个坐标。- 其他:Cascade R - CNN、Guided Anchoring。· 类别+真实边界框坐标(x,y,w,h)(x,y,w,h)分别代表中心点坐标和宽、高。- YOLO系列:YOLO v1 - v5。
2025-03-11 10:51:46
883
原创 手写数字识别项目总结
【说明】model.train()与model.eval()的使用如果模型中有BN(Batch Normalization)层和Dropout,需要在训练时添加model.train(),在测试时添加model.eval()。定义损失函数可以通过自定义方法或使用PyTorch内置的损失函数,如回归使用的loss_fun=nn.MSELoss(),分类使用的nn.BCELoss等损失函数,更多内容可参考本书5.2.4节。所有的优化方法都是继承了基类optim.Optimizer,并实现了自己的优化步骤。
2025-03-10 17:36:45
437
原创 手写数字识别项目
而对于Dropout,model.train()是随机取一部分网络连接来训练更新参数,而model.eval()是利用到了所有网络连接。因图像是灰色的只有一个通道,如果有多个通道,需要有多个数字,如三个通道,应该是Normalize([n1,n2,n3], [n1,n2,n3])。定义损失函数可以通过自定义方法或使用PyTorch内置的损失函数,如回归使用的loss_fun=nn.MSELoss(),分类使用的nn.BCELoss等损失函数,更多内容可参考本书5.2.4节。
2025-03-06 10:27:42
2070
原创 集成算法的简介
基本思想:对于复杂任务,综合多个专家的判断比单个专家的判断更好,通过漫画形象地展示了三个“小专家”等同于一个“大专家”。集成学习(ensemble learning)是通过构建并结合多个学习器来完成学习任务。- 投票法:集成学习的结果通过投票法产生,即“少数服从多数”
2025-03-05 16:36:09
250
原创 使用卷积神经网络实现CIFAR
3. 函数的使用方式(未在图中给出,但通常的使用方式)2. 定义函数 paras_summary。4. 实例化模型并移动到设备上。1. 注册钩子函数条件判断。导入优化器模块并设置学习率。2.定义神经网络类 Net。计算并打印每个类别的准确率。3. 创建属性和注册钩子。4. 前向传播和移除钩子。1. 导入模块和设备设置。3. 定义前向传播函数。定义损失函数和优化器。计算并打印模型准确率。
2025-03-04 13:43:29
440
原创 使用卷积神经网络实现CIFAR
这段代码实现了对卷积神经网络的训练过程,通过多个epoch和批次的训练,不断调整模型参数,以最小化损失函数,从而使模型能够更好地对输入图像进行分类。这段代码为模型的训练做了准备工作,定义了损失函数和优化器,设置了学习率,并展示了模型的结构,后续可以基于这些设置进行模型的训练和评估。这段代码构建了一个简单的用于图像分类的卷积神经网络,并计算了模型的总参数数量,为后续的模型训练和评估做准备。这段代码是使用PyTorch框架进行数据加载和预处理的示例,主要涉及加载CIFAR - 10数据集。
2025-03-03 17:50:31
201
原创 图像分类项目
可以用来表示模型的精度,即模型识别正确的个数/样本的总个数。主对角线的元素之和为正确分类的样本数量,其余元素的值为错误分类的样本数量,其余元素的值越大,分类器准确率越高。准确率(Precision):又称为查准率,表示在模型识别为正类的样本中,真正为正类的样本所占的比例。召回率(Recall):又称为查全率,表示模型正确识别出为正类的样本的数量占总的正类样本数量的比值。被分类类别为第i类的数量,矩阵元素Cij表示第i类样本被分类类别为第j类的数量。·将不同的图像,划分到不同的类别标签,实现最小的分类误差。
2025-02-28 11:08:10
307
原创 Pytorch数据处理工具箱
如果要对数据集进行多个操作,可通过Compose将这些操作像管道一样拼接起来,类似于nn.Sequential。transforms提供了对PIL Image对象和Tensor对象的常用操作。transforms提供了对PIL Image对象和Tensor对象的常用操作。使用TensorBoard的一般步骤如下。使用TensorBoard的一般步骤如下。1)对PIL Image的常见操作如下。2)对Tensor的常见操作如下。其中,xxx指的是各种可视化方法。Pytorch数据处理工具箱。
2025-02-27 10:40:35
216
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅