当前位置: 首页 > 科技观察

机器学习项目没有足够的数据?这里有5个很棒的解决方案

时间:2023-03-18 12:35:19 科技观察

许多启动AI项目的公司都有很好的商业想法,但是当企业AI团队发现自己没有足够的数据时,他们慢慢变得非常沮丧......但是,有一个解决这个问题的方法。本文将简要介绍一些被作者证明行之有效的方法。数据稀缺的问题非常重要,因为数据是任何AI项目的核心,而数据集的大小往往是影响项目性能的重要因素。在大多数情况下,数据相关的问题往往是无法做出好的人工智能项目的主要原因。监督机器学习模型被广泛用于应对各种业务挑战。但这些模型需要大量数据,其性能很大程度上取决于训练数据量。但在许多情况下,AI团队很难创建足够大的训练数据集。同时,还有一个问题,那就是项目分析师可能低估了解决常见业务问题所需的数据量。在大公司工作时,收集数据可能会更加复杂。我需要多少数据?在许多情况下,您需要大约10倍的数据,因为模型中存在自由度。模型越复杂,越容易过拟合,但这可以通过模型检查来避免。但是,根据用例的实际情况,可以适当减少所需的数据。还有必要讨论一下如何处理缺失值的问题。特别是如果数据中缺失值的数量足够大(超过5%)。值得一提的是,处理缺失值依赖于一些既定的“成功”标准。此外,这些标准对于不同的数据集甚至不同的应用程序都是不同的,例如识别、分割、预测和分类(给定相同的数据集)。选择哪种解决方案取决于问题的类型——例如时间序列分析、ML、回归等。当涉及到预测技术时,只有当它们不是完全随机观察时才应该使用缺失值,并且变量需要被选中来插补这些缺失值与其有某种关系,否则可能会导致估计不精确。通常,可以使用不同的机器学习算法来识别缺失值。可以将缺失的特征转化为标签本身,然后用没有缺失值的列来预测有缺失值的列。从作者的经验来看,如果你决定构建一个基于AI的解决方案,在某些时候你会面临数据不足或数据不足的问题,但幸运的是,有很多方法可以将这种“消极”变成“积极”“”。缺乏数据?正如上文所述,无法准确估计一个AI项目所需的最少数据量,而项目本身会显着影响你需要多少数据。例如,文本、图像和视频一般需要更多的数据。但是,为了做出准确的估计,还应考虑许多其他因素。要预测的类数模型的预期输出是什么?基本上,数量或类别越少越好。模型性能如果您计划将项目投入生产,您将需要更多。一个小数据集可能足以证明概念,但在生产中,您需要更多数据。通常,小型数据集需要低复杂度(或高偏差)模型,以避免模型过度拟合数据。非技术解决方案在探索技术解决方案之前,让我们分析一下增强数据集的方式。这可能是废话,但在开始AI项目之前,通过开发外部和内部工具收集尽可能多的数据。如果您知道机器学习算法的预期功能,您可以提前创建数据收集机制。您还可以在启动ML项目时利用开源数据。网络上有大量可用于ML的数据,拥有这些数据的公司已准备好淘汰它。如果您的项目需要外部数据,与其他组织建立合作伙伴关系以获得相关数据可能会有用。建立合作伙伴关系显然会花费您的时间,但访问专有数据会给您带来天然的优势。构建一个有用的应用程序,让应用程序单独使用,只使用数据我在以前的项目中使用的另一种方法是为客户提供对云应用程序的访问,其中进入应用程序的数据可用于构建机器学习模型。作者以前的一个客户为医院构建了一个应用程序并免费提供。我们收集了大量数据,并设法为我们的ML解决方案创建了一个独特的数据集。小数据集根据笔者的经验,使用小数据集构建预测模型的一些常用方法有:通常,机器学习算法越简单,越能从小数据集中学习。从ML的角度来看,小数据需要具有低复杂性(或高偏差)的模型,以避免模型过度拟合数据。朴素贝叶斯算法是最简单的分类器之一,因此可以从相对较小的数据集中很好地学习。您还可以依赖其他线性模型和决策树。事实上,它们在小型数据集上的表现也相对较好。基本上,简单模型能够比更复杂的模型(神经网络)更好地从小数据集中学习,因为它们本质上试图实现更少的学习。对于非常小的数据集,贝叶斯方法通常是同类最佳的,尽管结果可能对您选择的先验敏感。作者认为朴素贝叶斯分类器和岭回归是最好的预测模型。对于小型数据集,您需要参数少(复杂度低)和/或先验强的模型。您还可以将“先验”解释为您可以对数据的行为方式做出的假设。确实存在许多其他解决方案,具体取决于业务问题的确切性质和数据集的大小。迁移学习定义:在构建机器学习模型时利用现有相关数据或模型的框架。迁移学习使用从学习任务中获得的知识来提高相关任务的性能,通常会减少所需的训练数据量。迁移学习技术非常有用,因为它们允许模型使用从另一个数据集或现有机器学习模型(称为源域)获得的知识对新域或任务(目标域)进行预测。当你没有足够的目标训练数据时,应该考虑迁移学习技术,其中源域和目标域有一些相似之处,但不相同。简单地聚合模型或不同的数据集并不总是有效的,如果现有数据集与目标数据非常不同,新学习的模型可能会受到现有数据或模型的负面影响。当您有其他可用于推断知识的数据集时,迁移学习效果很好,但如果您根本没有数据怎么办?这是数据生成可以提供很大帮助的地方。当没有数据可用时,或者当您需要创建的数据多于您可以通过聚合收集的数据时,请使用此方法。简而言之,该方法需要修改少量现有数据以创建该数据的变体来训练模型。例如,可以裁剪和缩小一张汽车图像以生成更多汽车图像。缺乏高质量的标记数据也是数据科学团队面临的最大挑战之一。通过使用迁移学习和数据生成等技术,可以在一定程度上克服数据稀缺性。迁移学习的另一个常见应用是在跨客户数据集上训练模型以克服冷启动问题。笔者注意到,很多SaaS公司在为自己的ML产品添加新客户时,往往需要处理这个问题。在实践中,很难提供有效的价值,直到新客户收集到足够的数据以实现良好的模型性能(这可能需要几个月的时间)。数据扩充数据扩充意味着增加数据点的数量。在作者的最新项目中,我们使用数据增强技术来增加数据集中的图像数量。对于传统行/列格式的数据,这意味着增加行数或对象数。我们别无选择,只能依靠数据增强,原因有两个:时间和准确性。每个数据收集过程都有与之相关的成本,可以是美元、人力、计算资源,当然还有过程中消耗的时间。因此,我们必须扩充现有数据以增加我们提供给ML分类器的数据大小,并补偿进一步收集数据所产生的成本。有许多方法可以扩充数据。仍然以汽车图像为例,您可以旋转原始图像,改变光照条件,进行不同的裁剪。所以对于一张图片,你可以生成不同的子样本。这样,您就可以减少分类器的过度拟合。但是,如果您使用SMOTE等过采样方法生成人工数据,则很可能会出现过拟合。在开发AI解决方案时,您必须考虑到这一点。合成数据合成数据是假数据,包含与其“真实”对应物相同的模式和统计属性。基本上,数据看起来如此真实,几乎不可能分辨出它是假的。那么合成数据有什么意义呢?如果我们已经有了真实数据,为什么还要这样做?在某些情况下,尤其是当我们处理私有数据(银行、医疗保健等)时,使用合成数据实际上是一种更安全的开发方式。合成数据主要在没有足够的真实数据,或者没有足够的真实数据用于特定模式时使用。对于训练和测试数据集,它的用法基本相同。SyntheticMinorityOversamplingTechnique(SMOTE)和Modified-SMOTE是两种生成合成数据的技术。简而言之,SMOTE采用少数类数据点并创建一个新数据点,该数据点位于由直线连接的任何两个最近数据点之间。该算法计算特征空间中两个数据点之间的距离,将距离乘以0到1之间的随机数,并将新数据点放置在与用于距离计算的数据点之一的新距离处。为了生成合成数据,您必须使用需要验证的训练集定义模型,然后通过更改感兴趣的参数,您可以通过仿真生成合成数据。域/数据的类型非常重要,因为它会影响整个过程的复杂性。在我看来,在开始一个人工智能项目时,问问自己是否有足够的数据可能会揭示你以前可能没有意识到的问题,这有助于发现你认为最好的业务流程中的缺陷。问题并让您了解为什么这个问题是在您的企业中创建成功的数据策略的关键。