用于数据不良设置的低规模 ML/统计技术

数据挖掘 机器学习 分类 时间序列 数据挖掘 逻辑回归
2022-02-19 09:52:25

我有两个不同的问题。一种是逻辑回归,另一种是时间序列预测。但两者都存在数据不足的问题

a) 对于逻辑回归,我有一个包含 10 个观察值的小数据集,其中包含年龄、Marital_Status、收入、性别和 car_purchase_status 等变量(带有是/否值的结果标志)。现在我有一个新的第 11 位客户,其中包含年龄、性别、Marital_Status 和收入等变量。现在我想知道这第 11 位顾客是否会买车。我应该花费资源来影响他买车吗?我是否将资源用于正确的客户?例如:无论如何我可以发现第 11 位客户有 70% 或 80% 的机会购买汽车。所以花一些营销力度比如打电话可以帮助我们说服他买车(100%)。所以,我怎样才能做到这一点?请问有什么建议吗?我应该直接放弃这个问题无法用如此低的数据解决,还是有任何简单的统计技术可以帮助我获得关于第 11 位客户的一些见解?

b)对于时间序列,我只有 10 个观察值,每个观察值间隔 20 天。例如:我有他们在第 1 天、第 21 天、第 41 天、第 61 天、第 81 天......第 201 天产生的收入。现在有了给定的 10 个观察值,我想预测第 500 天、第 321 天、第 621 天等产生的收入。那么,是否可以用这么短的序列运行时间序列预测?你们能指导我吗?在这里,我也应该因为数据点少而放弃,还是有什么方法可以用来根据短输入时间序列预测未来的时间戳点?

你们能帮我列出可以帮助我做到这一点的步骤/主题吗?

2个回答

一般来说,我会选择一个非常简单、透明/可解释的模型,并以半自动化的方式使用结果。也就是说,不仅要得出预测,还要得出见解。例如,您可以使用预先或后修剪的(或多个)决策树。结果可能是一棵树,比方说,只有 1-3 个特征可以找到简单的规则,例如“如果客户已婚且至少 X 岁,他们很有可能进行购买”。使用逻辑回归,您可以使用系数来识别对因变量影响最大的特征。这些(定性或半定量)规则应由领域专家进行验证。

此外,您需要对估算的准确性和精确度保持透明。在上面的例子中,离开纯度会提供一些直觉。如果您报告任何定量测量(我会小心),您可能需要考虑置信区间(例如,请参见此处或 Tom Mitchell 的“机器学习”中的第 5 章)。(尽管只有 10 个样本,关于正态分布的典型假设在这里不成立)

关于时间序列,我会开始更简单。根据客户的数量,我会首先在折线图中可视化部分或全部历史数据(随着时间的推移,每位客户的销售额),然后检查每位客户的最小值、最大值和平均值。这给出了一些关于潜在趋势的直觉。例如,对于给定的客户,如果所有观察结果随着时间的推移保持不变,是否存在上升/下降趋势,或者数据是否具有高方差而没有明显趋势。此外,可能存在显示相似模式的客户群。显然,这既不是机器学习,也不是严格的统计分析,而是一些基本数据分析支持的务实方法。

您需要非常小心的是任何定量预测的时间范围:基于的 10 次观察,您可能会得出一些结论,比如(从蓝色的球场数字中补出总数)但t{1,21,...,201}t<=301t=621 未来很遥远。此外,您需要牢记季节性。例如:如果您的观察都是从给定年份的 10 月到 4 月,并假设您有一个冬季/夏季的季节性模式。那么你就无法推断出 5 月到 9 月的很多情况。为了更好地了解您的时间序列的局限性和预测潜力,我会与主题专家交谈,例如销售和营销方面的专家。了解他们的预测方法并交叉检查您从他们的预测中获得的任何见解也可能会有所帮助。

但是,正如 Erwan 所指出的,要非常小心地得出结论。如果没有足够的数据来找到任何信号,应用一些“ML 魔法”将不会找到有用的模式。当然,如果可以选择,额外的数据收集也是合理的。

数据很少的主要问题是几乎不可能知道样本的代表性。有些人甚至会说,少于 20-30 个数据点不能代表任何东西。每个数据点都可能对任何模型产生巨大影响,因此任何预测都有很大的误差范围。

如果要从很小的样本中训练模型,他们应该尽一切可能避免过度拟合:使用很少的特征,使用参数尽可能少的非常简单的模型。其他任何东西都保证过拟合。

在您的示例中,客户的行为实际上可能非常复杂,因此依赖如此小的样本特别具有挑战性(并且可能存在风险)。恕我直言,第一个任务是临界的,但可以尝试,但我不认为第二个是现实的:收入并不总是规律的,长期的预测只会比随机的好。