mahout向量

一、mahout三种向量:

在mahout中,向量被实现为三个不同的类,每个类都是针对不同场景优化的:DenseVector、RandomAccessSparseVector和SequentialAccessSparseVector。

1、DenseVector可被视为一个double型数组,其大小为数据中的特征个数。因为不管数组的元素之是不是0,数组中所有元素都被预先分配了空间。我们称之为密集的(dense)。

2、RandomAccessSparseVector被实现为integer型和double型之间的一个HashMap,只有非零元素被分配空间。因此,这类向量被成为稀疏向量。

3、SequentialAccessSparseVector实现为两个并列的数组,一个是integer型另一个是double型。其中只保留了非零元素。与面向随机访问的RandomAccessSparseVector不同,它是为顺序读取而优化的。

二、向量选择:

具体选择那种实现依赖于算法。如果算法要对向量的值做许多随机插入和更新,就适合使用像DenseVector和RandomAccessSparseVector这样支持快速随机访问的实现。另一方面,而对于像k-means聚类这样反复计算向量大小的算法,SequentialAccessSparseVector实现的执行速度就会比RandomAccessSparseVector更快。

三、如何将对象转化为向量:

在算法中,每个对象都要转化成一个n维向量。其维度数与对象的特征个数相同。

比如,一堆苹果,他们有不同的形状,重量,颜色。其中有一个苹果,它的形状是3(圆),重量是0.1(kg),颜色绿色600(波长)

那么每个苹果可以对应为向量(3,0.1,600)

但是现在维度有一个问题,就是颜色维度的值将主导最终的结果,比如,一个相对较小的10nm的色差会相当于100倍的重量差异。不过我们可以通过不同维度加权解决这个问题。

时间: 2024-10-13 15:53:50

mahout向量的相关文章

准备Mahout所用的向量ApplesToVectors

<strong><span style="font-size:18px;">/*** * @author YangXin * @info 准备Mahout所用的向量 * 将苹果的信息转化为输入的向量 */ package unitEight; import java.util.ArrayList; import java.util.List; import org.apache.hadoop.conf.Configuration; import org.apac

Mahout分布式运行实例:基于矩阵分解的协同过滤评分系统

Apr 08, 2014  Categories in tutorial tagged with Mahout hadoop 协同过滤  Joe Jiang 前言:之前配置Mahout时测试过一个简单的推荐例子,当时是在Eclipse上运行的,由于集成插件的缘故,所以一切进行的都比较顺利,唯一不足的是那是单机运行的,没有急于分布式系统处理.所以基于测试分布式处理环境的目的,下午找了一个实例来运行,推荐系统原型是一个电影评分的系统. 一.问题描述 对于协同过滤(Collaborative Filt

Mahout初步认识

Apache Mahout项目主要包括以下五个部分: 频繁模式挖掘:挖掘数据中频繁出现的项集. 聚类:将诸如文本.文档之类的数据分成局部相关的组. 分类:利用已经存在的分类文档训练分类器,对未分类的文档进行分类. 推荐引擎(协同过滤):获得用户的行为并从中发现用户可能喜欢的事务. 频繁子项挖掘:利用一个项集(查询记录或购物目录)去识别经常一起出现的项目. 在Mahout实现的机器学习算法: 算法类 算法名 中文名 分类算法 Logistic Regression 逻辑回归 Bayesian 贝叶

mahout贝叶斯算法拓展篇3---分类无标签数据

代码测试环境:Hadoop2.4+Mahout1.0 前面博客:mahout贝叶斯算法开发思路(拓展篇)1和mahout贝叶斯算法开发思路(拓展篇)2 分析了Mahout中贝叶斯算法针对数值型数据的处理.在前面这两篇博客中并没有关于如何分类不带标签的原始数据的处理.下面这篇博客就针对这样的数据进行处理. 最新版(适合Hadoop2.4+mahout1.0环境)源码以及jar包可以在这里下载Mahout贝叶斯分类不含标签数据: 下载后参考使用里面的jar包中的fz.bayes.model.Baye

Mahout学习之Mahout简介、安装、配置、入门程序测试

一.Mahout简介 查了Mahout的中文意思--驭象的人,再看看Mahout的logo,好吧,想和小黄象happy地玩耍,得顺便陪陪这位驭象人耍耍了... 附logo: (就是他,骑在象头上的那个Mahout) 步入正文啦: Mahout 是一个很强大的数据挖掘工具,是一个分布式机器学习算法的集合,包括:被称为Taste的分布式协同过滤的实现.分类.聚类等.Mahout最大的优点就是基于hadoop实现,把很多以前运行于单机上的算法,转化为了MapReduce模式,这样大大提升了算法可处理的

Mahout聚类和kafaka相关知识

1.说几种距离测度Mahout: 欧式距离测度:平方欧式距离测度:曼哈顿距离测度:余弦距离测度:加权距离测度 2.K-means算法参数: 3.TF-IDF加权公式: 4.聚类是什么? 聚类是一种无监督的机器学习任务,可以自动将数据划分成类cluster.并不需要提前告知所划分的组是什么样的,因为我们可能都不知道我们在寻找什么,所以聚类是用来知识发现的而不是预测 5.聚类的原则? 一个组内的记录彼此必须非常相似,与该组之外的记录截然不同.聚类做的就是遍历所有数据找到他们之间的相似性 6.聚类用代

Hadoop里的数据挖掘应用-Mahout——学习笔记&lt;三&gt;

之前有幸在MOOC学院抽中小象学院hadoop体验课. 这是小象学院hadoop2.X的笔记 由于平时对数据挖掘做的比较多,所以优先看Mahout方向视频. Mahout有很好的扩展性与容错性(基于HDFS&MapReduce开发),实现了大部分常用的数据挖掘算法(聚类.分类.推荐算法)不过数据挖掘调参和业务理解是关键,个人觉得真正想学习的话,还是看正规机器学习的课程比较好. 这里省略了大部分比较技术那一块的笔记... 虽然mahout在速度上有天然优势.但R/Python其实也在接入hadoo

mahout k-means聚类的入门操作步骤重点:

1.把文本文件变为sequence file: mahout seqdirectory -i file://$(pwd)/news/ -o file://$(pwd)/news-seq/ -c UTF-8 -chunk 64 -xm sequential mahout seqdirectory -i file://$(pwd)/1/ -o file://$(pwd)/1-seq/ -c UTF-8 -chunk 64 -xm sequential 2.把本地的seqence file传到hado

hadoop(十三) - mahout安装与使用

一. mahout简介: Mahout 是一个很强大的数据挖掘工具,是一个分布式机器学习算法的集合,包括:被称为Taste的分布式协同过滤的实现.分类.聚类等.Mahout最大的优点就是基于hadoop实现,把很多以前运行于单机上的算法,转化为了MapReduce模式,这样大大提升了算法可处理的数据量和处理性能. 以下为在mahout实现的机器学习算法: 算法类 算法名 中文名 分类算法 Logistic Regression 逻辑回归 Bayesian 贝叶斯 SVM 支持向量机 Percep