计算机系统应用教程网站

网站首页 > 技术文章 正文

什么是One-Hot Encoding进行数据清理?

btikc 2024-10-12 13:22:07 技术文章 4 ℃ 0 评论

在这篇文章中,我们讨论什么是One-Hot编码?为什么以及何时使用它来处理机器学习测试。在许多机器学习案例中,特征并不总是连续值,可能是分类值。

例如:

  • [“male”, “female”]
  • [“from Europe”, “from US”, “from Asia”]
  • [“uses Firefox”, “uses Chrome”, “uses Safari”, “uses Internet Explorer”]

如果您使用这些数字来表示,那将更有效,例如:

  • [“male”, “from US”, “uses Internet Explorer”] -> [0, 1, 3]
  • [“female”, “from Asia”, “uses Chrome”]-> [1, 2, 1]

但是,在我们转换为数字表示后,上述数据无法直接在我们的分类器中使用。因为estimator 会认为要排序的类,但实际上是无序的。例如:衣服的尺寸类别数据是任意排序的。

首先,创建一个DataFrame并命名列,Python代码如下:

# Python program to demonstrate

import pandas as pd

df2 = pd.DataFrame(

[['Green','M', 10.1, 1 ], ['Red','L',13.5, 2 ], ['Blue','XL',13.5, 2 ], ['Red','L', 10, 1 ]])

df2.columns = ['Color','Size','Price','Classlable']

df2

#map(fun, iter)

#fun : It is a function to which map passes each element of given iterable.

#iter : It is a iterable which is to be mapped.

size_mapping =

{

'XL':3,

'L':2,

'M':1

}

df2['Size'] = df2['Size'].map(size_mapping)

使用“get_dummies”函数很简单——使用prefix函数指定要对哪些列进行编码,然后得到一个dataframe,用One hot编码替换原始列。Python示例代码:

onehot_encoding = pd.get_dummies(df2['Color'], prefix='Color')

df2 = df2.drop('Color',1)

onehot_encoding

pd.concat([onehot_encoding, df2],axis=1)

在本教程中,您了解了如何使用Python中的one hot编码对机器学习的分类序列数据进行编码。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表