大数据

大数据机器学习

在大数据时代,数据量已经远远超出单台计算机内存所能容纳的容量,目前主流的分析方式就是在多台机器上分布式并行分析,但对于用户大量数据但又没有分布式集群的小微企业或者个人来说,除去租用费用高昂的服务器之外就没有其他办法了吗?外部存储学习和抽样是两种常用的方法:

机器学习培训之抽样

抽样是机器学习常用的技术与技巧,也是培训的重点之一。

外部存储学习是指面临如下问题时所适用的一系列算法:数据无法加载入单台计算机内存,不过这些数据可以保存在其他存储设备如本地硬盘或者网盘中。你计算机中的主存,也就是RAM,从个人计算机中的几个GB(有时是2GB,现在更多的是4GB,我们假设你至多有2GB)到大型服务器的256GB不等。这里的大型服务器是指诸如亚马逊弹性计算云(EC2)等大家可以轻易获得的云计算服务,对于外部存储来说我们可以通过增加硬盘来轻松的超过TB级的容量(一般是1TB,不过可以增加到4TB)。

由于机器学习的训练目标是在整个训练数据集上使得损失函数的值最小,许多算法倾向于在优化过程的每次迭代中,都使用所有可用的数据进行训练。在两种情况下这种方法是适用的,一种是基于矩阵演算的统计学习算法,比如求解逆矩阵等;另一种是基于贪心搜索的算法,需要对尽可能多的数据进行评估,然后再决定如何进行下一步。因此,对于最常见的回归类(特征值加权线性组合)来说,通常是以在整个数据集上误差最小为原则来对其系数进行调整。与之类似,由于对数据集中的噪声数据较为敏感,决策树算法也只能基于所有可用数据来找到最佳划分点,以得到最优的结果。

对于这种情况,如果无法将数据一次性全部加载到内存中,可能没有太多其他的选择,你可以增加额外的内存(但这受限于主板的设计;此外,也可以使用分布式系统如Hadoop或者Spark之类的)或者将数据集缩减到能存可以加载到容量。

如果数据是稀疏的,也就是说,你的数据集中包含非常多值为零的数据,那么可以将其转换为稀疏矩阵。这文本处理领域常用的方式:文章的每一列对应一个单词,但是一篇文章中出现单词的个数只是所有词汇总数的一个很小的子集。有时,使用稀疏矩阵使得我们可以加载并处理相当大的数据集,但这不是万能的(对不起,世上没有免费的午餐,也就是说,没有哪种方案可以解决所有问题),因为对于有些数据来说,即使是稀疏的,它的容量也大的惊人。

当数据容量过大时,您可以尝试通过削减样本数量或者限制特征个数来缩减数据集,从而降低数据集及其所需内存容量。从原数据集中抽取部分样本来降低数据集容量的方法称为子集抽样(简称抽样)。在规划数据分析过程之前请一定牢记,抽样本身没有什么问题,但是这可能会带来一些严重的问题。

进行抽样时,相当于忽略了部分信息丰富的内容,你无法确定忽略掉的是否只是那些冗余的、不那么重要的样本。事实上,有时只有通过分析所有的数据才能发现其中隐含的模式。抽样通常通过计算来实现——只需一个随机生成器来判定是否选取摸个样本,但与使用所有数据相比,这样就暗含限制你的算法在进行规则学习和关联分析时性能的风险。在偏差反差权衡中,由于对数据中包含随机噪声或者奇异点的判别更加不确定,抽样往往会导致预测结果的方差膨胀。

在大数据分析中,往往是使用了更多数据的算法效果更好,与其他使用更小容量(或者更多噪声)数据的模型相比,它可以有更多的途径来对预测分析进行关联。因此,虽然抽样是一个可以接受的方案,但是这可能会限制机器学习的分析过程,毕竟这样会降低预测的精度从而使得预测结果的偏差更大。

可以通过在多个抽样子集上训练多个模型来降低抽样带来的副作用:汇集多个解决方案或者将所有模型的结果集成在一起,这样来为进一步的训练构造所需的数据子集矩阵。这就是所谓的Bagging过程(这种方法实际上是缩减了特征的数量,从而降低了需要加载到内存中数据的容量)。

除了缩减样本的数量之外,我们也可以通过减少样本的数量来降低数据集的容量,不过我们面临同样的问题:我们需要构建模型来测试应保留哪些特征,这样我们仍旧需要在无法将所有数据加载到内存的情况下来创建一个模型。

机器学习、大数据培训找格物课堂

大数据、机器学习、人工智能培训

脱产、周末、就业、业余班并行

识别二维码,获取最新培训信息

2022-2023 Copyright © 深圳市意行科技开发有限公司 - All Rights Reserved.
深圳市南山区学苑大道1227号 
粤ICP备17013574号