如何动态区分类别数据和数字数据?


12

我知道有人正在从事一个项目,该项目涉及摄取数据文件而与列或数据类型无关。任务是获取具有任意数量的列和各种数据类型的文件,并输出有关数字数据的摘要统计信息。

但是,他不确定如何为某些基于数字的数据动态分配数据类型。例如:

    CITY
    Albuquerque
    Boston
    Chicago

这显然不是数字数据,将存储为文本。然而,

    ZIP
    80221
    60653
    25525

没有明确标记为分类。他的软件会将邮政编码分配为数字,并为其输出摘要统计信息,这对于此类数据没有意义。


我们有几个想法是:

  1. 如果一列都是整数,则将其标记为分类。这显然行不通,但这是一个主意。
  2. 如果一列的唯一值少于n个且为数字,则将其分类。这可能更接近,但是仍然可能存在数值数据丢失的问题。
  3. 维护一个实际上应该是分类的公用数字数据列表,并将列标题与此列表进行比较以进行匹配。例如,任何带有“ ZIP”的内容都是分类的。

我的直觉告诉我,无法准确地将数字数据分配为分类数据或数字数据,但我希望提出建议。非常感谢您提供的任何见解。


没有完全证明,但是如果它以0开头,通常就不是数字
狗仔队

您可能还应该问自己,弄错了会有什么后果?那应该确定您需要在该过程中付出多少努力。您想要90%的准确度,还是99%的准确度,还是99.9999%的准确度?
Spacedman '16

我将答案中建议的所有启发式方法作为特征并训练二进制分类器。
Emre

参见stats.stackexchange.com/a/106400/17230。这里真的没有地面真理。
Scortchi-恢复莫妮卡

Answers:


8

我不知道这样做的万无一失。这是我脑海中浮现的一个想法:

  1. 默认情况下,将值视为分类。
  2. 检查数据的各种属性,这暗示它实际上是连续的。根据这些属性与连续数据相关的可能性对这些属性进行加权。以下是一些可能的示例:
    • 值是整数:+.7
    • 值是浮点数:+。8
    • 值正态分布:+.3
    • 值包含相对较少的唯一值:+。3
    • 值的字符数不完全相同:+。1
    • 值不包含前导零:+。1
  3. 将总和大于1的任何列视为数字。根据对不同数据集的测试来调整因子和权重,以满足您的需求。为此,您甚至可以构建和训练单独的机器学习算法。

这个答案很有趣。我不想提出其他答案,而是建议对此做出修改。将此问题作为常规分类问题怎么办?您可以根据此答案中的属性(整数,浮点数,正态分布,唯一值的相对数量等)为每列定义一组功能。此后,只需使用分类算法即可。
巴勃罗·苏

@PabloSuau,我喜欢这个主意。分类算法可能是一个很好的方法。感谢jncraton提供了一些特性。
Poisson Fish

4

例如,如果您有一个家庭的子代数(范围可能在0到5之间),它是类别变量还是数字变量?实际上,这取决于您的问题以及您打算如何解决。从这个意义上讲,您可以执行以下操作:

  • 计算该列的唯一值的数量
  • 将该数字除以总行数
  • 如果该比率低于某个阈值(例如20%),则认为它是绝对的。

如果是离散值,则可以进行以下附加测试:使用回归模型来估计一些参数,并检查估计值是否包含在原始值集中。如果不是这样,则可能是在处理分类数据(例如ZIP)。

过去,它对我来说效果比较好...


2

由于此问题已被交叉发布,@ nickcox在“交叉验证”上的最初评论是高度相关和真实的。我的看法略有不同。例如,我将问题改写为两个部分:首先,存在一个问题,即如何根据数据类型对未知信息流进行分类;其次,可以预期哪种错误分类率。如果有人想花时间去做,这两个问题都可以立即回答。

第一个问题就是根据现成的示例数据,根据对这些线程的注释和答案中已初步提出的建议,开发基于规则的专家系统。

其次,假设此实际数据包含已知的数据类型,则对分类错误进行基准测试。

第三步将涉及迭代更新规则,以尽可能准确地反映正在传递的信息。

在我看来,尽管很乏味,但这样的项目不会涉及大量的工作。

----补充说明----

关于特征提取的很好讨论,因为它与CV上弹出的数据生成过程有关:

/stats/191935/what-does-the-process-that-generates-the-data-mean-and-how-does-feature-selec

特征提取,选择和DGP是开发专家系统的绝佳出发点。


我删除了关于交叉验证的问题。作为参考,@ NickCox表示:“即使您认为比想象的还要糟糕,它也比您想象的要糟糕。小数点可能会在分类变量中潜伏,作为编码分类(例如行业或疾病)的一部分。小整数可能意味着计数比类别:3,表示3辆汽车或猫,与3,表示“人拥有汽车”或“人归猫所拥有”不同。按照惯例,测量值只能是整数,例如,人的身高可能只是报告为整数厘米或英寸,血压为整数毫米汞柱。”
Poisson Fish

@NickCox第二条评论:“不重复(比“唯一”更好的术语,它仍然具有只发生一次的主要含义)的数量也不是一个好的指导。在中等样本中可能出现的不同身高的人数是可能比不同宗教信仰或民族血统的数量少得多。”
Poisson Fish
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.