Spark RDD 到 LabelPoint的转换(包含构造临时数据的方法)

关于SparkMLlib的基础数据结构Spark-MLlib-Basics 此部分主要降价写关于MLlib的集中基础的数据结构 阅读详情

题目: 将数据的某个特征作为label, 其他特征(或其他某几个特征)作为Feature, 转为LabelPoint

参考: http://www.it1352.com/220642.html

  1. 首先构造数据
import scala.util.Random.{setSeed, nextDouble}
setSeed(1)

case class Record(foo: Double, target: Double, x1: Double, x2: Double, x3: Double)

val rows = sc.parallelize(
    (1 to 10).map(_ => Record(
        nextDouble, nextDouble, nextDouble, nextDouble, nextDouble
   ))
)
val df = sqlContext.createDataFrame(rows)
df.registerTempTable("df")

sqlContext.sql("""
  SELECT ROUND(foo, 2) foo,
         ROUND(target, 2) target,
         ROUND(x1, 2) x1,
         ROUND(x2, 2) x2,
         ROUND(x2, 2) x3 
  FROM df""").show

得到的数据如下:

+----+------+----+----+----+
| foo|target|  x1|  x2|  x3|
+----+------+----+----+----+
|0.73|  0.41|0.21|0.33|0.33|
|0.01|  0.96|0.94|0.95|0.95|
| 0.4|  0.35|0.29|0.51|0.51|
|0.77|  0.66|0.16|0.38|0.38|
|0.69|  0.81|0.01|0.52|0.52|
|0.14|  0.48|0.54|0.58|0.58|
|0.62|  0.18|0.01|0.16|0.16|
|0.54|  0.97|0.25|0.39|0.39|
|0.43|  0.23|0.89|0.04|0.04|
|0.66|  0.12|0.65|0.98|0.98|
+----+------+----+----+----+

假设我们想排除x2和foo, 抽取 LabeledPoint(target, Array(x1, x3)):

import org.apache.spark.mllib.linalg.{Vector, Vectors}  
import org.apache.spark.mllib.regression.LabeledPoint 

// Map feature names to indices
val featInd = List("x1", "x3").map(df.columns.indexOf(_))

// Or if you want to exclude columns
val ignored = List("foo", "target", "x2")
val featInd = df.columns.diff(ignored).map(df.columns.indexOf(_))

// Get index of target
val targetInd = df.columns.indexOf("target") 

df.rdd.map(r => LabeledPoint(
   r.getDouble(targetInd), // Get target value
   // Map feature indices to values
   Vectors.dense(featInd.map(r.getDouble(_)).toArray) 
))
Python xlwings报错解决:从‘NoneType‘到完美运行WPS表格的完整指南 本文深入解析了使用Python xlwings库自动化WPS表格时遇到的经典'NoneType'报错(AttributeError: 'NoneType' object has no attribute 'apps')的根源与解决方案。核心在于pywin32版本与WPS的兼容性问题,文章提供了从版本降级、依赖管理到构建健壮自动化环境的完整实战指南,帮助开发者彻底解决兼容性难题,实现稳定运行。 阅读详情

相关推荐

UE5Could not be compiled. Try rebuilding from source manually.

UE5Could not be compiled. Try rebuilding from source manually.

weixin_45417260的博客 2770

labelpoint向量总结及决策树的缺点

1.//创建一个稠密向量   val dv : Vector = Vector.dense(1.0,0.0,3.0);   //创建一个稀疏向量(第一种方式)   val sv1: Vector = Vector.sparse(3, Array(0,2), Array(1.0,3.0));   //创建一个稀疏向量(第二种方式)   val sv2 : Vector = Vector.s

weixin_35780812的博客 883

用Python可视化硅晶体生长:3D图解<100>/<110>/<111>晶向差异

本文通过Python 3D可视化技术,详细解析了硅晶体生长中<100>、<110>、<111>三种关键晶向的差异及其在半导体工业中的应用。从密勒指数转换到原子密度计算,结合交互式3D模型展示不同晶向的原子排列特性,帮助读者深入理解晶向对芯片性能的影响。

weixin_42567752的博客 563

