sklearn库之数据表示与特征工程

本文主要包含两大部分,第1部分为对特征数据的变换,尤其对复杂度较低的模型,例如线性模型非常有用,第2部分为特征选择。


对于某个特定应用来说,如何找到最佳数据表示,这个问题被称为特征工程(feature engineering),它是数据科学家和机器学习从业者在尝试解决现实世界问题时的主要任务之一。

特征类型 英文名 别名 英文名
数值特征 numerical feature 连续特征 continuous feature
分类特征 categorical feature 离散特征 discrete feature

用正确的方式表示数据,对监督模型性能的影响比所选择的精确参数还要大。

一、分类变量
1.1 One-Hot编码(虚拟变量)
编码方式 英文名 别名1 别名2
one-hot 编码 one-hot-encoding N 取一编码(one-out-of-N encoding) 虚拟变量(dummy variable)

虚拟变量背后的思想是将一个分类变量替换为一个或多个新特征,新特征取值为 0 和 1。

1.2 数字编码的分类变量如何处理?

pandas 的 get_dummies 函数将所有数字看作是连续的,不会为其创建虚拟变量。

为了解决这个问题,可以使用 scikit-learn 的 OneHotEncoder,指定哪些变量是连续的、哪些变量是离散的,你也可以将数据框中的数值列转换为字符串。

  • 方法一:使用 pd.get_dummies() 显示给出要编码的列
demo_df = pd.DataFrame({
   'Integer Feature': [0, 1, 2, 1],'Categorical Feature': ['socks', 'fox', 'socks', 'box']})
demo_df['Integer Feature'] = demo_df['Integer Feature'].astype(str)
pd.get_dummies
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值