当前位置: 首页 > news >正文

spark mllib 特征学习笔记 (二)

当然,请继续介绍其他特征处理方法的公式、适用场景和案例:

10. StringIndexer

公式
将字符串类型的标签转换为数值索引:
StringIndexer ( x ) = { 0 , 1 , 2 , … , N − 1 } \text{StringIndexer}(x) = \{0, 1, 2, \ldots, N-1\} StringIndexer(x)={0,1,2,,N1}

适用场景
用于将分类标签转换为数值标签,以便机器学习算法处理。

案例

from pyspark.ml.feature import StringIndexerdata = spark.createDataFrame([(0, "a"), (1, "b"), (2, "c"), (3, "a"), (4, "a"), (5, "c")], ["id", "category"])
indexer = StringIndexer(inputCol="category", outputCol="categoryIndex")
indexedData = indexer.fit(data).transform(data)
indexedData.show()

11. VectorAssembler

公式
将多个特征列合并成一个特征向量:
VectorAssembler ( x 1 , x 2 , … , x n ) = [ x 1 , x 2 , … , x n ] \text{VectorAssembler}(\mathbf{x}_1, \mathbf{x}_2, \ldots, \mathbf{x}_n) = [\mathbf{x}_1, \mathbf{x}_2, \ldots, \mathbf{x}_n] VectorAssembler(x1,x2,,xn)=[x1,x2,,xn]

适用场景
用于将多个特征列合并成一个特征向量,作为机器学习算法的输入。

案例

from pyspark.ml.feature import VectorAssembler
from pyspark.ml.linalg import Vectorsdata = spark.createDataFrame([(1, 2, 3), (4, 5, 6)], ["a", "b", "c"])
assembler = VectorAssembler(inputCols=["a", "b", "c"], outputCol="features")
assembledData = assembler.transform(data)
assembledData.show()

12. Word2Vec

公式
Word2Vec 是一种词嵌入模型,通过训练将单词映射到低维向量空间:
Word2Vec ( sentence ) = v \text{Word2Vec}(\text{sentence}) = \mathbf{v} Word2Vec(sentence)=v
其中 (\mathbf{v}) 是单词的向量表示。

适用场景
用于自然语言处理中的词语表示学习,以便后续应用于文本分类、文本相似度等任务。

案例

from pyspark.ml.feature import Word2Vecdata = spark.createDataFrame([("Hi I heard about Spark".split(" "),),("I wish Java could use case classes".split(" "),),("Logistic regression models are neat".split(" "),)
], ["text"])word2Vec = Word2Vec(vectorSize=3, minCount=0, inputCol="text", outputCol="result")
model = word2Vec.fit(data)
result = model.transform(data)
result.show(truncate=False)

这些例子展示了 PySpark MLlib 中几种常用的特征处理方法的基本用法和应用场景。根据具体的数据和任务需求,选择合适的特征处理方法可以有效地提高模型的性能和准确性。

当然,请继续介绍其他特征处理方法的公式、适用场景和案例:

13. UnivariateFeatureSelector

公式
基于单变量统计测试选择特征,例如卡方检验:
UnivariateFeatureSelector ( X , y ) = { features with highest score } \text{UnivariateFeatureSelector}(X, y) = \{ \text{features with highest score} \} UnivariateFeatureSelector(X,y)={features with highest score}

适用场景
用于基于单变量统计测试(如卡方检验)选择与标签相关性最高的特征。

案例

from pyspark.ml.feature import UnivariateFeatureSelector
from pyspark.ml.linalg import Vectorsdata = [(1, Vectors.dense(0.0, 1.1, 0.1)),(0, Vectors.dense(2.0, 1.0, -1.0)),(0, Vectors.dense(2.0, 1.3, 1.0)),(1, Vectors.dense(0.0, 1.2, -0.5))]
df = spark.createDataFrame(data, ["label", "features"])selector = UnivariateFeatureSelector(featuresCol="features", outputCol="selectedFeatures", labelCol="label", selectionMode="numTopFeatures", numTopFeatures=1)
result = selector.fit(df).transform(df)
result.show()

14. VarianceThresholdSelector

公式
基于方差选择特征,移除方差低于阈值的特征:
VarianceThresholdSelector ( X ) = { features with variance above threshold } \text{VarianceThresholdSelector}(X) = \{ \text{features with variance above threshold} \} VarianceThresholdSelector(X)={features with variance above threshold}

适用场景
用于移除方差较低的特征,以减少噪声对模型的影响。

案例

from pyspark.ml.feature import VarianceThresholdSelector
from pyspark.ml.linalg import Vectorsdata = [(1, Vectors.dense(0.0, 1.0, 0.0)),(0, Vectors.dense(0.0, 1.0, 1.0)),(0, Vectors.dense(0.0, 1.0, 0.0))]
df = spark.createDataFrame(data, ["label", "features"])selector = VarianceThresholdSelector(featuresCol="features", outputCol="selectedFeatures", threshold=0.0)
result = selector.fit(df).transform(df)
result.show()

