互联网情绪指标和生猪价格的关联关系挖掘和预测外文翻译资料

 2022-09-06 10:09

英语原文共 415 页,剩余内容已隐藏,支付完成后下载完整资料


表示数据

这个章节包括

  1. 表示数据为向量
  2. 将文本文档转换为矢量形式
  3. 规范化数据表示

为了得到较好的聚类,你需要了解矢量化技术:表示对象为向量的过程。向量是一个非常简单的数据表示,其可以帮助聚类算法理解对象并且有助于计算其与其他对象的相似性。本章节研究将不同种类的事物转换成向量的各种方法。

在最后一章,你会对聚集有个初步的了解。书籍会按照词汇的相似性聚集在一起,在二维平面上的点会以他们之间的距离聚集在一起。在现实中,聚类可以应用于任何类型的对象,提供您可以区分类似和不同的项目。图像可以根据它们的颜色聚集,图形的形状聚集,或者二者都采用。你可以按照人和动物将照片分类。你甚至可以通过它们的平均大小、重量和腿的数目来自动发现分组的动物群。

作为人类,我们可以把这些对象聚集起来,因为我们了解他们,我们“只知道”什么是相似的,什么不是。不幸的是,计算机没有这样的直觉,因此,任何的聚类算法的开始都是将事物以一种计算机能读取的形式表示。

其实,认定事物可测量的特性和属性是相当实用和灵活的。例如,我们确定了大小和重量的显着特征,可以帮助产生一些动物的相似性的概念。每一个对象(动物)都有一个数字值去表示这些特征。

我们想把对象描述为一组值,每一个关联到一组不同的功能,或特点——这听起来熟悉吗?我们都只需再描述一个向量。虽然你已经习惯了去考虑在空间上的箭头或点的向量,他们只是有序列表的值。因此,它们可以很容易地表示对象,在上一章我们已经讨论了如何描述一个向量。但我们如何在Mahout表示向量?我们怎样才能从对象到向量中的第一个元素?这是本章的全部。我们继续讨论如何在数学概念中表示向量。我们会解释数据是如何转换成向量形式并封装成Mahout让人理解。我们也深入到文本数据,我们讨论了一些重要的概念,如加权和归一化。最后,我们使用所有这些概念和矢量化路透社的新闻数据集使用Mahout库。

8.1可视化向量

在很多情况下你可能会遇到这个词向量。在物理学中,一个向量表示一个力的方向和大小,或者像一辆汽车运动物体的速度。在数学中,一个向量是空间的一个点。这两个陈述在概念上是非常相似的。在二维,向量表示为一个有序的值的列表,一个为每个维度,如(4,3)。这两个陈述如图8.1所示。我们经常叫第一尺寸X和第二Y在处理两个维度,但这不会影响我们的目的在Mahout。就我们而言,一个向量可以有2,3,或10000个维度。第一是维度0,下一个是维度1,等等。

在物理学中,一个向量可以被认为是一个射线的起始点、方向和长度,它代表的数量,速度和加速度等。几何或空间,向量是一个点沿各维度的权重表示。方向和向量幅度是默认假设是从原点(0,0)射线。

8.1.1 将数据转换为向量

在Mahout,载体为三个不同的类实现,这是每个优化不同的场景:densevector,randomaccesssparsevector,和sequentialaccesssparsevector。

densevector可以认为是浮点数组,其大小是多少数据中的特征。由于阵列中的所有作品都是预先分配的不管值是不是0,我们称之为密集。

randomaccesssparsevector作为HashMap实现之间的一个整形和一个浮点,只有非零的值特征分配。因此,他们被称为sparsevectors。

sequentialaccesssparsevector是两平行阵列实现,一整形和浮点的另一个。只有非零的值条目被保存在它。不像randomaccesssparsevector,是随机访问优化,这一个是优化的线性阅读。

