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 中特征处理方法的公式、适用场景和简单案例。每种方法都有其特定的数学原理和适用范围,根据具体任务的需求选择合适的方法可以提高数据处理的效率和模型的预测性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/26541.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java采集微信公众号数据

需求背景: 最新需要调用微信公众号api 去微信公众号采集 发布文章数据。 (本片文章的意义:根据自己开发的方案来提供思路,当然那不会提供代码。代码是最没有 含金量的东西。) 1:遇到的坑:首先 想到的是调用 https://api.weixin…

科技项目验收测试必须进行吗?软件测试公司推荐

科技项目验收测试是指在科技项目开发周期中,对项目完成后进行的一种测试和评估工作。它的目的是验证项目是否达到预期的要求,并确保项目交付给客户前达到预期的质量标准。 一、科技项目验收测试的必要性   科技项目验收测试是项目管理中不可或缺的一个…

Maven认识与学习

1. Maven介绍 1.2 初识Maven 1.2.1 什么是Maven Maven是Apache旗下的一个开源项目,是一款用于管理和构建java项目的工具。 官网:Maven – Welcome to Apache Maven Apache 软件基金会,成立于1999年7月,是目前世界上最大的最受…

Linux C语言:变量的作用域和生命周期(auto、register、static和extern)

一、变量存储类型-auto 1、auto变量的说明 变量在程序中使用时,必须预先说明它们的存储类型和数据类型。 变量说明的一般形式是&#xff1a; <存储类型> <数据类型 > <变量名> &#xff1b; <存储类型>是关键词auto、register、static和extern<…

湘江早报专访惟客数据李柯辰:湖南伢子返湘玩转“AI+金融”

来源 |《湘江早报》 记者 | 黄荣佳 ​ 随着数字化浪潮的到来&#xff0c;AI的风吹遍了各行各业&#xff0c;金融作为对新兴技术最敏感的行业&#xff0c;前沿技术的赋能&#xff0c;让金融科技成为行业发展的“新赛点”。作为一家以大数据和AI人工智能技术驱动的新一代数字化…

多源最短路径算法 -- 弗洛伊德(Floyd)算法

1. 简介 Floyd算法&#xff0c;全名为Floyd-Warshall算法&#xff0c;亦称弗洛伊德算法或佛洛依德算法&#xff0c;是一种用于寻找给定加权图中所有顶点对之间的最短路径的算法。这种算法以1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特弗洛伊德的名字命名。 2. 核心思…

加码多肤色影像技术 这是传音找到的“出海利器“?

全球化时代&#xff0c;市场竞争愈演愈烈&#xff0c;产品差异化已然成为了企业脱颖而出的关键。在黄、白肤色长期占据人像摄影主赛道的背景下&#xff0c;传音就凭借独一无二的多肤色影像技术走出非洲&#xff0c;走向了更广阔的新兴市场。 聚焦深肤色人群拍照痛点&#xff0c…

无法获取Response Header内容的问题

无法获取Response Header内容的问题 因为公司的接口返回的格式都是固定的&#xff0c;所以我们前端在请求的时候都会对response进行统一处理&#xff0c;例如接口请求成功返回response.data.data。但是最近遇到了一个很神奇的问题&#xff0c;无法获取到Response Header的值。…

图像算法之白平衡

图像白平衡&#xff08;White Balance&#xff09;是图像处理中的一个重要步骤&#xff0c;旨在校正由于不同光源引起的颜色偏移&#xff0c;从而使图像中的白色物体看起来真正呈现为白色。白平衡算法有多种实现方式&#xff0c;但其核心目标都是调整图像的颜色&#xff0c;使得…

怎么把flv转换成mp4格式?介绍一下将flv转成MP4的几种方法

怎么把flv转换成mp4格式&#xff1f;flv和MP4是两种常见的视频格式&#xff0c;它们在网络媒体和数字内容中都扮演着重要的角色。flv格式通常与在线视频播放和流媒体服务相关联&#xff0c;而MP4格式则更广泛地支持于各种设备和平台。然而&#xff0c;在某些情况下&#xff0c;…

