数据科学中的陷阱:变量的数学运算合理吗?

数据科学中有各种各样的模型,有的听起来很简单,比如线性回归;有点呢,听起来就很吓人,比如深度学习。但是不管什么样的模型,从本质上来讲,模型都是对训练数据做数学运算,并以此求得模型参数的估计值。

所以我们需要保证两点:

第一,训练数据能进行数学运算;

第二,对变量所做的数学运算是合理的。

对于第一点,通常只在一些特定的应用场景里才需要比较复杂的处理,比如自然语言处理、图像识别等。

但对于第二点,几乎所有的场景都会遇到。

这里将注重研究第二点“对变量所做的数学运算是合理的”,它表示的内涵是:对于变量,数字的运算有相应的实际意义,包括以下两个方面:

数字的大小关系。

数字的四则运算。

为了更好地讨论问题,将模型的自变量分类。正如前面章节所提到的,在模型里使用的变量可以分为两类:数值型变量和类别型变量。如图1所示。

图1

数值型变量,在学术上也被称为定量变量(quantitative variable),如长度、收入、重量等。它们的数值表示具体的测量或计数。事实上,定量变量按是否连续可进一步细分为连续型变量和离散型变量。在一定区间内可以任意取值的变量叫连续型变量,比如人的身高、体重等;反之则是离散型变量,比如公司员工人数等。对于这类变量,数字间的不等关系是有实际意义的。比如对于收入,在数学上,100小于1000;在实际生活中,100元也小于1000元。数字间的四则运算也同理,这里就不赘述了。当然由于数字的等于关系和四则运算,数值型变量常常隐含着边际效应恒定的假设,正如我们在第5章里讨论的那样。在某些场景下,这个隐含假设与现实不符,直接使用变量会影响模型的效果。

类别型变量,也被称为定性变量(categorical variable)。它并不是表示数量上的变化,而是表示类别。比如性别、省份、学历、产品等级等。这类变量的取值通常是用文字而非数字来表示。比如对于性别这个变量,可能的取值为男、女。因此要将文字变量转换为数字变量,并且保证对于转换之后的变量,数学运算是有意义的,这并不是一件容易的事情。通常针对一个类别型变量,我们会用一个数字去表示其中的一个类别,但这样的转换方法并不能满足要求:

对于有序的类别型变量,比如产品等级,0表示合格、1表示良好、2表示优秀。这种情况下,0小于1的确对应着合格等级次于良好等级,但数字间的四则运算就没有对应意义了。数学上2减1等于1,但对于产品等级,优秀减去良好还等于良好吗?

对于无序的类别型变量,比如对于省份,0表示北京、1表示上海、2表示深圳等。数字间的大小关系和四则运算都是没有实际意义的。

因此,在模型里直接使用类别型变量是没有任何道理的,也会严重影响模型的效果。由此可见,不管是数值型变量还是类别型变量,通常都需要根据问题场景做相应变换后,再放到模型中使用。具体的方法将在后续的文章中详细讨论。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 9,699评论 0 13
  • 晚间我提了一袋垃圾走近垃圾站,放手将垃圾甩出的瞬间,垃圾站里窜出无数异类。许是动静太大,我定眼一看这异类里有像猫一...
    飞云冉冉阅读 4,099评论 2 7
  • 秋冬干燥,喝点糖水,润肺解燥,身体棒棒哒~ 爱自己,更爱家人~ 收集的方子 分享给大家~ ───O(≧∇≦)O──...
    万事随缘杰阅读 3,097评论 0 0
  • 每个人的生命只有一次,请不要随意放纵自己,我们的身体要为我们的放纵买单,而这个价钱,我们付不起的。 1. 刚闻到噩...
    珍珠相思阅读 1,462评论 0 0
  • 参考http://stackoverflow.com/questions/29505622/spannablest...
    小面包屑阅读 5,845评论 0 2