当前位置:  开发笔记 > 编程语言 > 正文

在sklearn中使用labelEncoder

如何解决《在sklearn中使用labelEncoder》经验,为你挑选了1个好方法。

说我有以下输入功能:

hotel_id = [1, 2, 3, 2, 3]

这是具有数值的分类特征.如果我按原样将它交给模型,模型会将其视为连续变量,即2> 1.

如果我申请,sklearn.labelEncoder()我会得到:

hotel_id = [0, 1, 2, 1, 2] 

那么这个编码特征被认为是连续的还是绝对的?如果它被视为连续,那么使用labelEncoder().

PS我知道一个热门编码.但是大约有100个hotel_ids所以不想使用它.谢谢



1> Tgsmith61591..:

LabelEncoder是一种编码类级别的方法.除了您包含的整数示例之外,请考虑以下示例:

>>> from sklearn.preprocessing import LabelEncoder
>>> le = LabelEncoder()
>>>
>>> train = ["paris", "paris", "tokyo", "amsterdam"]
>>> test = ["tokyo", "tokyo", "paris"]
>>> le.fit(train).transform(test)
array([2, 2, 1]...)

那么,LabelEncoder允许我们做的是将序数级别分配给分类数据.但是,您所注意到的是正确的:即,将[2, 2, 1]其视为数字数据.这是使用OneHotEncoder虚拟变量的一个很好的候选者(我知道你说你希望不使用它).

请注意,LabelEncoder必须在单热编码之前使用,因为OneHotEncoder无法处理分类数据.因此,它经常用作单热编码的前传.

或者,它可以将目标编码为可用的数组.例如,如果train您的目标是分类,则需要LabelEncoder将其用作y变量.

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有