使用spark训练LR模型

本文介绍了在工作之余参与CTR预估比赛时,利用Spark集群训练逻辑回归(LR)模型的经验。通常,LR+海量特征是CTR预估的常见解决方案。尽管Python+Pandas等工具在单机上易于使用,但面对大规模数据时效率低下。Spark作为分布式计算框架,虽然操作相对复杂,但在处理大数据和高维稀疏矩阵时表现出强大的计算能力。文中以Scala为例,展示了如何使用Spark的ml库训练简单的LR模型。
摘要由CSDN通过智能技术生成

最近在工作之余参加了一个CTR预估的比赛,CTR预估是一个成熟又经典的问题,工业界目前使用的主流方案仍然是LR+海量特征。趁着这一次比赛的机会,正好抱着学习的心态尝试着学习用spark集群来训练一下LR。

在学校的时候大家训练模型一般都是用python+pandas+numpy+sklearn,这一套工具在单机的环境下非常的简单易学,但是面对海量数据或者高维稀疏矩阵的计算,就显得无能为力。

相比之下,spark作为分布式计算框架,用户操作起来的感觉更多是,虽然笨重,但是算得快啊。

spark提供了两套机器学习的库,mllib和ml。前者主要适用于RDD的处理,而后者主要适用于dataframe的处理。

目前spark的用户中基于spark.dataframe已经成为了主流,mllib这个库也不再维护,转向更新ml这个库。

spark上支持cpp、java、python和scala,其中scala是spark的原生语言,本文就以scala为例,训练了一个非常简单的LR模型。

import org.apache.spark.ml.classification.LogisticRegression
import org.apache.spark.ml.evaluation.BinaryClassificationEvaluator
import org.apache.spark.ml.{Pipeline, PipelineStage}
import org.apache.spark.ml.feature.{OneHotEncoder, StringIndexer, VectorAssembler}
import org.apache.spark.sql.SparkSession
import org.apache.spark.ml.linalg.Vectors

import scala.c
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值