启动机器学习/深度学习项目的八种方法不错的模型。您需要对数据进行分类或预测结果吗?您在启动机器学习项目时遇到困难吗?有许多技术可以帮助您。在下面讨论的八种方法中,有些会显着加快机器学习过程,而另一些不仅会加快过程,还会帮助您构建更好的模型。并非所有这些方法都适用于给定的项目,但探索性数据分析不容忽视。以下是启动机器学习或深度学习项目的8种方法:1.从探索性数据分析开始,直接进入机器学习训练,无需深入检查数据,就像在体育比赛中热身一样。过程中需要做很多工作。探索性数据分析结合了图形和统计方法。一些更常见的技术包括单个变量的直方图和盒须图、成对变量的散点图以及描述性统计图,例如变量之间的相关性作为成对相关性的热图。探索性数据分析还可以包括降维技术,例如主成分分析(PCA)和非线性降维(NLDR)。对于基于时间的数据,原始变量和统计数据的折线图是随时间绘制的,这可以突出显示季节性和周期性变化以及由风暴和流行病等外部因素引起的异常跳跃。探索性数据分析不仅仅是统计图形。这是一种数据分析的哲学方法,旨在帮助您保持开放的心态,而不是试图将数据强加到模型中。今天,探索性数据分析的许多想法已被纳入数据挖掘。2.构建无监督聚类聚类分析是一个无监督学习问题,需要模型找到相似数据点的聚类。当前使用的几种聚类算法往往具有略有不同的特征。通常,聚类算法会查看数据点的特征向量之间的度量或距离函数,然后将彼此“接近”的度量或距离函数分组。如果类不重叠,聚类算法效果最好。最常见的聚类方法之一是k-means,它试图使用欧几里得距离度量将n个观测值划分为k个簇,目的是最小化每个簇中的方差(平方和)。这是一种矢量量化的方法,对特征学习很有用。Lloyd算法(带质心更新的迭代聚类聚集)是解决此问题最常用的启发式算法,虽然高效,但不能保证全局收敛。为了改进这一点,人们经常使用Forgy方法或随机分区方法生成的随机初始聚类质心多次运行该算法。k-means假设球形簇是可分离的,因此它们的均值向簇中心收敛,并且还假设数据点的顺序无关紧要。聚类的大小应该相似,因此分配到最近的聚类中心是正确的。如果k-means聚类不合适,则考虑使用层次聚类分析、混合模型或DBSCAN。还应考虑其他类型的无监督学习,例如自动编码器和矩量法。3.使用半监督学习标记数据标记数据是机器学习的必要条件。没有标记数据,就无法训练模型来预测目标值。一种简单的方法是手动标记所有数据,但这在经济上不可行。一种成本较低的方法是手动标记一些数据,然后尝试使用一个或多个模型来预测剩余的目标值。这称为半监督学习。使用自训练算法(一种半监督学习),可以接受来自单个模型的任何预测值,概率高于某个阈值,并使用现在更大的训练数据集来构建准确的模型。然后将该模型用于另一轮预测,并迭代直到没有更多的预测。有时自我训练有效,而在其他时候,模型会因错误的预测而受损。如果您构建多个模型并使用它们相互检查,则可以采用更稳健的方法,例如三重训练。另一种选择是将半监督学习与基于不同数据构建的现有模型的迁移学习相结合。您可以自己实施这些方案中的任何一个。或者,您可以将Web服务与经过训练的标记数据结合使用,例如AmazonSageMakerGroundTruth、HiveData、Labelbox、Dataloop和Datasaur。4.添加补充数据集外部性通常可以揭示数据集中的异常,尤其是时间序列数据集。例如,将天气数据添加到自行车租赁数据集可以解释许多偏差,例如大雨期间租赁费率急剧下降。预测零售额提供了其他很好的例子。销售实践、竞争产品、广告变化、经济事件和天气都会影响销售。总结一下,如果数据没有意义,加点场景,也许一切都会变得更清晰。5.尝试使用自动机器学习(AutoML)为您的数据找到最佳模型的唯一方法是训练每一种可能的模型,然后看看哪个模型最好。对于许多类型的数据,尤其是带标签的表格数据,您可以将自动机器学习(AutoML)工具指向一个数据集,稍后再返回它以获得一些很好的答案。有时最好的模型是其他模型的集成,这可能会很昂贵,但是,最好的简单模型通常几乎和集成一样好,而且运行成本要低得多。在幕后,自动化机器学习(AutoML)服务不会盲目地尝试每个合适的模型。例如,一些自动创建标准化和工程化的特征集,估算缺失值,删除相关特征,并为时间序列预测添加滞后列。另一个可选活动是对一些最佳模型执行超参数优化以进一步改进它们。为了在指定时间内获得最佳结果,一些自动化机器学习(AutoML)服务可以快速终止对改进不大的模型的训练,并将更多周期投入到看起来更有希望的模型上。6.通过迁移学习定制训练模型从头开始??训练大型神经网络通常需要大量数据(数百万个训练项目并不少见)、大量时间和计算资源(使用多个服务器GPU可能需要数周时间)。一种强大的捷径称为迁移学习,它通过使用新数据在网络之上训练一些新层,或通过从网络中提取特征并使用这些特征来训练简单的线性分类器来定制训练有素的神经网络。这可以使用AzureCustomVision或CustomLanguageUnderstanding等云计算服务来完成,或者通过利用使用TensorFlow或PyTorch创建的经过训练的神经网络库来完成。而迁移学习或微调通常可以在单个GPU上在几分钟内完成。7.在“模型动物园”中尝试深度学习算法即使您无法使用您喜欢的云计算服务或深度学习框架通过迁移学习轻松创建所需的模型,您仍然可以避免设计和训练深度神经网络模型划伤麻烦。大多数主要框架的原生模型库ModelZoo比其模型API更广泛。甚至有网站为多个框架或任何可以处理特定表示的框架(例如ONNX0)维护ModelZoo。在ModelZoo中,您会发现许多经过充分训练并可以随时使用的模型。但是,一些快照是部分训练快照,其权重用作使用您自己的数据集进行训练的起点。8.优化模型的超参数第一次训练模型通常不会结束这个过程。机器学习模型通常可以通过使用不同的超参数来改进,并且可以通过超参数优化或调整找到最佳模型。这并不是一个真正的开始,但它是从早期不太好的模型过渡到更好的模型的一种方式。超参数是控制学习过程的模型外部参数。模型内部的参数(例如节点权重)是在模型训练期间学习的。超参数优化本质上是为给定模型寻找最佳超参数集的过程。每一步优化都需要重新训练模型并获取损失函数的值。重要的超参数取决于模型和模型中使用的优化器。例如,学习率是神经网络的常用超参数,除非优化器控制不同时间段的学习率。对于径向基核和支持向量机分类器,超参数可以是正则化参数和核函数常量。超参数优化器可以使用多种搜索算法。网格搜索是传统的方法:一方面,网格搜索需要大量训练以覆盖多个超参数的所有组合;另一方面,如果有足够的计算资源可用,所有训练都可以并行进行。随机搜索有时会更有效,而且也很容易并行化。其他替代方案包括贝叶斯优化、梯度下降、进化优化和早停算法。总而言之,可以使用探索性数据分析开始模型构建过程。使用无监督学习来了解有关数据和功能的更多信息。尝试使用自动机器学习(AutoML)来快速测试许多模型。如果你需要一个深度神经网络模型,你需要先尝试迁移学习或ModelZoo,然后再尝试从头开始设计和训练你自己的网络。如果你发现一个你认为好的模型,你可以尝试通过超参数调整来改进它。然后可以在生产中试用该模型并进行监控。而且还没有真正结束。随着时间的推移,数据或概念会因实际事件而发生漂移,需要模型优化和重新训练。人们甚至可能会发现不同类型的模型更适合新数据。原标题:8waystojump-startyourmachinelearning,作者:MartinHeller