附录B清楚解释了其中的区别。这三个实现为您提供了一个灵活的方式去选择一个向量类,其性能特点符合数据的性质,该算法,并通过它访问的方式数据。实施的选择取决于算法。如果算法做了很多随机插入和一个向量的值更新,快速随机存取像densevector或randomaccesssparsevector实现是合适的。另一方面,像k-均值的算法的聚类,计算向量的大小反复,这使得

sequentialaccesssparsevector实现执行速度比randomaccesssparsevector更快。

要聚类对象,首先必须转换成向量(它们必须是矢量化)。矢量化过程中的每一种数据类型独特,正因为我们在这本书的一部分中讨论这种关系,我们讨论这个数据转换与聚集。我们希望现在的对象表示为一个n维某种形式的向量使其易于接受。对象必须首先被解释为具有多个维度特征的向量。让我们来看看这一点的背景下一个例子。

假设你想群堆一个苹果。它们是不同的形状,不同的大小,和不同的颜色(红,黄,绿)如图8.2所示。你首先需要定义一个距离度量,这是说,如果他们有几个不同的功能,有少量的不同和一些相似性。所以一个小的、圆的、红色的苹果更类似于一个小的、圆的、绿色的,相比于比一个大的,绿色的一个。

矢量化过程开始与分配特征尺寸。让我们说重量是特征(尺寸)0,颜色为1,尺寸为2。一个小的,圆的,红色的苹果,因此,这是一个类似的向量:

[ 0 = 100克,1 =>红,2 =>小]

但是这个向量没有所有的数值,然而它需要。

例8.2 不同大小和颜色的苹果需要转换成一个合适的向量形式。诀窍就是要找出苹果的不同特点是如何转化为一个小的值。

对于维度0,你需要表达重量为一个数字。这可能只是用克或千克测量体重。大小,尺寸2,并不一定意味着与重量相同。我们所知,绿色苹果可能比红苹果更新鲜。密度也可以使用,只要我们有测量仪器它。大小,另一方面,可以指定作为用户感知的数字:小苹果可以大小值1,中苹果可以尺寸2,大尺寸3。

什么颜色,尺寸1?你可以任意指定数字的颜色,如红色= 0,绿色= 1,黄= 2。这是一个粗糙的表示,它会在许多情况下工作,但它不能反映这个事实:黄色是一种在可见光谱中红色和绿色之间的颜色。我们可以通过改变映射,但也许它会更好地使用类似的波长颜色(400,650纳米)。此映射颜色为一个有意义的和客观的维度值。

用这些属性作为苹果的特性,在表8.1中描述了一些苹果的属性。

表8.1不同重量,大小,颜色转换为载体的苹果

如果你不希望以基于颜色相似聚类苹果,你可以保持每个颜色在不同的维度。也就是说,红色将是1维,绿色尺寸3,黄维4。如果苹果是红色的,红色将有价值1其他0。然后,你可以将这些向量存储在一个稀疏的格式,和距离措施只考虑在这些维度中的非零的值的存在这些苹果是同一颜色的。

一个可能的问题,我们所选择的映射到维度值是在维度1中的值比其他的更大。如果我们应用了一个简单的距离为基础的度量,以确定这些向量之间的相似性,颜色差异将占主导地位的结果。一个相对较小的10纳米的颜色差异被视为相当于一个巨大的大小差异的10。权重不同的维度解决了这个问题。

加权的重要性在8.2节中讨论,你将从文本文件中产生向量。文档中并不是所有的单词都代表文档相同的程度。加权技术有助于放大更重要的词汇的重要性。

8.1.2使用Mahout制备载体

已经建立了如何把苹果作为载体来编码,让我们来看看如何将向量写成Mahout算法。向量的实现实例化并填写每个对象;然后,所有的向量都写在一个由Mahout读取的文件格式中。通过一个格式从编码一系列键值对Hadoop的图书馆。钥匙必须实现writablecomparable从Hadoop,和价值观必须实现可写。这是Hadoop的当量比java的序列化接口。

