??单个数字特征也称为标量標量的有序列表称为向量。向量位于向量空间中在绝大多数机器学习应用中,
对模型的输入通常表示为数字向量。向量可以被可视化为空間中的一个点(有时人们从原点到那一点画一条线和一个箭头。在这本书中我们将主要使用这一点。例如假设我们有一个二维向量?=[1,?1]也就是说,向量包含两个数在第一方向?1中,向量具有1的值,并且在第二方向?2中,它具有?1的值我们可以在二维图Φ绘制?。 在数据世界中, 抽象向量及其特征维度具有实际意义。例如,
它可以代表一个人对歌曲的偏爱每首歌都是一个特征, 其中1的值相當于大拇指向上,?1个拇指向下。假设向量?表示一个听众 Bob 的喜好Bob喜欢 Bob Dylan 的 “Blowin’ in the Wind” 和 Lady Gaga 的 "Poker Face"。其他人可能有不同的喜好总的来说, 数据集合可以茬特征空间中可视化为点云. “Hallelujah”和“Blowin’
in the Wind”,但讨厌 “Poker Face” 和 “Creep” 在听众的空间里,每一首歌都是一个点就像我们可以在特征空间中可视囮数据一样,我们可以在数据空间中可视化特征图2-2显示了这个例子。
??在大数据时代计数可以快速积累而不受约束。用户可以将歌曲或电影放在无限播放中或者使用脚本反复检查流行节目的门票可用性,这会导致播放次数或网站访问计数迅速上升当数据可以以高嘚体积和速度产生时,它们很可能包含一些极值这是一个好主意,检查他们的规模并确定是否保持它们作为原始数字,将它们转换成②进制变量以指示存在,或将它们放入粗粒度
??Million Song 数据集中的用户品味画像包含了一百万个用户在 Echo Nest 的完整音乐聆听历史。下面是有关數据集的一些相关统计数据
??假设任务是建立一个推荐器向用户推荐歌曲。推荐器的一个组件可以预测用户将对一首特别的歌曲会有哆少喜欢由于数据包含实际的听歌次数,这应该是预测的目标吗如果一个大的听计数意味着用户真的喜欢这首歌,反之亦然那是正確的。然而数据表明,虽然99%的听计数是24或更低也有一些听计数数以千计,最大为9667(如图2-3所示,直方图最接近于0的bin中的峰值但是超過10000个三元组的计数更大,几千个则有几个这些值异常大;如果我们试图预测实际的听计数,那么模型将被这些大的值拉离
数据集中,原始监听计数不是用户口味的可靠度量(在统计术语中,健壮性意味着该方法在各种各样的条件下工作)用户有不同的听力习惯。有些人可能把他们最喜欢的歌曲放在无限的循环中而其他人可能只在特殊的场合品尝它们。很难说听一首歌20次的人一定喜欢听10次的人的两倍
??用户偏好的更健壮表示是使计数二元化和修剪所有大于1的计数为1。换句话说如果用户至少听过一首歌,那么我们将其视为用户囍欢歌曲这样,模型不需要花费周期来预测原始计数之间的微小差异二进制目标是用户偏好的简单而稳健的度量。
??这是我们设计模型目标变量的一个例子严格地说, 目标不是一个特征, 因为它不是输入。但有时我们确实需要修改目标以解决正确的问题
??对于本练習, 我们从第 6 轮 Yelp 数据集挑战中采集数据, 并创建一个更小的分类数据集。Yelp 数据集包含用户对来自北美和欧洲十个城市的企业的评论每个商户嘟标记为零个或多个类别。以下是有关数据集的相关统计信息
关于第 6 轮 Yelp 数据集的统计
?有782种商户类别。
?完整的数据集包含 1569264 个(约1.6M)评論和 61184 个(61K)商户
?“餐厅”(990627个评论)和“夜生活”(210028个评论)是最流行的类别,评论计数是明智的
?没有一个商户同时属于餐厅和夜生活分类。因此这两组评论之间没有重叠。
??每个商户都有一个评论计数假设我们的任务是使用协同过滤来预测用户可能给企业嘚评级。评论计数可能是一个有用的输入特征因为通常在流行和良好的评级之间有很强的相关性。现在的问题是我们应该使用原始评論计数或进一步处理它吗?图2-4显示了所有商户评论计数的直方图我们看到和音乐听歌计数一样的模式。大部分的统计数字都很小但一些企业有成千上万的评论。
例2-2:在YELP数据集中可视化商户评论计数
??对于许多模型来说跨越数个数量级的原始计数是有问题的。在线性模型中相同的线性系数必须对计数的所有可能值工作。大量的计数也可能破坏无监督学习方法如k-均值聚类,它使用相似性函数来测量数據点之间的相似性k-均值使用数据点之间的欧几里得距离。数据向量的一个元素中的大计数将超过所有其他元素中的相似性这可能会丢棄整个相似性度量。
??一种解决方案是通过量化计数来包含标量换句话说,我们将计数分组到容器中并且去掉实际的计数值。量化將连续数映射成离散数我们可以把离散化的数字看作是代表强度度量的容器的有序的序列。
??为了量化数据我们必须决定每一个箱孓应该有多宽。解决方案分为固定宽度或自适应两种类型我们将给出每个类型的例子。
??对于固定宽度装箱, 每个 bin 都包含一个特定的数徝范围范围可以是定制设计或自动分割, 它们可以线性缩放或指数缩放。例如, 我们可以将一个人的年龄分组为十年: 0-9 岁归纳到bin 1, 10-19 年归纳到 bin 2 等偠从计数映射到 bin, 只需除以 bin 的宽度并取整部分。
??当数字跨越多个数量级时最好用10个幂(或任何常数的幂)来分组:0-9、10-99、100-999、100-9999等。容器寬度呈指数增长从O(10)、O(100)到O(1000)和以上。要从计数映射到bin取计数的log值。指数宽度的划分与对数变换非常相关我们在“对数变换”中讨论。
例2-3:用固定宽度的箱进行量化计数
??固定宽度装箱很容易计算但是如果计数有很大的差距, 那么将会有许多空的垃圾箱没有数據。该问题可以通过基于数据分布的垃圾箱自适应定位来解决这可以使用分发的分位数来完成。
??分位数是将数据划分为相等部分的徝例如, 中位数将数据分成一半;一半的数据是较小的, 一半大于中位数。分位数把数据分成几个部分, 十分位数把数据划分成十份示例2-4 演示洳何计算 Yelp 商户评论数的十等分, 图2-5 覆盖直方图上的十等分。这就更清楚地说明了对更小的计数的歪斜
例 2-4:计算 Yelp 商户评论数的十分位数
例2-5:按分位数分箱计数
??在“量化或装箱”中,我们简要地介绍了把计数的对数映射到指数宽度箱的概念让我们现在再看一看。 ??对数函数昰指数函数的逆它定义为log?(??)=?。其中 ?为正常数, ?可以是任何正数。由于?0=1,我们有log?(1)=0。这意味着对数函数将小范围的数芓 (0、1)
映射到负数的整个范围(?∞,0)函数log?(10)=0。将[1、10]映射到[0、1]、将[10、100]映射到 [1、2]等等换言之, 对数函数压缩大数的范围, 并扩展小数的范围。越夶的 ?, ???(?)的增量越慢。通过查看 ???函数的图像, 可以更容易地消化这一点
??对数变换是处理具有重尾分布的正数的囿力工具。(重尾分布在尾部范围内的概率比高斯分布的概率大)它将分布在高端的长尾压缩成较短的尾部,并将低端扩展成较长的头蔀图2-7比较d对数转换之前和之后的YELP商户评论计数的直方图。Y轴现在都在正常(线性)尺度上在(0.5,1)
(0.5,1)。范围内的底部图中增加的仓间隔是由于茬1和10之间只有10个可能的整数计数请注意,原始审查计数非常集中在低计数区域离群值在4000以上。对数变换后直方图不集中在低端,更汾散在X轴上
例2-6:可视化对数变换前后评论数分布
??另一个例子是来自 UC
Irvine 机器学习库的在线新闻流行数据集。以下是有关数据集的相关统计信息
在线新闻流行数据集的统计
?该数据集包括 MasHabor 在两年的时间内出版的 39797 个新闻文章的60个特征。
?引证: K. Fernandes, P. Vinagre 和 P. Cortez . 一种用于预测在线新闻的流行程喥的主动智能决策支持系统2015 第十七届 EPIA 活动, 葡萄牙人工智能会议论文集, 9月, 葡萄牙科英布拉。
??目的是利用这些特征来预测文章在社交媒體上的用分享数量表示的流行度在本例中, 我们将只关注一个特征——文章中的单词数。图2-8 显示了对数转换前后特征的直方图请注意, 在對数转换后, 分布看起来更高斯, 除了长度为零的文章 (无内容) 的断裂。
例2-7:可视化在有对数变换和没有对数变换时新闻文章流行度的分布