我们在进行建模时,变量中经常会有一些变量为离散型变量,例如性别。这些变量我们一般无法直接放到模型中去训练模型。因此在使用之前,我们往往会对此类变量进行处理。一般是对离散变量进行one-hot编码。下面具体介绍通过python对离散变量进行one-hot的方法。
注意:这里提供两种哑编码的实现方法,pandas和sklearn。它们最大的区别是,pandas默认只处理字符串类别变量,sklearn默认只处理数值型类别变量(需要先 LabelEncoder )
① pd.get_dummies(prefix=)
pandas的get_dummies()可以直接对变量进行one-hot编码,其中prefix是为one-hot编码后的变量进行命名。
②LabelEncoder和OneHotEncoder
我们也可以通过sklearn的模块实现对离散变量的one-hot编码,其中LabelEncoder是将离散变量替换为数字,
OneHotEncoder则实现对替换为数字的离散变量进行one-hot编码。
注:get_dummies()可以直接对字符型变量进行one-hot编码,但OneHotEncoder不能直接对字符型变量编码,因此我们需要先将字符型变量转换为数值型变量。这就是为什么在OneHotEncoder之前需要LabelEncoder的原因。
下面我们通过实例来介绍这两种方法的具体使用:
①数据的导入
import pandas as pd import os os.getcwd() os.chdir('E:\study\kaggle\Titanic') from sklearn.preprocessing import OneHotEncoder from sklearn.preprocessing import LabelEncoder data = pd.read_csv('train.csv')
②数据熟悉
data['Sex'].value_counts() Out[38]: male 577 female 314 Name: Sex, dtype: int64 #可以看到,变量Sex为字符型变量,取值有male和female两种
③get_dummies
Sex_ohe_1 = pd.get_dummies(data['Sex']) Sex_ohe_1.head() Out[40]: female male 0 0 1 1 1 0 2 1 0 3 1 0 4 0 1
④OneHotEncoder
Sex_ohe_2 = OneHotEncoder(sparse=False).fit_transform(data['Sex'].reshape((-1,1))) ValueError: could not convert string to float: male
可以看到OneHotEncoder无法直接对字符型变量进行编码,需要通过OneHotEncoder将字符型变量转换为数值型变量。
le_sex=LabelEncoder().fit(data['Sex']) Sex_label=le_sex.transform(data['Sex']) Sex_label= LabelEncoder().fit_transform(data['Sex']) #fit_transform等价于fit和transform两个函数结合 ohe_sex=OneHotEncoder(sparse=False).fit(Sex_label.reshape(-1,1)) Sex_ohe=ohe_sex.transform(Sex_label.reshape(-1,1)) Sex_ohe_3 = OneHotEncoder(sparse=False).fit_transform(Sex_label.reshape((-1,1)))
注:get_dummies返回的为数据框,OneHotEncoder返回的为数组。
以上这篇python对离散变量的one-hot编码方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
- 《丁当 20首重量级歌曲 Fu Good 下一站天后 2CD》[WAV/分轨][650MB]
- 歌莉雅.2012-My.Voice.Story【环星】【FLAC分轨】
- 群星.1993-一曲成名·青春无悔【飞碟】【WAV+CUE】
- 刘德华.2000-爱无知(金装版)【NEWMELODY】【WAV+CUE】
- 许巍《时光漫步》1CD[FLAC/分轨][804.3MB]
- 群星《2024第一季度百度歌曲排行抖音榜top100》1CD[FLAC/分轨][2.3GB]
- 张柏芝《全新经验》[FLAC/分轨][450MB]
- 唐朝.2008-浪漫骑士【音乐家】【WAV+CUE】
- 张芸京.2016-失败的高歌【泡耳音乐】【WAV+CUE】
- 群星.1991-音乐工厂1·皇后大道东【音乐工厂】【WAV+CUE】
- 群星.1992-音乐工厂2·首都【音乐工厂】【WAV+CUE】
- 群星.1994-音乐工厂3·儿童乐园【音乐工厂】【WAV+CUE】
- 胡鸿钧.2021-ex:CHANGE【星梦娱乐】【WAV+CUE】
- 班得瑞原装进口《第一张新世纪专辑:仙境》1CD[APE/CUE分轨][292.3MB]
- 伍佰《摇滚教父 伍佰黄金精选 2CD》[WAV+CUE][990MB]