Spark-mllib特征选择算法

Spark-mllib特征选择算法

这篇文章介绍了三个用于特征选择的机器学习算法:VectorAssembler、ChiSqSelector和RFormula。以下是每个算法的详细解释和调用示例:

VectorAssembler

算法介绍:

  • 用途: 将多个列(特征)合并成一个单一的向量列。
  • 特点: 适用于需要将多个特征组合在一起进行分析的情况。

示例: 假设我们有一个DataFrame含有id, features1和features2三列,我们希望将它们合并成一个名为"features"的向量列。

import org.apache.spark.ml.feature.VectorAssembler val data = Seq( (7, Vectors.dense(0.0), Vectors.dense(18.0)), (8, Vectors.dense(1.0), Vectors.dense(12.0)), (9, Vectors.dense(0.1), Vectors.dense(15.0)) ) val df = spark.createDataset(data).toDF("id", "features1", "features2") val assembler = new VectorAssembler() .setInputCols(Array("features1", "features2")) .setOutputCol("features") val result = assembler.transform(df) result.show() 

ChiSqSelector

算法介绍:

  • 用途: 根据卡方检验选择特征。
  • 特点: 适用于分类标签数据,选择与标签关联性最强的特征。

示例: 假设我们有一个DataFrame含有id, features和clicked三列,其中clicked为需要预测的目标。我们希望根据标签clicked选择最相关的特征。

import org.apache.spark.ml.feature.ChiSqSelector import org.apache.spark.ml.linalg.Vectors val data = Seq( (7, Vectors.dense(0.0, 0.0, 18.0, 1.0), 1.0), (8, Vectors.dense(0.0, 1.0, 12.0, 0.0), 0.0), (9, Vectors.dense(1.0, 0.0, 15.0, 0.1), 0.0) ) val df = spark.createDataset(data).toDF("id", "features", "clicked") val selector = new ChiSqSelector() .setNumTopFeatures(1) .setFeaturesCol("features") .setLabelCol("clicked") .setOutputCol("selectedFeatures") val result = selector.fit(df).transform(df) result.show() 

RFormula

算法介绍:

  • 用途: 根据R语言中的公式语法选择特征和标签。
  • 特点: 可以处理复杂的特征选择逻辑,适用于回归、分类等多种场景。

示例: 假设我们有一个DataFrame含有id, country, hour和clicked三列,我们希望基于country 和hour预测clicked。通过RFormula公式可以得到一个包含features和label的新DataFrame。

import org.apache.spark.ml.feature.RFormula val dataset = spark.createDataFrame(Seq( (7, "US", 18, 1.0), (8, "CA", 12, 0.0), (9, "NZ", 15, 0.0) )).toDF("id", "country", "hour", "clicked") val formula = new RFormula() .setFormula("clicked ~ country + hour") .setFeaturesCol("features") .setLabelCol("label") val output = formula.fit(dataset).transform(dataset) output.select("features", "label").show() 

这些算法可以帮助我们有效地选择和组合特征,从而提高模型的性能。

Read more

最新电子电气架构(EEA)调研-3

而新一代的强实时性、高确定性,以及满足CAP定理的同步分布式协同技术(SDCT),可以实现替代TSN、DDS的应用,且此技术已经在无人车辆得到验证,同时其低成本学习曲线、无复杂二次开发工作,将开发人员的劳动强度、学习曲线极大降低,使开发人员更多的去完成算法、执行器功能完善。 五、各大车厂的EEA 我们调研策略是从公开信息中获得各大车厂的EEA信息,并在如下中进行展示。 我们集中了华为、特斯拉、大众、蔚来、小鹏、理想、东风(岚图)等有代表领先性的车辆电子电气架构厂商。        1、华为 图12 华为的CCA电子电气架构              (1)华为“计算+通信”CC架构的三个平台                         1)MDC智能驾驶平台;                         2)CDC智能座舱平台                         3)VDC整车控制平台。        联接指的是华为智能网联解决方案,解决车内、车外网络高速连接问题,云服务则是基于云计算提供的服务,如在线车主服务、娱乐和OTA等。 华

By Ne0inhk
Apache IoTDB 架构特性与 Prometheus+Grafana 监控体系部署实践

Apache IoTDB 架构特性与 Prometheus+Grafana 监控体系部署实践

Apache IoTDB 架构特性与 Prometheus+Grafana 监控体系部署实践 文章目录 * Apache IoTDB 架构特性与 Prometheus+Grafana 监控体系部署实践 * Apache IoTDB 核心特性与价值 * Apache IoTDB 监控面板完整部署方案 * 安装步骤 * 步骤一:IoTDB开启监控指标采集 * 步骤二:安装、配置Prometheus * 步骤三:安装grafana并配置数据源 * 步骤四:导入IoTDB Grafana看板 * TimechoDB(基于 Apache IoTDB)增强特性 * 总结与应用场景建议 Apache IoTDB 核心特性与价值 Apache IoTDB 专为物联网场景打造的高性能轻量级时序数据库,以 “设备 - 测点” 原生数据模型贴合物理设备与传感器关系,通过高压缩算法、百万级并发写入能力和毫秒级查询响应优化海量时序数据存储成本与处理效率,同时支持边缘轻量部署、

By Ne0inhk
SQL Server 2019安装教程(超详细图文)

SQL Server 2019安装教程(超详细图文)

SQL Server 介绍) SQL Server 是由 微软(Microsoft) 开发的一款 关系型数据库管理系统(RDBMS),支持结构化查询语言(SQL)进行数据存储、管理和分析。自1989年首次发布以来,SQL Server 已成为企业级数据管理的核心解决方案,广泛应用于金融、电商、ERP、CRM 等业务系统。它提供高可用性、安全性、事务处理(ACID)和商业智能(BI)支持,并支持 Windows 和 Linux 跨平台部署。 一、获取 SQL Server 2019 安装包 1. 官方下载方式 前往微软官网注册账号后,即可下载 SQL Server Developer 版本(

By Ne0inhk