有时在数据集中, 我们会遇到包含没有特定优先顺序的数字的列。列中的数据通常表示类别或类别的值, 并且在列中的数据经过标签编码时也是如此。这会混淆机器学习模型, 为避免这种情况, 列中的数据应进行一次热编码。
一种热编码–
它是指拆分包含数字的列分类数据到许多列, 具体取决于该列中存在的类别数量。每列包含对应于其放置在哪一列的" 0"或" 1"。
例如 :
考虑给出水果及其相应分类价值和价格的数据。
水果 | 水果的分类价值 | 价钱 |
---|---|---|
苹果 | 1 | 5 |
芒果 | 2 | 10 |
苹果 | 1 | 15 |
橙子 | 3 | 20 |
苹果 | 芒果 | 橙子 | 价钱 |
---|---|---|---|
1 | 0 | 0 | 5 |
0 | 1 | 0 | 10 |
1 | 0 | 0 | 15 |
0 | 0 | 1 | 20 |
示例1:
下面的示例是区域的数据和客户的信用评分, 区域是一个分类值, 需要进行一次热编码。
# Program for demonstration of one hot encoding# import libraries
import numpy as np
import pandas as pd# import the data required
data = https://www.lsbin.com/pd.read_csv(r"../../onehotenc_data.csv" )
print (data)
输出如下:
文章图片
一个热编码区域列–
# importing one hot encoder from sklearn
# There are changes in OneHotEncoder class
from sklearn.preprocessing import OneHotEncoder
from sklearn.compose import ColumnTransformer# creating one hot encoder object with categorical feature 0
# indicating the first column
columnTransformer = ColumnTransformer([( 'encoder' , OneHotEncoder(), [ 0 ])], remainder = 'passthrough' )data = https://www.lsbin.com/np.array(columnTransformer.fit_transform(data), dtype = np. str )
输出如下:
文章图片
输出包含5列, 其中一列表示价格, 其余4列表示4个区域。
示例2:
一个热编码器仅采用数字分类值, 因此任何字符串类型的值都应在"一热"编码之前进行标签编码。
以下示例包含客户的地理位置和性别数据, 必须首先对其进行标签编码。
# importing libraries
import numpy as np
import pandas as pds# After importing the required data
print (data)
输出如下:
文章图片
标签编码数据–
# label encoding the data
from sklearn.preprocessing import LabelEncoderle = LabelEncoder()data[ 'Gender' ] = le.fit_transform(data[ 'Gender' ])
data[ 'Geography' ] = le.fit_transform(data[ 'Geography' ])
输出如下:
文章图片
一本热门的性别和地理编码专栏–
# importing one hot encoder from sklearn
from sklearn.preprocessing import OneHotEncoder# creating one hot encoder object by default
# entire data passed is one hot encoded
onehotencoder = OneHotEncoder()data = https://www.lsbin.com/np.array(columnTransformer.fit_transform(data), dtype = np. str )
输出如下:
文章图片
输出包含5列, 其中2列分别代表性别, 男性和女性, 其余3列分别代表法国, 德国和西班牙。
注意 :
- 一个热编码器不接受一维数组或熊猫序列, 输入应始终为二维。
- 传递给编码器的数据不应包含字符串。
推荐阅读
- ML算法(使用Python进行多元线性回归)
- ML算法(OPTICS聚类说明详细指南)
- ML算法(使用Sklearn实现OPTICS聚类)
- ML算法(主成分分析(PCA)详细指南)
- ML强化学习算法(使用Q学习的Python实现)
- ML算法(光谱聚类详细介绍)
- ML算法(随机梯度下降(SGD)介绍)
- 大白菜u盘装系统图文详细教程,教您大白菜u盘怎样安装win7系统
- u盘打开系统,教您如何自制u盘打开盘