LabeledPoint

一、 定义 表示数据点的特征和标签的类 二、 构造器 LabeledPoint(double label, Vector features) label: 数据点的标签 features: 据点的特征向量 三、 方法 修饰符和类型 方法 说明 Vector features() Vector getFeatures() 获取特征 double getLabel() 获取标签 double label() static LabeledPoint parse(Strin

CANDY的博客 1166

告别LM2596!用LM5175打造400W自动升降压数控电源(附完整电路图与代码)

本文详细介绍了如何利用LM5175芯片设计400W自动升降压数控电源,替代传统的LM2596方案。通过四开关Buck-Boost拓扑结构,LM5175实现了高达98%的转换效率和400W大功率输出,支持无缝升降压切换。文章涵盖芯片选型、电路设计、PCB布局及STM32数控实现,为工程师提供完整的实践指南。

weixin_27032989的博客 597

HR效率翻倍!用Dify+飞书AI表格打造自动化简历处理流水线(附完整代码)

本文详细介绍了如何利用Dify工作流和飞书多维表格构建自动化简历处理系统,实现简历上传、AI智能解析与结构化数据入库的全流程自动化。通过整合大语言模型进行信息抽取,该系统能显著提升HR处理简历的效率与准确性,将HR从重复劳动中解放出来。

1a2s3d4f5g的博客 1023

标注点(Labeled Point)

标注点LabeledPoint是一种带有标签(Label/Response)的本地向量,它可以是稠密或者是稀疏的。在MLlib中,标注点在监督学习算法中被使用。由于标签是用双精度浮点型来存储的,故标注点类型在回归(Regression)和分类(Classification)问题上均可使用。例如,对于二分类问题,则正样本的标签为1,负样本的标签为0,而对于多类别的分类问题来说,标签则应是一个以...

weixin_30481087的博客 954

YOLOv8集成EMA注意力机制YOLOv8完整教程 将EMA注意力机制集成到YOLOv8框架中

YOLOv8教程这篇文章介绍了如何将EMA(高效多尺度注意力)机制集成到YOLOv8目标检测框架中。YOLOv8 EMA注意力机制通过多尺度特征融合和高效计算,能够提升模型对关键特征的关注能力。文章详细解析了EMA的原理和结构设计,包括其核心组件和前向传播过程。此外,提供了完整的实现指南,包括环境准备、项目结构设置、EMA模块代码实现(包含分组处理、空间注意力计算和特征融合等关键步骤)。YOLOv8 YOLOv8 YOLOv8 YOLOv8 YOLOv8

FJN110的博客 924

sparkcore练习_1,RDD转化为RDD[LabelPoint]和map-side-join以及将结果(RDD/dataframe)输出到一个文件保存

数据集net.gz为网络流量数据, 数据集每条记录展现每个连接的信息, 最后一列为攻击的标签 (1) 请统计, 出现的攻击类型对应的攻击次数 (2) 为了输入给算法, 请将RDD 类型转换为RDD[Labelpoint] ( Labelpoint为Spark Vector) (1)不使用labelpoint: package homework.chapter2 import org.apac...

qq_42400267的博客 677

基于FPGA的多级CIC滤波器实现四倍插值

基于FPGA的多级CIC滤波器实现四倍插值 原文链接:基于FPGA的多级CIC滤波器实现四倍插值 在《基于FPGA的多级CIC滤波器实现四倍抽取一》和《基于FPGA的多级CIC滤波器实现四倍抽取二》中我们先来了解滑动平均滤波器、微分器、积分器以及梳状滤波器原理以及它们的幅频响应。此篇我们将用verilog实现基于FPGA的多级CIC滤波器实现四倍插值。 1 CIC滤波器的基本概述 CIC(积分梳状...

baidu_34971492的博客 3139

基于OpenCV实现暗通道先验去雾算法及改进,效果惊人

深度技术文,前方高能

公号:一条coding 2万+

java集合转labelpoint,RDD到LabeledPoint转换

If I have a RDD with about 500 columns and 200 million rows, and RDD.columns.indexOf("target", 0) shows Int = 77 which tells me my targeted dependent variable is at column number 77. But I don't have ...

weixin_33816685的博客 358

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Spark RDD概念学习系列之RDD的转换(十)

 RDD的转换   Spark会根据用户提交的计算逻辑中的RDD的转换和动作来生成RDD之间的依赖关系,同时这个计算链也就生成了逻辑上的DAG。接下来以“Word Count”为例,详细描述这个DAG生成的实现过程。 Spark Scala版本的Word Count程序如下: 1 2 3 4 5 1: <spa...

weixin_34212762的博客 214

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

spark labeledpoint函数用法_大数据分析工具-spark

pycharm配置spark下载spark压缩包,解压到本地磁盘。打开pycharm,配置Content Root和环境变量。配置Content Root配置环境变量shufflehadoop:hdfs/hbase分布式存储yarn资源调度框架mapReduce用来计算python里map和reduce函数的用法map:从一个集合到另一个集合reduce:从集合里计算出一个数>>&gt...

weixin_39850920的博客 295

spark labeledpoint函数用法_如何用Spark 来实现一个通用大数据计算引擎?

Github上的开源项目Waterdrop,此项目Star + Fork的有将近1200人,是一个基于Spark和Flink构建的生产环境的海量数据计算产品。Waterdrop的特性包括:1、简单易用,灵活配置,无需开发;2、同时支持流式和离线处理;3、模块化和插件化,易于扩展;4、支持利用SQL做数据处理和聚合;5、支持选择Spark或Flink作为底层引擎层。作为Spark或者Fl...

weixin_39634985的博客 308

scala字符串转为标签向量(LabeledPoint)

package com.hx.data.collection.wx import org.apache.spark.mllib.linalg.Vectors import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.mllib.regression.LabeledPoint import org.apach

MENGHU的博客 4195

基于sparkMLlib的机器学习_[1]_基本数据类型[2]向量标签LabeledPoint

向量标签作用:标识不同值 1:直接静态生成向量标签 标记点 内容 2:文件API生成 loadLibSVMFile 格式:(标签,稀疏向量) 1)索引要从1开始,从0开始的时候生成的内部索引时从-1开始,而且数据长度会比实际少1; 2)数据的长度是以最大列数为准的,因此最好是要保持数据列数一致; 3)标签列可以重复 相关资料: 生成libSVM的数据格式及使用方法总结:点

