第一次课Q&A

第一次课Q&A

1.如何将类别型变量引入线性回归,提出至少1种方案?

针对类别变量,想要将其引入线性回归,基本的思路就是重新编码,有这么几种重新编码的方法

一、replace&map法

相对而言,replace可能更加针对的是,有些时候,在我们要进行特征处理的变量中,并不是所有的取值都需要进行特征处理,只需要对其中部分不符合要求的取值进行替换的情况。
比如说在一列数据中,有个别值与其他值不统一,这时我就可以采取replace法

import pandas as pd
test_dict = {'id': [1, 2, 3, 4, 5, 6, 7, 8],  # 构建测试数据``       
             'math':[96,70,65, 30, 93, 'A', 66, 88]}
test_df = pd.DataFrame(test_dict)
# 将math一列中的A替换93
test_df.replace({'math': {'A':93}}, inplace=True)
test_df

除了使用 replace() 方法,也可以应用内置的 map() 方法进行直接替换处理。

map() 可以对 Dataframe 中某列内的元素进行操作,在此情景下的作用是:根据映射关系,为指定列匹配结果并进行替换。其处理原理与使用 replace() 进行直接替换的方式一致,需要自行指定各类别取值应该如何转换为数值。

但其特别之处在于,map() 方法作用于整列变量的元素,因此需要对该列变量中所有可能出现的取值指定映射关系,否则没有指定映射关系的取值将会被转换成NaN。因此,不适用于取值类别特别多的时候。
借用讲述 replace() 部分的案例,我们要做的工作是将93转换成为A。
如果使用 map() 方法,并只对93进行转换,而没有对所有取值指定映射关系。上例案例可以修改为:

test_df['math'] = test_df['math'].map({93: 'A'})
test_df

二、 LabelEncoding 标签编码

上述map法和replace法的人工操作量很大,因此, 我们需要能够快速对整列变量的所有取值进行编码的方法。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值