15. VectorIndexer

公式
索引化向量中的类别特征列:
VectorIndexer ( X ) = { indexed features } \text{VectorIndexer}(X) = \{ \text{indexed features} \} VectorIndexer(X)={indexed features}

适用场景
用于处理数据集中的向量特征,自动识别并索引类别特征。

案例

from pyspark.ml.feature import VectorIndexer
from pyspark.ml.linalg import Vectorsdata = [(Vectors.dense(1.0, 2.0, 3.0),),(Vectors.dense(2.0, 5.0, 6.0),),(Vectors.dense(1.0, 8.0, 9.0),)]
df = spark.createDataFrame(data, ["features"])indexer = VectorIndexer(inputCol="features", outputCol="indexed", maxCategories=2)
indexedData = indexer.fit(df).transform(df)
indexedData.show()

16. VectorSizeHint

公式
添加向量列的大小信息到元数据中:
VectorSizeHint ( X ) = { features with size hint in metadata } \text{VectorSizeHint}(X) = \{ \text{features with size hint in metadata} \} VectorSizeHint(X)={features with size hint in metadata}

适用场景
用于在向量列中添加大小信息,以提供给后续流水线阶段使用。

案例

from pyspark.ml.feature import VectorSizeHint
from pyspark.ml.linalg import Vectorsdata = [(Vectors.dense([1.0, 2.0]),),(Vectors.dense([2.0, 3.0]),)]
df = spark.createDataFrame(data, ["features"])sizeHint = VectorSizeHint(inputCol="features", size=2)
sizeHint.transform(df).show()

这些例子展示了更多 PySpark MLlib 中特征处理方法的公式、适用场景和简单案例。每种方法都有其特定的数学原理和适用范围,根据具体任务的需求选择合适的方法可以提高数据处理的效率和模型的预测性能。

相关文章:

spark mllib 特征学习笔记 (二)

