数据预处理(2)—— One-hot coding 独热编码#分别使用 pandans.dummies 和 sklearn.feature_extraction.DictVectorizer 进行处理
来源:互联网 发布:中国产业生产率数据库 编辑:程序博客网 时间:2024/06/13 04:06
离散 feature 的 encoding 分为两种情况:
1、离散 feature 的取值之间没有大小的意义,比如color:[red,blue],那么就使用 one-hot encoding
2、离散 feature 的取值有大小的意义,比如size:[X,XL,XXL],那么就使用数值的映射{X:1,XL:2,XXL:3}
In [90]:
import numpy as np
import pandas as pd
from pandas import Series, DataFrame
np.set_printoptions(precision=4)
…
In [91]:
df = pd.DataFrame([
['green', 'M', 10.1, 'class1'],
['red', 'L', 13.5, 'class2'],
['blue', 'XL', 15.3, 'class1']])
df.columns = ['color', 'size', 'prize', 'class label']
df
Out[91]:
…
In [92]:
size_mapping = {
'XL': 3,
'L': 2,
'M': 1}
df['size'] = df['size'].map(size_mapping)
df
Out[92]:
…
In [93]:
# -----------------------------------------------
# 使用 pd.get_dummies() 进行处理
pd.get_dummies(df)
Out[93]:
…
In [94]:
df
Out[94]:
…
In [95]:
x
# -----------------------------------------------
# 使用 sklearn.feature_extraction.DictVectorizer 进行处理
feature_list = []
label_list = []
for row in df.index[:]:
label_list.append(df.ix[row][-1])
rowDict = {}
for i in range(0, len(df.ix[row])-1):
rowDict[df.columns[i]] = df.ix[row][i]
feature_list.append(rowDict)
feature_list
Out[95]:
…
In [96]:
label_list
Out[96]:
…
In [97]:
from sklearn.feature_extraction import DictVectorizer
vec = DictVectorizer()
# DictVectorizer.fit_transform() 接受一个由 dict 组成的 list
dummy_x = vec.fit_transform(feature_list).toarray()
dummy_x
Out[97]:
…
In [98]:
from sklearn import preprocessing
label_bin = preprocessing.LabelBinarizer()
# preprocessing.LabelBinarizer.fit_transform() 接受一个 list
dummy_y = label_bin.fit_transform(label_list)
dummy_y
Out[98]:
…
In [99]:
# 测试 当 label 种类大于 2 的时候的效果
df['class label'][2] = 'class3'
df
Out[99]:
…
In [100]:
feature_list = []
label_list = []
for row in df.index[:]:
label_list.append(df.ix[row][-1])
rowDict = {}
for i in range(0, len(df.ix[row])-1):
rowDict[df.columns[i]] = df.ix[row][i]
feature_list.append(rowDict)
dummy_y = label_bin.fit_transform(label_list)
dummy_y
Out[100]:
…
In [ ]:
# 结论,两者效果差不多一样,但是 pd.get_dummies 更好用一些
…
阅读全文
0 0
- 数据预处理(2)—— One-hot coding 独热编码#分别使用 pandans.dummies 和 sklearn.feature_extraction.DictVectorizer 进行处理
- one-hot coding(热独编码)
- 数据预处理之独热编码(One-Hot Encoding)
- 数据预处理之独热编码(One-Hot Encoding)
- 数据预处理:独热编码(One-Hot Encoding)
- 数据预处理:独热编码(One-Hot Encoding)
- 机器学习 数据预处理之独热编码(One-Hot Encoding)
- 机器学习 数据预处理之独热编码(One-Hot Encoding)
- 【机器学习】Sklearn独热编码one hot 编码preprocessing.OneHotEncoder()使用
- 独热编码(One-Hot Encoding)
- 独热编码(One-Hot Encoding)
- 数据预处理——One-hot编码
- 数据预处理——One-hot编码
- pandas中利用get_dummies()进行独热编码(One-Hot encoding)
- 独热编码(One-Hot Encoding)介绍及实现
- One-Hot Encoding独热编码
- 独热编码(One-Hot Encoding)
- one-hot独热编码问题
- 分页
- SAP HANA Express Edition (HXE)-二进制安装使用步骤
- 以python中类方法为例来说说自定义模块导入的三种方法
- 转载了一个调用摄像头拍照的cordova案例
- AngularJs_Service
- 数据预处理(2)—— One-hot coding 独热编码#分别使用 pandans.dummies 和 sklearn.feature_extraction.DictVectorizer 进行处理
- 社群会员必看:你关心的问题,答案都在这里了
- Spring Boot启动流程
- Linux之whereis命令
- Java基础------运算符
- POJ3261:Milk Patterns(后缀数组)
- 论文记录_MobileNets Efficient Convolutional Neural Networks for Mobile Vision Application
- Dockerfile解读
- java将数据库里的数据导出到excel(转)