除了独热编码,你需要清楚将分类特征转换为数字特征的17种方法
发布时间:2021-06-04 13:23:23 所属栏目:大数据 来源:互联网
导读:类编码是将分类列转换为一个(或多个)数字列的过程。 这是必要的,因为计算机更容易处理数字而不是字符串。这是为什么?因为使用数字很容易找到关联(例如更大,更小,两倍,一半)。而给定字符串时,计算机只能说相等还是不同。 但是,尽管有分类编码,但数据科
类编码是将分类列转换为一个(或多个)数字列的过程。
这是必要的,因为计算机更容易处理数字而不是字符串。这是为什么?因为使用数字很容易找到关联(例如"更大","更小","两倍","一半")。而给定字符串时,计算机只能说"相等"还是"不同"。
但是,尽管有分类编码,但数据科学从业人员很容易忽略分类编码。
分类编码是一个令人惊讶地被低估的话题。
这就是为什么我决定加深对编码算法的了解。我从一个名为" category_encoders"的Python库开始(这是Github链接)。使用它很容易:
!pip install category_encodersimport category_encoders as cece.OrdinalEncoder().fit_transform(x)
这篇文章是库中包含的17种编码算法的演练。对于每种算法,我用几行代码提供了简短的解释和Python实现。这样做的目的不是要重新发明轮子,而是要了解算法是如何在后台运行的。毕竟,
"您不了解它,直到您可以对其进行编码"。
并非所有编码均相等
我已经根据其一些特征对17种编码算法进行了分类。由于数据科学家喜欢决策树,因此让他们感到高兴:
除了独热编码,你需要了解将分类特征转换为数字特征的17种方法
> [Image by Author]
以下是拆分所指的内容:
有监督/无监督:当编码仅基于分类列时,则为无监督。否则,如果编码基于原始列和第二个(数字)列的某些功能,那么它将受到监督。
输出维:分类列的编码可能会产生一个数字列(输出维= 1)或许多数字列(输出维> 1)。
映射:如果每个级别始终具有相同的输出(无论是标量(例如OrdinalEncoder)还是数组(例如OneHotEncoder)),则映射是唯一的。相反,如果"允许"同一级别具有不同的可能输出,则映射不是唯一的。
10分钟内17种分类编码算法
1. OrdinalEncoder
每个级别都映射到一个从1到L的整数(其中L是级别数)。在这种情况下,我们使用字母顺序,但是任何其他自定义顺序也是可以接受的。
![]() (编辑:钦州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |