【问题标题】:What is a difference between the encoding nominal variable and ordering variable?编码标称变量和排序变量有什么区别?
【发布时间】:2019-12-19 09:57:09
【问题描述】:

我不应该以不同的方式处理名义分类变量和序数变量吗?在我看来,从文本值到数字的简单更改可能会暗示名义变量之间存在某种关系。

在 R 中进行数据预处理时,您是如何做到的?

【问题讨论】:

  • 我不太明白你的问题是什么。是的,(当然)有区别,应该区别对待。但你似乎知道这一点。然后呢?
  • 对于这两类变量,你推荐了哪些具体的方法?

标签: r variables machine-learning encoding


【解决方案1】:

R 对于分类(名义)变量和有序变量的数据类型略有不同。

具体来说,分类数据通常编码为factors。序数变量是分类变量的一种特殊情况,因此是也是因子——但有序因子。

就 R 代码而言,区别只是在 factor 函数调用中设置一个参数:

paygrades = c('intern', 'junior', 'senior', 'manager')

employees = data.frame(
    Name = c('Alice', 'Bob', 'Cecil', 'Dan', 'Emily', 'Felix'),
    Role = factor(c('engineer', 'accounting', 'marketing', 'CEO', 'testing', 'engineer')),
    Paygrade = factor(c('senior', 'junior', 'intern', 'manager', 'senior', 'junior'), levels = paygrades, ordered = TRUE),
    stringsAsFactors = FALSE
)

如果我们现在检查数据,我们会发现:

employees$Role
# [1] engineer   accounting marketing  CEO        testing    engineer
# Levels: accounting CEO engineer marketing testing
employees$Paygrade
# [1] senior  junior  intern  manager senior  junior
# Levels: intern < junior < senior < manager

【讨论】:

    猜你喜欢
    • 2015-05-19
    • 1970-01-01
    • 2011-01-14
    • 2018-04-23
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    • 2011-05-27
    相关资源
    最近更新 更多