当然,请继续介绍其他特征处理方法的公式、适用场景和案例: 10. StringIndexer 公式: 将字符串类型的标签转换为数值索引: StringIndexer ( x ) { 0 , 1 , 2 , … , N − 1 } \text{StringIndexer}(x) \{0, 1, 2, \ldots, N-1…...

湘潭大学软件工程数据库2(题型,复习资源和计划)

文章目录 选择题关系范式事务分析E-R 图sql作业题答案链接(仅限有官方答案的版本)结语 现在实验全部做完了,实验和作业占比是百分之 40 ,通过上图可以看出来,重点是 sql 语言 所以接下来主要就是学习 sql 语句怎么书写…...

第二十三节:带你梳理Vue2:Vue插槽的认识和基本使用

前言: 通过上一节的学习,我们知道了如何将数据从父组件中传递到子组件中, 除了除了将数据作为props传入到组件中,Vue还允许传入HTML, Vue 实现了一套内容分发的 API&#xff0c;这套 API 的设计灵感源自 Web Components 规范草案&#xff0c;将 <slot> 元素作为承载分发…...

父亲节马上到了-和我一起用Python写父亲节的祝福吧

前言 让我们一起用Python写一段父亲节的祝福吧 &#x1f4dd;个人主页→数据挖掘博主ZTLJQ的主页 个人推荐python学习系列&#xff1a; ☄️爬虫JS逆向系列专栏 - 爬虫逆向教学 ☄️python系列专栏 - 从零开始学python 话不多说先上代码 import tkinter as tk from doctest imp…...

winform 应用程序 添加 wpf控件后影响窗体DPI改变

第一步&#xff1a;添加 应用程序清单文件 app.manifest 第二步&#xff1a;把这段配置 注释放开&#xff0c;第一个配置true 改成false...

Web前端开发素材:探索、选择与应用的艺术

Web前端开发素材&#xff1a;探索、选择与应用的艺术 在Web前端开发的广袤领域中&#xff0c;素材的选择与应用无疑是一项至关重要的技能。它们如同构建网页的砖石&#xff0c;既承载着设计的美感&#xff0c;又影响着用户体验的深度。本文将从四个方面、五个方面、六个方面和…...

LeetCode | 20.有效的括号

这道题就是栈这种数据结构的应用&#xff0c;当我们遇到左括号的时候&#xff0c;比如{,(,[&#xff0c;就压栈&#xff0c;当遇到右括号的时候&#xff0c;比如},),]&#xff0c;就把栈顶元素弹出&#xff0c;如果不匹配&#xff0c;则返回False&#xff0c;当遍历完所有元素后…...

ceph scrub 错误记录

目的 记录 ceph scrub 错误问题解决 ceph scrub 故障故障信息 cluster:id: xxx-xxx-xxxhealth: HEALTH_ERR2 scrub errorsPossible data damage: 2 pg inconsistentmessage 日志信息 # egrep -i medium|i\/o error|sector|Prefailure /var/log/messages Jun 15 00:23:37 m…...

cs与msf权限传递,以及mimikatz抓取明文密码

cs与msf权限传递&#xff0c;以及mimikatz抓取win10明文密码 1、环境准备2、Cobalt Strike ------> MSF2.1 Cobalt Strike拿权限2.2 将CS权限传递给msf 3、MSF ------> Cobalt Strike3.1 msf拿权限3.2 将msf权限传递给CS 4、使用mimikatz抓取明文密码 1、环境准备 攻击&…...

Windows下的zip压缩包版Mysql8.3.0数据迁移到Mysql8.4.0可以用拷贝data文件夹的方式

Windows下的zip压缩包版Mysql8.3.0数据迁移到Mysql8.4.0可以用拷贝data文件夹的方式 拷贝后, 所有账户和数据都是一样的 步骤 停止MySQL服务 net stop mysql 或 sc.exe stop mysql net stop mysqlsc.exe stop mysql卸载 Mysql8.3.0 的服务 mysqld remove 或 mysqld remove m…...

软件体系结构笔记(自用)

来自《软件体系结构原理、方法与实践&#xff08;第三版&#xff09;》清华大学出版社 张友生编著 1-8章12章 复习笔记 如有错误&#xff0c;欢迎指正&#xff01;&#xff01;&#xff01;...

java安装并配置环境

安装前请确保本机没有java的残留&#xff0c;否则将会安装报错 1.安装java jdk&#xff1a;安装路径Java Downloads | Oracle 中国 百度网盘链接&#xff1a;https://pan.baidu.com/s/11-3f2QEquIG3JYw4syklmQ 提取码&#xff1a;518e 2.双击 按照流程直接点击下一步&#x…...

探索互联网寻址机制 | 揭秘互联网技术的核心,解析网络寻址

揭秘互联网技术的核心&#xff0c;解析网络寻址题 前提介绍局域网地址IP地址的分配方式动态IP分配机制内部网&#xff08;intranet&#xff09;ICANN负责IP分配DHCP协议获取IP地址 域名系统域名是什么域名工作方式hosts文件存储域名映射关系DNS分布式数据库DNS域名解析 Java进行…...

C语言学习笔记之结构篇

C语言是一门结构化程序设计语言。在C语言看来&#xff0c;现实生活中的任何事情都可看作是三大结构或者三大结构的组合的抽象&#xff0c;即顺序&#xff0c;分支&#xff08;选择&#xff09;&#xff0c;循环。 所谓顺序就是一条路走到黑&#xff1b;生活中在很多事情上我们都…...

C++笔记之一个函数多个返回值的方法、std::pair、std::tuple、std::tie的用法

C++笔记之一个函数多个返回值的方法、std::pair、std::tuple、std::tie的用法 —— 2024-06-08 杭州 code review! 文章目录 C++笔记之一个函数多个返回值的方法、std::pair、std::tuple、std::tie的用法一.从一个函数中获取多个返回值的方法1. 使用结构体或类2. 使用`std::t…...

GDB:从零开始入门GDB

目录 1.前言 2.开启项目报错 3.GDB的进入和退出 4.GDB调试中查看代码和切换文件 5.GDB调试中程序的启动和main函数传参 6.GDB中断点相关的操作 7.GDB中的调试输出指令 8.GDB中自动输出值指令 9.GDB中的调试指令 前言 在日常开发中&#xff0c;调试是我们必不可少的技能。在专业…...

服务器权限管理

我们linux服务器上有严格的权限等级&#xff0c;如果权限过高导致误操作会增加服务器的风险。所以对于了解linux系统中的各种权限及要给用户&#xff0c;服务等分配合理的权限十分重要。&#xff08;权限越大&#xff0c;责任越大&#xff09; 1.基本权限 U--user用户,G-group…...

08 SpringBoot 自定定义配置

SpringBoot自定义配置有三种方式&#xff1a; 使用PropertySource进行自定义配置 使用ImportResource进行自定义配置 使用Configuration进行自定义配置 PropertySource ​ 如果将所有的配置都集中到 application.properties 或 application.yml 中&#xff0c;那么这个配置文…...

Java之3DES(Triple DES)加密计算(DESede/ECB/ZeroPadding)

Java环境本身并不直接支持DESede/ECB/ZeroPadding。 不过&#xff0c;可以通过以下几种方式来实现DESede/ECB/ZeroPadding&#xff1a; 手动实现填充和去除填充&#xff1a;如前面示例代码所示&#xff0c;在加密之前进行填充&#xff0c;在解密之后去除填充。这是一个通用的方…...

从0开发一个Chrome插件:项目实战——广告拦截插件

前言 这是《从0开发一个Chrome插件》系列的第十七篇文章,本系列教你如何从0去开发一个Chrome插件,每篇文章都会好好打磨,写清楚我在开发过程遇到的问题,还有开发经验和技巧。 专栏: 从0开发一个Chrome插件:什么是Chrome插件?从0开发一个Chrome插件:开发Chrome插件的必…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的&#xff0c;根据Excel列的需求预估的工时直接打骨折&#xff0c;不要问我为什么&#xff0c;主要…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...