例如,让我们使用向量的名称或描述作为一个键,和向量自身价值。Mahout的向量类不实现接口的可写避免直接耦合到Hadoop,但vectorwritable包装类可以可用于包装载体并使其可写。Mahout向量可以写成使用vectorwritable班SequenceFile,如下。

清单8.1创建各种苹果的向量

public static void main(String args[]) throws Exception {

Listlt;NamedVectorgt; apples = new ArrayListlt;NamedVectorgt;();

NamedVector apple;

apple = new NamedVector(

new DenseVector(new double[] {0.11, 510, 1}),

'Small round green apple');

apples.add(apple);

apple = new NamedVector(

new DenseVector(new double[] {0.23, 650, 3}),

'Large oval red apple');

apples.add(apple);

apple = new NamedVector(

new DenseVector(new double[] {0.09, 630, 1}),

'Small elongated red apple');

apples.add(apple);

apple = new NamedVector(

new DenseVector(new double[] {0.25, 590, 3}),

'Large round yellow apple');

apples.add(apple);

apple = new NamedVector(

new DenseVector(new double[] {0.18, 520, 2}),

'Medium oval green apple');

Configuration conf = new Configuration();

FileSystem fs = FileSystem.get(conf);

Path path = new Path('appledata/apples');

SequenceFile.Writer writer = new SequenceFile.Writer(fs, conf,

path, Text.class, VectorWritable.class);

VectorWritable vec = new VectorWritable();

for (NamedVector vector : apples) {

vec.set(vector);

writer.append(new Text(vector.getName()), vec);

}

writer.close();

SequenceFile.Reader reader = new SequenceFile.Reader(fs,

new Path('appledata/apples'), conf);

Text key = new Text();

VectorWritable value = new VectorWritable();

while (reader.next(key, value)) {

System.out.println(key.toString() ' '

value.get().asFormatString());

}

reader.close();

}

选择对象的特征并将它们映射到数字的过程被称为特征选择。编码过程特征作为一个矢量的矢量化。任何一种对象都可以使用合理的近似转换为矢量形式的特点值,正如我们为苹果做的。现在让我们转向一个特别化有趣类型的对象:文本文件。

8.2以文本文件为载体

数字形式的文本内容正在爆炸。单独的谷歌搜索引擎索引超过200亿个网络文件。这只是一小部分公开抓取信息。文本数据(公共和私人)的估计大小可以很好的进行在PB级范围:这是一个1后面15个零。有一个巨大的机会这里的机器学习算法,如聚类和分类的数字在这个非结构化的世界中,学习艺术的某些结构和意义矢量化是它的第一步。

向量空间模型(VSM)是矢量化的文本文件的一般方法。首先,想象一下,能在一系列的文件是矢量化所遇到的所有单词的集合。这组可能是所有的话,至少出现一次在任何文件。想象一下每个单词被分配一个数字,这是它在文档向量中占据的维度。

例如,如果马这个词被分配到向量的第三万九千九百零五个索引,则字马将对应于第三万九千九百零五维度的文档向量。一个文件的矢量化形式仅仅由每个单词的次数发生在文档中,该值被存储在该词的向量中维。这些文档向量的维数可以是非常大的。最大尽可能多的维度是矢量势。因为伯爵所有可能的单词或符号是巨大无比的,文本向量通常假设有无限的尺寸。

一个单词的向量维数的值通常是出现的次数文档中的单词。这是众所周知的长期频率(TF)加权。注在一个向量中的值也被称为这个字段中的权重,可以看到引用加权代替值。出现在一个中的唯一单词的数量文档通常很小,相比于出现在正在处理的集合中的任何文档。因此,这些高维文档向量是稀疏的。

聚类分析中,我们试图在基于距离测度的两个文件的相似度。在一个典型的英语文件的单词中,最常见的是a, an, the, who, what, are, is, was等等。

我们称这些词为停止词。如果你比较两个文档的相似度的话,你会频繁见

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[147032],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。