目标定义
已发表: 2015-08-21机器学习方法可以分为两大类:有监督的和无监督的。 监督学习从一组标记的观察中学习,其中已知观察属于某些类别(用于分类问题)或具有某些值(回归问题)。 无监督学习从未标记的一组观察中学习,除了观察本身之外,没有其他东西是已知的。
对于监督学习方法,我们基本上说“看看这个‘真实’数据,告诉我知道不知道数据的‘真相’”。 对于无监督学习方法,这相当于“看看这些数据,然后告诉我一些我不知道的有趣的事情”。 虽然明确的二分法很有用,但在这篇文章中,我们将讨论有趣的变体,其中定义目标本身可以成为一项非常有趣的任务!
半监督
这是监督数据和非监督数据之间的中间地带,其中“真实”标签仅针对某些观察结果而不是全部存在。 忽略手头的信息对分析模型的质量是不公平的,但是使用这些信息可能会使问题变得异常。 在数据生成很容易(想想互联网)且标签成本高昂的世界中,许多问题都属于半监督领域。
一种方法可能是不包括用于建模的标签信息,而仅用于模型验证和性能比较。 例如,我们可以使用无监督聚类将数据分割成k个聚类,然后通过将预测聚类与实际聚类进行比较来验证我们模型的能力。 这可以帮助我们在多个集群解决方案中做出更好的决定。
另一种方法是使用此信息进行建模。 我们在之前的博客文章中讨论了半监督聚类。
离散与连续
虽然许多情况显然属于分类或回归类别——其中“真实”值是离散类或连续值——但在某些情况下目标转换是有意义的。
将客户级别的收入视为客户人口统计和过去交易行为的函数。 这在零售、银行、保险和电信行业中很常见。 收入,通常是过去N个月的,显然是连续的数字。 你说,一个(也许是线性的)回归可能适合这里! 但是对于分类问题,还有更复杂和复杂的方法,例如神经网络,它可能会做得更好,但不适用于连续目标。 根据业务环境,您可能不需要预测实际收入,但前提是收入将是高、中或低。 如果是这样,您可以查看所有客户的收入分配情况,并定义高、中和中低的界限,瞧! 您已将连续目标问题转换为三类离散分类问题。
如果你的连续目标是一个百分比——比如通过学校考试的学生的比例——并且你想预测新/未见过的学校的百分比,那么除了回归模型之外,你还有另一个选择。 您可以打包数据! Parceling 通过复制观察将连续分数转换为二元类。 对于目标值为 40% 的观察,您将观察复制 100 次,其中 40 次分配 1 类,其余 60 次分配 60 类。给定观察相同且特征集相同,模型将尝试区分 1从 0 得出结论,这种观察有 40% 的可能性为 1,有 60% 的可能性为 0。您可以对所有观察执行相同的操作。 (是的,这会增加训练数据流形的大小。)无论如何,大多数常见的分类模型都会产生 class=1 的概率作为结果,这就是你想要的结果!

是否有将离散类转换为连续值的情况? 大多数情况下没有,但有例子。 当您尝试以年为单位预测某人的年龄时(本质上是 0 到 100(左右)之间的离散整数),您可以将年龄视为连续目标。 同样,如果您有足够细化的收入类别,例如 0-50k、50k-100k、100k-150k 等,那么您可能会受益于将收入视为连续变量而不是解决 20 类问题。
无课案例
所有数据要么被标记,要么不被标记。 当数据被标记(假设,二进制)时,它要么属于一个类,要么属于另一个类。 但实际上,数据可能不属于任何类别。
例如,在一堆保险索赔中,您可能肯定知道某些索赔是欺诈,而其他索赔不是欺诈,但您可能不知道许多从未被调查过的索赔。 考虑在银行申请评分模型中被接受或被拒绝的信用卡申请人。 但是有很多客户根本没有申请,你不知道他们是否会被接受。 通常,我们无法处理没有标签的数据,我们必须将它们排除在我们的开发人群之外。 但是,我们必须记住这是否会导致建模偏差。 在上面的保险示例中,可能一开始就被调查的索赔是可疑的(即使是那些发现不是欺诈的),或者在银行示例中,没有申请的客户没有被完全排除人口统计类别的销售人员招揽。
如果您按照上一节所述进行目标转换,您可以自己创建一个无类数据。 假设您将超过 5000 元/年的收入定义为高点,将低于 5000 元/- 年的收入定义为低点,以将连续目标转换为二元目标。 然而,这将是一个糟糕的设计,因为在 5000 处存在任意截断。收入为 4999/- 的客户与收入为 5001/- 的客户没有太大区别- 但是你把它们分开了。 您的定义将暗示 5001/- 的收入更类似于 10000/- 的收入,而不是 4999/- 的收入。 你看到问题了吗? 从技术上讲,您可以这样做,但生成的模型不会很好和健壮,因为您要求它学习来自类似客户的差异。
通常一个好的做法是包含一个缓冲区/无类区域。 因此,您可以将 6000/- 或更多的收入定义为高,4000/- 或更少的低收入,并忽略收入在 4000/- 和 6000/- 之间的观察。 当您丢失一些数据时,模型会做得更好,因为您定义的不同之处确实不同。
虽然数据准备、特征生成和机器学习方法值得关注,但定义正确的目标也有助于提高整体分析结果的质量。