京公网安备 11010802034615号
经营许可证编号:京B2-20210330
在逻辑回归中,分类变量是常见的特征。分类变量指的是只能取有限数量的离散值的变量,比如性别、国家等。在R语言中,处理分类变量有多种方法,下面将介绍其中几种常见的方法。
一、虚拟变量(dummy variable)
虚拟变量是将一个分类变量转换为多个二元变量的方法。对于一个具有m个不同取值的分类变量,可以创建m-1个虚拟变量。例如,对于一个二元分类变量“性别”,我们可以使用一个虚拟变量来表示它:当性别为男性时,虚拟变量为1,否则为0。如果我们采用两个虚拟变量,则一个表示男性,另一个表示女性。这里选用哪一个虚拟变量作为基准水平下的参考,我们可以根据需求自行设置。
在R中,我们可以使用“factor”函数将分类变量转换为因子(factors),然后利用“model.matrix”函数创建虚拟变量。以下是一个例子:
# 创建一个包含三个不同取值("A"、"B"和"C")的分类变量 x <- factor(c("A", "B", "C", "A", "B", "C")) # 创建虚拟变量 model.matrix(~ x)
运行结果如下:
(Intercept) xB xC
1 1 0 0
2 1 1 0
3 1 0 1
4 1 0 0
5 1 1 0
6 1 0 1
attr(,"assign")
[1] 0 1 2
attr(,"contrasts")
attr(,"contrasts")$x [1] "contr.treatment"
这里,“contr.treatment”表示使用第一个水平作为基准水平。因此,我们可以看出第一个观测值属于"A"类别,对应的虚拟变量为(1, 0, 0)。
二、特征缩放(feature scaling)
另一种处理分类变量的方法是特征缩放。特征缩放指的是将数据重新缩放到相同的尺度上,以便更好地比较和分析。在逻辑回归中,一种常见的特征缩放方法是最大-最小规范化,也称为离差标准化。
最大-最小规范化方法是将数值缩放到[0,1]区间内,具体步骤如下:
对每个特征,找到最小值(min)和最大值(max)。
对每个观测值,用以下公式计算缩放后的值:
$$ x_{scaled} = frac{x - x_{min}}{x_{max} - x_{min}} $$
在R中,可以使用以下代码对数据进行最大-最小规范化:
# 创建一个包含三个不同取值("A"、"B"和"C")的分类变量 x <- factor(c("A", "B", "C", "A", "B", "C")) # 将分类变量转换为数值变量并进行缩放 x_scaled <- (as.numeric(x) - min(as.numeric(x))) / (max(as.numeric(x)) - min(as.numeric(x)))
运行结果如下:
[1] 0.0 0.5 1.0 0.0 0.5 1.0
这里得到了一组缩放后的数值,它们都在[0,1]区间内。
三、哑变量编码(one-hot encoding)
哑变量编码是一种将分类变量转换为
数字变量的方法。与虚拟变量不同,哑变量编码会为每个分类变量取值分配一个唯一的整数编码,并将其转换为二进制数。每个编码都将对应一个新的变量。
例如,对于一个大小为3的分类变量"颜色"(红色、蓝色和绿色),我们可以使用哑变量编码来表示它:
| 颜色 | 编码 |
|---|---|
| 红色 | 001 |
| 蓝色 | 010 |
| 绿色 | 100 |
这里,每个编码都是三位数字,其中每个数字都是0或1,表示不同的颜色。在逻辑回归中,我们可以使用哑变量编码来处理分类变量。
在R中,可以使用以下代码进行哑变量编码:
# 创建一个包含三个不同取值("A"、"B"和"C")的分类变量 x <- factor(c("A", "B", "C", "A", "B", "C")) # 进行哑变量编码 model.matrix(~ x + 0)
这里,“+ 0”表示不包括截距项。运行结果如下:
xA xB xC
1 1 0 0
2 0 1 0
3 0 0 1
4 1 0 0
5 0 1 0
6 0 0 1
attr(,"assign")
[1] 1 2 3
attr(,"contrasts")
attr(,"contrasts")$x [1] "contr.treatment"
这里,每个编码都对应一个新的变量,并且没有截距项。第一个观测值属于"A"类别,并且对应的编码为(1, 0, 0)。
总结
在逻辑回归中,处理分类变量有多种方法。其中,虚拟变量是最常见的方法之一,它将分类变量转换为多个二元变量。特征缩放和哑变量编码也是处理分类变量的常见方法。选择哪种方法取决于数据的特点和分析的需求。在R语言中,我们可以使用“model.matrix”函数来进行虚拟变量和哑变量编码,也可以手动实现这些方法。
推荐学习书籍
《CDA一级教材》适合CDA一级考生备考,也适合业务及数据分析岗位的从业者提升自我。完整电子版已上线CDA网校,累计已有10万+在读~

