机器学习之数据预处理——特征编码(标签编码,独热编码)

本文探讨了机器学习中数据预处理的重要环节——特征编码,特别是针对离散数据的标签编码和独热编码。标签编码将分类特征转化为数字,适用于定序数据和对数值大小不敏感的模型。独热编码则解决分类变量问题,适用于定类数据,但可能导致维度灾难。sklearn库提供了LabelEncoder和OneHotEncoder工具进行这些编码操作。
摘要由CSDN通过智能技术生成

机器学习里有一句名言:数据和特征决定了机器学习的上限,而模型和算法的应用只是让我们逼近这个上限。这个说法形象且深刻的提出前期数据处理和特征分析的重要性。这一点从我们往往用整个数据挖掘全流程60%以上的时间和精力去做建模前期的数据处理和特征分析也能看出。那么疑问来了,这超过60%时间和精力我们都用在哪了?本文基于以往的知识储备以及实际的项目经验,我做一个总结。

主要包括三部分,一是获取数据、数据抽样,二是数据探索,三是数据预处理与清洗

数据预处理——特征编码

由于机器学习算法都是在矩阵上执行线性代数计算,所以参加计算的特征必须是数值型的,对于非数值型的特征需要进行编码处理。对于离散型数据的编码,我们通常会使用两种方式来实现,分别是标签编码和独热编码

离散数据的编码

对于离散型数据的编码,我们通常会使用两种方式来实现,分别是标签编码和独热编码

标签编码

将类别型特征从字符串转换为数字
先说结论:OneHotEncoder更常用,LabelEncoder目前应用场景不多

特点:

  1. 解决了分类编码的问题,可以自由定义量化数字
  2. 数值本身没有任何含义,仅是标识或者排序的作用
  3. 可解释性比较差

适用范围:

  1. 对于定序类型的数据,使用标签编码更好,虽然定序类型也属于分类,但是其有排序逻辑
  2. 对数值大小不敏感的模型(如树模型),建议使用标签编码
sklearn LabelEncoder(使用fit_transform函数)

将离散型的数据转换成 0 0 0 到 n − 1 n − 1 n−1 之间的数

import pandas as pd
from sklearn.preprocessing import LabelEncoder


df = pd.DataFrame([
            ['green', 'M', 10.1, 'class1'],
            ['red', 'L', 13.5, 'class2'],
            ['blue', 'XL', 15.3, 'class1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值