SparkML
记录spark中的机器学习包API
一碗竹叶青
985硕士研究生,AI算法工程师,任职于腾讯,百度等公司,希望充当AI布道者,用最通俗易懂的语言普及AI的原理和内核,让更多人认识AI,学习AI,使用AI。希望交流请VX:tianming608
展开
-
Libsvm格式存储
参考:https://www.it-swarm.net/zh/apache-spark/%E5%A6%82%E4%BD%95%E4%BB%8Edataframe%E5%87%86%E5%A4%87%E6%95%B0%E6%8D%AE%E5%88%B0libsvm%E6%A0%BC%E5%BC%8F%EF%BC%9F/828617867/ 两个步骤: 1.将特征转换为LabeledPoint数据X,或者将采用vectorAssembler将特征转化为稀疏矩阵 2.然后以libsvm格式保存X. // 采用v原创 2020-11-04 20:20:40 · 494 阅读 · 0 评论 -
One hot 编码
参考: https://my.oschina.net/kyo4321/blog/2050708 https://cloud.tencent.com/developer/article/1021585 对于one hot编码首先需要将数据数值化,然后把将数值进行onehot 所有的操作都是对dataframe来进行的,参看如何RDD转换dataframe 数值化 import org.apache.spark.ml.feature.{OneHotEncoder, StringIndexer, VectorAs原创 2020-11-04 20:20:06 · 594 阅读 · 0 评论 -
构建Spark ML推荐模型
将用户数据(u.user)复制到HDFS上 hadoop fs -put u.user /home/hadoop/data/ 查看是否复制成功: hadoop fs -ls /home/hadoop/data/ 读取数据 import org.apache.spark.ml.evaluation.RegressionEvaluator import org.apache . spark.ml.recommendation.ALS import org.apache.spark.sql.SparkSessi原创 2020-11-04 20:18:15 · 516 阅读 · 1 评论 -
构建Spark ML分类模型
数据预处理 scala> import org.apache.spark.ml.feature.LabeledPoint scala> import org.apache.spark.ml.linalg.Vectors val data = records .map { r => val trimmed = r.map (一 .replaceAll (”\””,””}) val label= trimmed(r.size - l).tornt val features = trimmed.原创 2020-11-04 20:17:03 · 228 阅读 · 0 评论 -
评估指标与api
对2分类或者多分类模型的评估: // Precision by threshold val precision = metrics.precisionByThreshold precision.foreach { case (t, p) => println(s"Threshold: $t, Precision: $p") } // Recall by threshold val recall = metrics.recallByThreshold recall.foreach { case原创 2020-11-04 20:15:16 · 389 阅读 · 0 评论 -
查看dataframe的缺失值以及选取每个类目下前topN的数据
// 显示每个类目的缺失值 data.select(data.columns.map(c => sum(col(c).isNull.cast("int")).alias(c)): _*).show data.groupBy("cate1").count().show(30) println(data.count()) //3046 def SortedCate(df:DataFrame): DataFrame ={ // 循环类别赋值label val N = 10 val window =原创 2020-11-04 20:13:54 · 353 阅读 · 1 评论 -
spark dataframe列归一化以及读写
val embddding_seq_data = ss.read.option("sep","\t") .csv("hdfs://ss-sng-dc-v2/stage/outface/SNG/g_sng_weishi_ws_growth/tdw_parkerlin/qq/feature/embedding/bert_embedding/"+endTime_1 +"/") .toDF("feedid","embedding") embddding_seq_data 以tfrecode形式写入hdfs原创 2020-11-04 20:12:40 · 1541 阅读 · 0 评论 -
MLlib基本数据类型
https://www.jianshu.com/p/c6f15063d521 https://blog.csdn.net/qq_33938256/article/details/52584964#%E8%A1%8C%E7%9F%A9%E9%98%B5rowmatrix 简介: MLLib提供了一系列基本数据类型以支持底层的机器学习算法。 主要的数据类型包括标注点Labeled Point)、本地向量(Local Vector)、本地矩阵、分布式矩阵等。单机模式存储的本地向量与矩阵,以及基于一个或多个RDD的原创 2020-10-30 13:20:38 · 1414 阅读 · 0 评论