hjw199089的博客 6622

ArcGIS Engine基础(19)之元素标注(以距离标注和面积标注为例)

距离标注主要代码: 带附加箭头属性的线标注。 private void AddDisLineElement(IActiveView activeView, IPolyline disLine) { if (activeView != null) { try { IGraphicsContainer graphicsCont

wokao253615105的专栏 2815

【补充】自定义数值显示标签,图表点位数值显示

LiveCharts文档-3开始-7标签 Label就是Chart中表示数值的字符串,通常被放置在轴的位置和提示当中。 下图中的这些字符串显示的都是标签 using System; using System.Windows.Forms; using LiveCharts; using LiveCharts.Defaults; using LiveCharts.Wpf; namespace Winforms.Cartesian.Labels { public partial class Labels : F

君一席 2000

标记点(Labeled point)

&emsp&mesp;标记点是由一个本地向量(Local Vector)和一个标签(使用double类型存储)组成, 在MLlib标签在监督学习算法中,我们可以在分类和回归算法中使用标记点。 def testLocalPoint() = { val posLp = LabeledPoint(1.0, Vectors.dense(1.0, 0.0, 3.0))...

chbxw 2344

使用Pyspark将pandas.Dataframe转为LabeledPoint

使用Pyspark将pandas.Dataframe转为LabeledPoint 本人刚刚开始学习pyspark,由于之前只在单机中进行过数据处理,习惯利用python中的pandas进行数据预处理,但是在pyspark中,模型训练时只支持LabeledPoint数据,所以使用pandas的Dataframe处理完数据以后需要将其转化为LabeledPoint,在此过程中查询了许多博文,看了sta...

weixin_42286026的博客 2817
上一篇: scala中反射的简单应用
下一篇: TF-IDF原理及使用
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值