分享

Spark 高级分析:第四章第5,6节

feilong 2018-1-12 08:09:47 发表于 连载型 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 5418
本帖最后由 feilong 于 2018-1-12 19:13 编辑
问题导读

1.Covtype数据集在哪里下载?
2.使用Spark MLib实现一个决策树要做哪些数据准备?
3.LabeledPoint是什么?





上一篇:Spark 高级分析:第四章第4节
http://www.aboutyun.com/forum.php?mod=guide&view=my

第5节 Covtype数据集

本章中所使用的数据集是著名Covtype数据集,在https://archive.ics.uci.edu/ml/m ... -databases/covtype/网上压缩csv格式的数据文件,covtype.datagz,附带信息文件,covtype.info。

数据集记录了美国科罗拉多州境内的林地类型。数据集涉及真实世界的森林,这只是巧合!每一个例子都有几个特征描述每一个地块,比如它的海拔,坡度,距离水,阴影,土壤类型,以及已知的森林类型覆盖土地。森林覆盖类型是由其他特征预测的,总共有54个。

这个数据集已经被用于研究,甚至是Kaggle竞赛。这是一个有趣的数据集,可以在这一章中探索,因为它包含了类别和数字特征。数据集中有581012个例子,虽然算不上大数据,但是足够大,可以作为一个例子,并且仍然突出了一些规模问题。

第6节 准备数据

值得庆幸的是,数据已经采用了简单的CSV格式,不需要大量的清理或其他的准备来使用Spark MLlib。稍后,探索数据的一些转换将会是有趣的,但它可以按原样使用。

covtype.data文件应该被提取并复制到HDFS中。本章将假定该文件位于/ user/ds /。启动spark-shell。

一个特征向量的Spark MLlib抽象被称为LabeledPoint,它由一个Spark MLlib的特征向量和一个目标值(这里称为标签)组成。目标是一个双值,而向量本质上是多个双值之上的一个抽象。这表明LabeledPoint仅用于数值特性。它可以通过适当的编码用于分类特征。

一个这样的编码是热编码或1- N的编码,在这个编码中,一个包含N个不同的值的分类特性成为N个数字特征,每一个都取值为0或1。其中一个N值是1,另一个是0。例如,一个可以是多云、多雨或清晰的天气的分类特征将会变成3个数字特征,其中云的代表是1、0、0、多雨、0、1、0等等。这3个数字特性可能被认为是is_cloudy、is_rainy和is_clear特性。

另一种可能的编码只是为分类特性的每个可能值分配一个不同的数值。例如,多云可能会变成1.0,多雨2.0等等。

注意,在将分类特性编码为单个数字特性时要小心。原始的分类值没有排序,但是当编码为一个数字时,它们看起来是有序的。将编码特性作为数字处理,将会导致无意义的结果,因为该算法实际上是在假设下雨的程度要大于而且是多云的2倍。只要编码的数字值不被用作数字就可以。

所有列都包含数字,但Covtype数据集并不仅仅包含数字特征。covtype.info文件显示,其中4个列实际上是一个具有4个值、Wilder ness_Type的单分类特性的一个热编码。同样,40个列实际上是一个Soil_Type分类特性。目标本身是一个被编码为值1到7的分类值。其余的特征是各种单位的数字特征,如米、度或定性的“指数”值。

我们看到了这两种类型的分类特征。它可能会更简单、更直接,不会对这些特性进行编码(在两种情况下,也不会减少),而是直接将其值直接包含到“Rawah Wilderness Area”中。这可能是历史的产物;数据集于1998年发布。由于性能方面的原因,或者是为了匹配那些为回归问题而构建的当天的库所期望的格式,数据集通常包含以这些方式编码的数据。

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条