栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

想知道pd.factorize,pd.get_dummies,sklearn.preprocessing.LableEncoder和OneHotEncoder之间的区别。

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

想知道pd.factorize,pd.get_dummies,sklearn.preprocessing.LableEncoder和OneHotEncoder之间的区别。

这四种编码器可以分为两类:

  • 标签 编码 为分类变量 :Pandas
    factorize
    和scikit-learn
    LabelEnprer
    。结果将具有1维。
  • 分类变量 编码 为伪/指标(二进制)变量 :Pandas
    get_dummies
    和scikit-learn
    OneHotEnprer
    。结果将具有n个维,一个维是编码的分类变量的不同值。

熊猫和scikit-learn编码器之间的主要区别在于,使用和方法将scikit-learn编码器用于 scikit-learn管道

fit``transform

将标签编码为分类变量

熊猫

factorize
和scikit-learn
LabelEnprer
属于第一类。它们可用于创建分类变量,例如将字符转换为数字。

from sklearn import preprocessing    # Test datadf = Dataframe(['A', 'B', 'B', 'C'], columns=['Col'])    df['Fact'] = pd.factorize(df['Col'])[0]le = preprocessing.LabelEnprer()df['Lab'] = le.fit_transform(df['Col'])print(df)#   Col  Fact  Lab# 0   A     0    0# 1   B     1    1# 2   B     1    1# 3   C     2    2

将分类变量编码为虚拟/指标(二进制)变量

熊猫

get_dummies
和scikit-
learn
OneHotEnprer
属于第二类。它们可用于创建二进制变量。
OneHotEnprer
只能与分类整数一起使用,而
get_dummies
可以与其他类型的变量一起使用。

df = Dataframe(['A', 'B', 'B', 'C'], columns=['Col'])df = pd.get_dummies(df)print(df)#    Col_A  Col_B  Col_C# 0    1.0    0.0    0.0# 1    0.0    1.0    0.0# 2    0.0    1.0    0.0# 3    0.0    0.0    1.0from sklearn.preprocessing import OneHotEnprer, LabelEnprerdf = Dataframe(['A', 'B', 'B', 'C'], columns=['Col'])# We need to transform first character into integer in order to use the oneHotEnprerle = preprocessing.LabelEnprer()df['Col'] = le.fit_transform(df['Col'])enc = oneHotEnprer()df = Dataframe(enc.fit_transform(df).toarray())print(df)#      0    1    2# 0  1.0  0.0  0.0# 1  0.0  1.0  0.0# 2  0.0  1.0  0.0# 3  0.0  0.0  1.0

我也 根据此答案写了更详细的文章。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/571174.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号