http://m.blog.csdn.net/wangpei1949/article/details/53140372 Spark MLlib特征处理:OneHotEncoder OneHot编码 ---原理及实战…
在阅读spark mllib源码的时候,发现一个出镜率很高的函数--aggregate和treeAggregate,比如matrix.columnSimilarities()中.为了好好理解这两个方法的使用,于是整理了本篇内容. 由于treeAggregate是在aggregate基础上的优化版本,因此先来看看aggregate是什么. 更多内容参考我的大数据学习之路 aggregate 先直接看一下代码例子: import org.apache.spark.sql.SparkSession o…
1.LabelEncoder() # 用于构建数字编码 2 .map(dict_map)  根据dict_map字典进行数字编码的映射 3.OnehotEncoder()  # 进行one-hot编码,输入的参数必须是二维的,因此需要做reshape,同时使用toarray() 转换为列表形式 3  pd.get_dummies(feature,drop_first=False) 如果填单个特征的话,只对一个特征做one-hot编码映射, drop_first表示去除one-hot编码后的第一列…
不多说,直接上干货! 具体,见 Spark Mllib机器学习(算法.源码及实战详解)的第2章 Spark数据操作…
在机器学习中,线性回归和逻辑回归算是最基础入门的算法,很多书籍都把他们作为第一个入门算法进行介绍.除了本身的公式之外,逻辑回归和线性回归还有一些必须要了解的内容.一个很常用的知识点就是虚拟变量(也叫做哑变量)-- 用于表示一些无法直接应用到线性公式中的变量(特征). 举个例子: 通过身高来预测体重,可以简单的通过一个线性公式来表示,y=ax+b.其中x为身高,y为体重. 现在想要多加一些特征(参数),比如性别. 那么问题来了:如何在一个公式中表示性别呢? 这就是哑变量的作用,它可以通过扩展特征值…
梯度迭代树(GBDT)算法原理及Spark MLlib调用实例(Scala/Java/python) http://blog.csdn.net/liulingyuan6/article/details/53426350 梯度迭代树 算法简介: 梯度提升树是一种决策树的集成算法.它通过反复迭代训练决策树来最小化损失函数.决策树类似,梯度提升树具有可处理类别特征.易扩展到多分类问题.不需特征缩放等性质.Spark.ml通过使用现有decision tree工具来实现. 梯度提升树依次迭代训练一系列的…
无论是ICF基于物品的协同过滤.UCF基于用户的协同过滤.基于内容的推荐,最基本的环节都是计算相似度.如果样本特征维度很高或者<user, item, score>的维度很大,都会导致无法直接计算.设想一下100w*100w的二维矩阵,计算相似度怎么算? 更多内容参考--我的大数据学习之路--xingoo 在spark中RowMatrix提供了一种并行计算相似度的思路,下面就来看看其中的奥妙吧! 相似度 相似度有很多种,每一种适合的场景都不太一样.比如: 欧氏距离,在几何中最简单的计算方法 夹…
1. 多值无序类数据的特征提取: 多值无序类问题(One-hot 编码)把“耐克”编码为[0,1,0],其中“1”代表了“耐克”的中 间位置,而且是唯一标识.同理我们可以把“中国”标识为[1,0],把“蓝色”标识为[0,1]. 然后把所有的数据编码拼接起来,[“耐克”,“中国”,“蓝色”]的最终编码结果就变为了 [0,1,0,1,0,0,1],这一组数据虽然很稀疏,但是可以带到算法中进行计算 无序类数据的特征提取:One-hot 编码解决多值无序类数据的特征提取问题. 2.文本提取特征:   由…
在这个案例中: 1. datetime.datetime.strptime(data, '%Y-%m-%d') # 由字符串格式转换为日期格式 2. pd.get_dummies(features)  # 将数据中的文字标签转换为one-hot编码形式,增加了特征的列数 3. rf.feature_importances 探究了随机森林样本特征的重要性,对其进行排序后条形图 4.fig.autofmt_xdate(rotation=60)  # 对图中的X轴标签进行60的翻转 代码: 第一步:数…
LDA背景 LDA(隐含狄利克雷分布)是一个主题聚类模型,是当前主题聚类领域最火.最有力的模型之中的一个,它能通过多轮迭代把特征向量集合按主题分类.眼下,广泛运用在文本主题聚类中. LDA的开源实现有非常多.眼下广泛使用.可以分布式并行处理大规模语料库的有微软的LightLDA,谷歌plda.plda+,sparkLDA等等. 以下介绍这3种LDA: LightLDA依赖于微软自己实现的multiverso參数server.server底层使用mpi或zeromq发送消息. LDA模型(word…
转发:https://blog.csdn.net/lujiandong1/article/details/49448051 处理离散型特征和连续型特征并存的情况,如何做归一化.参考博客进行了总结:https://www.quora.com/What-are-good-ways-to-handle-discrete-and-continuous-inputs-together总结如下:1.拿到获取的原始特征,必须对每一特征分别进行归一化,比如,特征A的取值范围是[-1000,1000],特征B的取…
1. 连续型特征的常用的归一化方法.离散型特征one-hot编码的意义 2. 度量特征之间的相关性:余弦相似度和皮尔逊相关系数…
在机器学习中,一般都会按照下面几个步骤:特征提取.数据预处理.特征选择.模型训练.检验优化.那么特征的选择就很关键了,一般模型最后效果的好坏往往都是跟特征的选择有关系的,因为模型本身的参数并没有太多优化的点,反而特征这边有时候多加一个或者少加一个,最终的结果都会差别很大. 在SparkMLlib中为我们提供了几种特征选择的方法,分别是VectorSlicer.RFormula和ChiSqSelector. 下面就介绍下这三个方法的使用,强烈推荐有时间的把参考的文献都阅读下,会有所收获! Vect…
原文地址:https://www.ibm.com/developerworks/cn/opensource/os-cn-spark-practice4/ 引言 提起机器学习 (Machine Learning),相信很多计算机从业者都会对这个技术方向感到兴奋.然而学习并使用机器学习算法来处理数据却是一项复杂的工作,需要充足的知识储备,如概率论,数理统计,数值逼近,最优化理论等.机器学习旨在使计算机具有人类一样的学习能力和模仿能力,这也是实现人工智能的核心思想和方法.传统的机器学习算法,由于技术和…
机器学习:数据预处理之独热编码(One-Hot) 前言 ---------------------------------------- 在机器学习算法中,我们经常会遇到分类特征,例如:人的性别有男女,祖国有中国,美国,法国等.这些特征值并不是连续的,而是离散的,无序的.通常我们需要对其进行特征数字化. 那什么是特征数字化呢?例子如下: 性别特征:["男","女"] 祖国特征:["中国","美国,"法国"] 运动特征…
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .机器学习概念 1.1 机器学习的定义 在维基百科上对机器学习提出以下几种定义: l“机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能”. l“机器学习是对能通过经验自动改进的计算机算法的研究”. l“机器学习是用数据或以往的经验,以此优化计算机程序的性能标准.” 一种经常引用的英文定义是:A computer program is said t…
MLlib的设计原理:把数据以RDD的形式表示,然后在分布式数据集上调用各种算法.MLlib就是RDD上一系列可供调用的函数的集合. 操作步骤: 1.用字符串RDD来表示信息. 2.运行MLlib中的一个特征提取算法来吧文本数据转换为数值的特征.给操作会返回一个向量RDD. 3.对向量RDD调用分类算法,返回一个模型对象,可以使用该对象对新的数据点进行分类. 4.使用MLlib的评估函数在测试数据集上评估模型. 机器学习基础: 机器学习算法尝试根据 训练数据 使得表示算法行为的数学目标最大化,并…
上一篇博客介绍了文本离散表示的one-hot.TF-IDF和n-gram方法,在这篇文章里,我做了一个对新闻文本进行one-hot编码的小实践. 文本的one-hot相对而言比较简单,我用了两种方法,一种是自己造轮子,第二种是用深度学习框架keras来做.同时,我发现尽管sklearn可以实现对特征向量的one-hot,但并不适用于文本的处理. 代码和新闻文本文件可到我github主页下载:https://github.com/DengYangyong/one_hot_distribution.…
1.自动文本分类是对大量的非结构化的文字信息(文本文档.网页等)按照给定的分类体系,根据文字信息内容分到指定的类别中去,是一种有指导的学习过程. 分类过程采用基于统计的方法和向量空间模型可以对常见的文本网页信息进行分类,分类的准确率可以达到85%以上.分类速度50篇/秒. 2.要想分类必须先分词,进行文本分词的文章链接常见的四种文本自动分词详解及IK Analyze的代码实现 3.废话不多说直接贴代码,原理链接https://www.cnblogs.com/pinard/p/6069267.ht…
One-Hot编码 What.Why And When? 一句话概括:one hot编码是将类别变量转换为机器学习算法易于利用的一种形式的过程. 目录: 前言: 通过例子可能更容易理解这个概念. 假设我们有一个迷你数据集: 公司名 类别值 价格 VW 1 20000 Acura 2 10011 Honda 3 50000 Honda 3 10000 其中,类别值是分配给数据集中条目的数值编号.比如,如果我们在数据集中新加入一个公司,那么我们会给这家公司一个新类别值4.当独特的条目增加时,类别值将…
本章导读 机器学习(machine learning, ML)是一门涉及概率论.统计学.逼近论.凸分析.算法复杂度理论等多领域的交叉学科.ML专注于研究计算机模拟或实现人类的学习行为,以获取新知识.新技能,并重组已学习的知识结构使之不断改善自身. MLlib是Spark提供的可扩展的机器学习库.MLlib已经集成了大量机器学习的算法,由于MLlib涉及的算法众多,笔者只对部分算法进行了分析,其余算法只是简单列出公式,读者如果想要对公式进行推理,需要自己寻找有关概率论.数理统计.数理分析等方面的专…
最近在用Spark MLlib进行特征处理时,对于StringIndexer和IndexToString遇到了点问题,查阅官方文档也没有解决疑惑.无奈之下翻看源码才明白其中一二...这就给大家娓娓道来. 更多内容参考我的大数据学习之路 文档说明 StringIndexer 字符串转索引 StringIndexer可以把字符串的列按照出现频率进行排序,出现次数最高的对应的Index为0.比如下面的列表进行StringIndexer id category 0 a 1 b 2 c 3 a 4 a 5…
基于Spark Mllib的文本分类 文本分类是一个典型的机器学习问题,其主要目标是通过对已有语料库文本数据训练得到分类模型,进而对新文本进行类别标签的预测.这在很多领域都有现实的应用场景,如新闻网站的新闻自动分类,垃圾邮件检测,非法信息过滤等.本文将通过训练一个手机短信样本数据集来实现新数据样本的分类,进而检测其是否为垃圾消息,基本步骤是:首先将文本句子转化成单词数组,进而使用 Word2Vec 工具将单词数组转化成一个 K 维向量,最后通过训练 K 维向量样本数据得到一个前馈神经网络模型,以…
1.导入包 import org.apache.spark.sql.SparkSession import org.apache.spark.sql.Dataset import org.apache.spark.sql.Row import org.apache.spark.sql.DataFrame import org.apache.spark.sql.Column import org.apache.spark.sql.DataFrameReader import org.apache.…
Spark MLlib架构解析 MLlib的底层基础解析 MLlib的算法库分析 分类算法 回归算法 聚类算法 协同过滤 MLlib的实用程序分析 从架构图可以看出MLlib主要包含三个部分: 底层基础:包括Spark的运行库.矩阵库和向量库: 算法库:包含广义线性模型.推荐系统.聚类.决策树和评估的算法: 实用程序:包括测试数据的生成.外部数据的读入等功能. MLlib的底层基础解析 底层基础部分主要包括向量接口和矩阵接口,这两种接口都会使用Scala语言基于Netlib和BLAS/LAPAC…
一.问题由来 最近在做ctr预估的实验时,还没思考过为何数据处理的时候要先进行one-hot编码,于是整理学习如下:  在很多机器学习任务如ctr预估任务中,特征不全是连续值,而有可能是分类值.如下: 分类变量(定量特征)与连续变量(定性特征).我们训练模型的变量,一般分为两种形式.以广告收入增长率为例,如果取值为0-1之间任意数,则此时变量为连续变量.如果把增长率进行分段处理,表示成如下形式:[0,0.3],(0.3,0.6],(0.6,1],那么此时变量为分类变量.  特征转换.对于分类变量…
注:本章不涉及spark和scala原理的探讨,详情见其他随笔 一.分布式估算圆周率 计算原理:假设正方形的面积S等于x²,而正方形的内切圆的面积C等于Pi×(x/2)²,因此圆面积与正方形面积之比C/S就为Pi/4,于是就有Pi=4×C/S.可以利用计算机随机产生大量位于正方形内部的点,通过点的数量去近似表示面积.假设位于正方形中点的数量为Ps,落在圆内的点的数量为Pc,则随机点的数量趋近于无穷时,4×Pc/Ps将逼近于Pi. idea实现代码: package com.hadoop impo…
周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark SQL相关的知识,如果对Spark不熟的同学可以先看看之前总结的两篇文章: [原]Learning Spark (Python版) 学习笔记(一)----RDD 基本概念与命令 [原]Learning Spark (Python版) 学习笔记(二)----键值对.数据读取与保存.共享特性 #####…
  http://product.dangdang.com/23829918.html Spark作为新兴的.应用范围最为广泛的大数据处理开源框架引起了广泛的关注,它吸引了大量程序设计和开发人员进行相关内容的学习与开发,其中 MLlib是 Spark框架使用的核心.本书是一本细致介绍 Spark MLlib程序设计的图书,入门简单,示例丰富. 本书分为 12章,从 Spark基础安装和配置开始,依次介绍 MLlib程序设计基础.MLlib的数据对象构建.MLlib中 RDD使用介绍,各种分类.聚…
http://spark.apache.org/docs/latest/mllib-decision-tree.html 以决策树作为开始,因为简单,而且也比较容易用到,当前的boosting或random forest也是常以其为基础的 决策树算法本身参考之前的blog,其实就是贪婪算法,每次切分使得数据变得最为有序   那么如何来定义有序或无序? 无序,node impurity 对于分类问题,我们可以用熵entropy或Gini来表示信息的无序程度 对于回归问题,我们用方差Variance…