跳到主要内容 跳到补充内容

准备好数据集进行训练

您训练数据集来回答机器学习问题。训练数据集包括每个特征的列以及包含目标的列。机器学习算法从这些数据行中学习一般模式,以生成可以预测目标的模型。

为了准备好数据集机器学习,您需要了解数据并收集必要的数据点。您可能还需要转换一些数据并删除与您的用例无关的数据。

您应该收集哪些数据?

准确定义机器学习问题,并准确决定需要汇总哪些内容来解决该问题:

  • 如果要预测哪些客户将流失,需要聚合一个数据集,其中每一行代表一个客户,每一个特征列代表一个描述该客户的特征,目标列是该客户是否在某个时间段内流失。

  • 如果要预测给定月份和地区的销售额,则需要聚合一个数据集,其中每一行表示给定地区的给定月份,每个特征列表示描述该地区当月业务的特征,目标列是该地区当月的销售收入。

试着找出哪些事情会影响目标,看看是否可以收集这些数据。记住,预测算法只能识别要找到的模式。也许您需要收集或创建其他功能来提取其他信息?

您还必须确定需要积累多少数据才能准确预测。该活动需要多长时间才能具有代表性?考虑以下示例:

  • 客户需要成为会员 60 天,才能预测他们是否会在第 90 天离开。

  • 保险索赔的费用在几个月内都不会知道,因此您可以排除六个月以内的索赔。

区分时变数据和非时变数据。对于时变数据,数据的时间戳是否可以适当地聚合?

预测时数据是否可用?

确保训练数据集中包含的所有功能也可用于未来预测。根据可用于历史数据的特征训练模型是一个常见的错误,但在将来进行预测时,这些特征将不可用。当对新数据进行预测时,机器学习算法必须具有训练数据集中所有可用特征的值。

数据越多越好吗?

样本大小

数据量越大,模型越可靠。任何额外的相关数据点都会有所帮助,无论是新的还是历史观察。

特征的数量

无论与目标结果的相关性如何,都可以将所有可能的变量纳入模型。越简单通常越好。通常,在模型中使用较少数量的特征会更好。

当有更多的特征时,可能会有更多的风险来掩盖你想要揭示的真正的潜在关系。预测模型可以使用所有特征来提出一系列复杂的规则,这些规则与用于训练模型的数据相比表现良好。但预测的目标实际上可能只受一个或两个特征的影响。该模型可能不善于概括训练中使用的数据之外的数据,这将导致在应用于新数据时预测性能较差。

过度拟合

过度拟合意味着模型过于复杂,因此对于预测新数据来说是不可靠的。当相对于可用数据点的数量有太多特征时,往往会发生过度拟合。例如,数据集中可能只有 50 行数据和 100 个要素列。

您的训练数据是否相关?

机器学习算法在你输入的数据中找到模式,并使用这些模式对未来的数据进行预测。当您对新数据进行预测时,您假设它与训练数据相似。因此,重要的是训练数据集在统计上与您要进行预测的数据相似。

如果市场或业务与您的训练数据集描述的情况发生了重大变化,那么您可能使用的是过时的数据集,这将导致预测不准确。您可能需要创建一个新的训练数据集,并且只使用更改发生后收集的数据。

考虑 理解机器学习 中关于销售预测的示例。假设我们将数据输入到我们的算法中,表示电视、广播和报纸上的广告支出,以及历史业务季度的销售收入。然而,这些数据是在 20 世纪 80 年代收集的。现在,我们不再在电台上宣传该产品,我们几乎只在网上宣传该产品。我们经过训练的算法在预测当前业务季度的销售额时表现不佳,因为训练数据不能代表当前业务。

探索数据

用您的业务知识来理解和验证数据。如果数据与您的假设不一致,这是否意味着数据问题,或者这是否意味着您的假设不正确?

删除不可靠的特征

考虑从数据集中排除以下列:

  • 存在一个值的高浓度(低基数)。例如,值为“红”、“绿”、“蓝”的列,其中 90% 的值为“红色”。

  • 这些值是高度唯一的(高基数)。

  • 大多数值为空。

地址相关特征

删除冗余特征,例如提供相同或非常相似信息的高度相关特征。考虑从似乎捕获数据中相同行为的组中选择一个特征。尝试确定是否有一个特征正在驱动另一个特征。

替换空值

探索数据,找出关键数据点(如目标或关键功能)中是否缺少值。要使用稀疏列中的值,可以将空值替换为“其他”或“未知”。或者你需要重新评估数据收集。

目标范围

查看数据的分布。如果目标数据的分布相对于样本大小过于分散,那么可能很难在数据中找到任何模式。

数据值的范围是什么?预测超出范围的数据值存在一些挑战。阅读 外插及内插 中更多内容。

分布是否异常?数据中的倾斜、尾部和多模态形状可能需要额外的数据转换或进一步的特征工程。尝试将低音量类别分组,并在数字特征中舍入或删除尾部。

消除异常值

考虑删除特征列中具有异常值的观测值。异常值会阻碍算法识别数据中的一般模式。最好查看目标列中分布更紧密的较小数据子集。

数据分组

您可以通过将数据分割成不同的数据集并使用它们来训练不同的模型来改进结果。基于一个或多个特征进行数据分组。

数据泄露

数据泄漏意味着用于训练机器学习算法的数据包括您试图预测的信息。

了解详情

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们如何改进!