序数属性是什么?有先后顺序但间隔不等的类别
序数属性(Ordinal Attribute),也叫有序属性或顺序属性,是指取值之间存在有意义的先后顺序、但相邻取值之间的差距不一定相等的属性。比如学历可以分为小学、初中、高中、本科、研究生;满意度可以分为非常不满意、不满意、一般、满意、非常满意;衣服的尺码可以分为小号、中号、大号、加大号;疼痛程度可以分为轻度、中度、重度;信用评级可以分为 AAA、AA、A、BBB 等。
序数属性的特点
序数属性介于两类属性之间。与标称属性,也就是无序的类别属性相比,比如颜色、城市,序数属性的取值之间有明确的大小关系:本科高于高中,“满意”比“一般”更好。与数值属性相比,比如身高、收入,序数属性的取值之间的“距离”并不确定,不能进行有意义的加减运算。比如“非常满意”与“满意”之间的差距,不一定等于“满意”与“一般”之间的差距;从高中到本科的差别,也不能简单地等同于从初中到高中的差别。美国心理学家斯坦利·史蒂文斯在 1946 年提出了测量的四种尺度:标称尺度、顺序尺度、区间尺度和比率尺度,序数属性对应的就是顺序尺度。
能对序数属性做什么分析
由于序数属性有顺序,可以对它进行排序,计算中位数、分位数和众数,比如“受访者满意度的中位数是‘满意’”;可以比较两个取值的大小;可以使用基于排序的统计方法,比如斯皮尔曼等级相关系数、曼-惠特尼 U 检验等非参数检验。但严格来说,不宜计算序数属性的平均值和标准差,因为这要求取值之间的间隔相等。不过在实际中,人们常常把问卷中的五级量表,比如用 1 到 5 分表示满意程度,近似地当作数值来计算平均分,这在一定程度上是可以接受的,但需要意识到其中隐含的“等间隔”假设。
在机器学习中如何处理
序号编码:最常用的方法是按照顺序把各个取值依次编码为整数,比如把小号、中号、大号、加大号编码为 1、2、3、4。这样保留了取值之间的顺序信息,对于决策树类的模型非常合适,因为决策树只需要根据大小关系进行划分,而不关心具体的数值间隔。周志华《机器学习》中也指出,对于有序属性,可以通过连续化把它转换为连续值来计算距离,比如把“高、中、低”转换为 1、0.5、0。需要注意的是,对于线性模型等,序号编码隐含地假设了相邻取值之间的间隔是相等的,这可能并不完全符合实际。独热编码:把每个取值单独作为一列,这样不会引入任何关于间隔的假设,但会丢失取值之间的顺序信息。在实际中,可以根据模型的类型和效果来选择编码方式。
预测序数属性:有序回归
当需要预测的目标本身是一个序数属性时,比如预测用户给商品打几星、预测疾病的严重程度、预测客户的信用等级,就形成了一类特殊的问题,叫作有序回归或序数回归。如果把它当作普通的多分类问题,就忽略了类别之间的顺序,把“五星”误判为“四星”和误判为“一星”被看作同样严重的错误,这显然不合理;如果把它当作普通的回归问题,又隐含地假设了各个等级之间的间隔相等。有序回归的方法专门考虑了这一特点,比如统计学中的有序逻辑回归,以及把问题分解为一系列“是否大于某个等级”的二分类问题的方法。在评价时,也常常使用考虑了错误程度的指标,比如平均绝对误差,或者加权的 Kappa 系数。