ML算法(Python中数据集的一种热编码)

有时在数据集中, 我们会遇到包含没有特定优先顺序的数字的列。列中的数据通常表示类别或类别的值, 并且在列中的数据经过标签编码时也是如此。这会混淆机器学习模型, 为避免这种情况, 列中的数据应进行一次热编码。
一种热编码– 它是指拆分包含数字的列分类数据到许多列, 具体取决于该列中存在的类别数量。每列包含对应于其放置在哪一列的" 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
以下是Python中的实现-
示例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)

输出如下:
ML算法(Python中数据集的一种热编码)

文章图片
一个热编码区域列–
# 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 )

输出如下:
ML算法(Python中数据集的一种热编码)

文章图片
输出包含5列, 其中一列表示价格, 其余4列表示4个区域。
示例2:
一个热编码器仅采用数字分类值, 因此任何字符串类型的值都应在"一热"编码之前进行标签编码。
以下示例包含客户的地理位置和性别数据, 必须首先对其进行标签编码。
# importing libraries import numpy as np import pandas as pds# After importing the required data print (data)

输出如下:
ML算法(Python中数据集的一种热编码)

文章图片
标签编码数据–
# label encoding the data from sklearn.preprocessing import LabelEncoderle = LabelEncoder()data[ 'Gender' ] = le.fit_transform(data[ 'Gender' ]) data[ 'Geography' ] = le.fit_transform(data[ 'Geography' ])

输出如下:
ML算法(Python中数据集的一种热编码)

文章图片
一本热门的性别和地理编码专栏–
# 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 )

输出如下:
ML算法(Python中数据集的一种热编码)

文章图片
输出包含5列, 其中2列分别代表性别, 男性和女性, 其余3列分别代表法国, 德国和西班牙。
注意 :
  1. 一个热编码器不接受一维数组或熊猫序列, 输入应始终为二维。
  2. 传递给编码器的数据不应包含字符串。
【ML算法(Python中数据集的一种热编码)】首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。

    推荐阅读