免费加入阅读:https://edu.cda.cn/goods/show/3151?targetId=5147&preview=0
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
一、业务背景 在后台列表、管理系统、报表页面的分页需求里,前端通常需要两份数据:当前页的分页记录、符合筛选条件的数据总条 ...
2026-11-09一、需求看起来简单,实际坑不少 "把文本里所有中括号 [] 中间的内容提取出来"——这是文本清洗里最常见的需求之一。日志里的 [I ...
2026-11-09大数据分析师证书考什么 考试范围 PART 1 大数据基础理论 占比(8% ) a. 大数据分析基础(1%) b. Python 基础(5%) c. Li ...
2026-11-09CDA数据分析师 出品 作者:李诗怡 一、数据处理概述 定义: 在正式开展数据分析之前,对原始采集的数据进行整理、修正、加工和精 ...
2026-11-06一、为什么数据要先标准化 拿到一份数据,各列的量纲往往完全不同:年龄单位是"岁"(约 20~60),收入单位是"元"(几千到几万) ...
2026-11-06一、为什么 Python 成了统计分析的主流工具 十年前做统计分析,主流选择是 SPSS、SAS、Stata。现在越来越多的研究者、分析师转向 ...
2026-11-06核心资源推荐 CDA教材(2025):https://edu.cda.cn/goods/show/3151CDA模拟题(2025):https://edu.cda.cn/goods/show/2845CD ...
2026-11-06核心资源推荐 CDA教材(2025):https://edu.cda.cn/goods/show/3151CDA模拟题(2025):https://edu.cda.cn/goods/show/2845CD ...
2026-11-06“大学生必备证书有哪些”最容易被答成一张越长越好的清单。但校招筛选的真实逻辑是:证书要对应你投的岗位任务,并且在校期间确 ...
2026-11-05大学期间能报的证书,先别急着看“含金量榜单”。更实用的第一步是问:我现在这个身份、这个学历,符合报考条件吗? 很多证书宣 ...
2026-11-05大学期间能考的证书很多,但真正需要先回答的是两个问题:当前有没有报考资格,以及这张证书对应什么岗位任务。 前者决定你能不 ...
2026-11-05先把结论说清楚:真正“只有在校大学生能考、毕业就彻底没资格”的证书数量不多,主要集中在语言类考试的部分专项、面向高校学生 ...
2026-11-05上班族问“考什么证书有用”,真正要解决的不是找一张“最值钱”的证,而是判断哪张证能嵌进你现有的岗位任务。同样一张证书,做 ...
2026-11-05职称证书不是统一的考试项目。同样“考职称”,经济、会计、统计、审计、软考走全国统一考试,工程、教师、卫生等系列多数走评审 ...
2026-11-0533岁选证书,最怕两件事:一是被“适合女生”的清单带着走,考完发现岗位用不上;二是投入大半年,报名时才发现学历、专业或工作 ...
2026-11-05“女生容易考的证书”这个问题,真正难的不是找一份名单,而是判断“容易”到底指什么。报名条件宽松、考试通过率高、拿证后能找 ...
2026-11-05“女生适合考什么证书”这类搜索,背后往往是同一个困惑:网上榜单太多,口径却说不清楚。有人把培训证书和职业资格混在一起排, ...
2026-11-05先把结论说清楚:没有一张证书对所有人都“又好考又实用”。同一个证,对在校生可能报名门槛都过不了,对有三年工作经验的人却只 ...
2026-11-05“考证书有哪些”这个问题,如果只想要一份名单,网上能搜到成百上千个。但真正有用的答案不是“有哪些”,而是“它们分别是什么 ...
2026-11-05“考什么证好一点”这句话,十个人问可能有十个意思。有人想问哪个证容易过,有人想知道哪个证找工作管用,还有人关心哪个证长期 ...
2026-11-05