智能数据抓取:自动化时代的资讯收割机

在信息技术飞速发展的今天&#xff0c;我们迎来了一个全新的自动化时代。在这个时代里&#xff0c;数据的价值愈发凸显&#xff0c;成为推动社会进步和企业发展的关键要素。然而&#xff0c;面对海量且不断增长的数据资源&#xff0c;如何高效、准确地获取和整理信息&#xff0…

(四)React组件、useState、组件样式

1. 组件 1.1 组件是什么 概念&#xff1a;一个组件就是用户界面的一部分&#xff0c;它可以有自己的逻辑和外观&#xff0c;组件之间可以相互嵌套&#xff0c;也可以复用多次。 组件化开发可以让开发者像搭积木一样构建一个完整的庞大应用 1.2 React组件 在React中&#xf…

SECS/GEM 底层协议解析

SECS是什么&#xff1f; SEMI电子半导体联盟,为实现设备与工厂系统的快速对接数据,状态,配方,程序的标准化协议,SECS具有多个版本,本文主要介绍E5协议 HSMS通信方式,设备端的处理流程(Passive模式)。 SECS关键字 Host 主机一般指向工厂控制系统EQP 单机设备Active 在Tcp通信…

Oracle 打开钱包 ORA-28368: cannot auto-create wallet

ORA-28368: cannot auto-create wallet 开启钱包抱错&#xff0c;看下钱包信息 SQL> select * from v$encryption_wallet;WRL_TYPE -------------------- WRL_PARAMETER -------------------------------------------------------------------------------- STATUS ------…

tinySA Ultra输出信号源用于收音机调试

tinySA Ultra可以输出信号&#xff0c;用于收音机调试&#xff0c;可以轻松覆盖中波&#xff0c;短波&#xff0c;FM。甚至vhf功放&#xff0c;uhf功放&#xff0c;微波功放&#xff08;后面三个是未来要玩的&#xff09;。 在主菜单mode进入&#xff0c;选择中间的菜单&#…

NOAA小时气象数据和逐日气象数据检索接口

简介 本API提供了访问NOAA Global Surface Summary of the Day (GSOD) 和 NOAA Integrated Surface Database (ISD) 数据的方式。用户可以通过这些接口查询站点信息、获取国家和地区列表、检索站点列表以及获取特定站点的数据。 数据更新至2023.12.31&#xff0c;后期会业务化…

Java开发者也能看懂的大模型应用开发实践!!!

前言 做AI大模型应用的开发其实Java也能写&#xff0c;那么本文就一个Java开发者的立场&#xff0c;构建实现一个最基础的大模型应用系统。 而大模型应用系统其实在目前阶段&#xff0c;可能应用最广的还是RAG领域&#xff0c;因此&#xff0c;本文也是通过在RAG领域的基础架…

PostgreSql中使用to_char函数、date()函数可能会导致索引无法充分利用,导致查询速度无法提升

今天在处理接口请求速度慢的问题&#xff0c;惊奇的发现加了索引&#xff0c;但还是请求很忙。由于card_stop_info表有300w条数据&#xff0c;这时候关联查询非常慢&#xff0c;于是我加上匹配项索引&#xff0c;但是发现依然没有改变速度。。这时候去搜了一下才知道pgsql的to_…

Python提取PowerPoint演示文稿表格保存到文本及Excel文件

PowerPoint作为广泛使用的演示工具&#xff0c;常被用于展示各类数据报告和分析结果&#xff0c;其中&#xff0c;表格以其直观性和结构性成为阐述数据关系的不二之选。然而&#xff0c;在数据分析、文档归档或跨平台分享的场景下&#xff0c;幻灯片中的表格功能难以满足需求&a…

Qt全局快捷键QGlobalHotKey的自研之路

这两天对Qt的快捷键格外感兴趣。 前两天在使用QHotKey的过程中&#xff0c;发现不能定义小键盘键盘码&#xff0c;自己二次修改了该库之后已经可以设置小键盘快捷键了。文章在这里&#xff1a;Qt第三方库QHotKey设置小键盘数字快捷键。 昨天突发奇想&#xff1a;目前所有的快…