使用 OneHotEncoder 从二元特征(仅限)中删除第一个类别。

关于独热编码中 drop 参数的探讨:

本段文字主要讲解了三种独热编码参数 drop 的用法及其优劣:

  • drop=None: 这是独热编码的默认设置,它会为每个类别创建一个特征列,例如一个具有三个类别的特征将被编码为三个特征列。
  • drop=first: 该参数会将每个特征的第一个类别删除,例如一个具有三个类别的特征将被编码为两个特征列。 这种做法可以避免多重共线性,因为独热编码中始终存在一列冗余信息。 然而,作者不推荐使用此参数,因为:
  • 通常删除第一个类别并不会带来预测上的优势。
  • drop=firsthandle_unknown=ignore 不兼容,而 handle_unknown=ignore 是一个很有用的选项。
  • 如果对所有特征进行标准化或使用正则化模型(两种常见的做法),drop=first 可能会导致问题。
  • drop=if binary: 这是 Scikit-learn 2.3 版本的新功能,它只在特征为二元特征(即只有两个类别)时才会删除第一个类别。 例如,一个具有三个类别的特征会被编码为三个特征列,而一个具有两个类别的特征会被编码为一个特征列。 作者认为该参数与 drop=first 存在相同的问题,并倾向于继续使用 drop=None

作者最后强调了理解 drop=if binary 用法的必要性,并鼓励读者分享他们对该参数的理解。

总结而言,作者建议在独热编码中使用 drop=None,并提醒读者注意其他两种 drop 参数可能带来的问题。

0.23 版本新增功能:在 OneHotEncoder 中使用 drop='if_binary' 仅在特征为二元特征(意味着它只有两个类别)时才丢弃第一个类别。 注意:从 scikit-learn 1.0 开始,drop='first' 和 drop='if_binary' 都可以与 handle_unknown='ignore' 一起使用。 但是,被丢弃的类别和未知类别都将被编码为全零。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dataschool

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值