one-hot 编码器实现 pandas.get_dummies,如何阅读语法

one-hot encoder implementation pandas.get_dummies, how to read syntax

我正在阅读 pandas 文档以了解 pandas.get_dummies

>>> import pandas as pd
>>> l = list('abca')
>>> print l
['a', 'b', 'c', 'a']
>>> s = pd.Series(l)
>>> print s
0    a
1    b
2    c
3    a

我创建了一个系列,如上所示。

当我在这个系列上调用 get_dummies 时,输出如下

>>> pd.get_dummies(s)
   a  b  c
0  1  0  0
1  0  1  0
2  0  0  1
3  1  0  0

什么意思我没看懂。

我们可以说条目的新值如下吗?

a --> 100
b --> 010
c --> 001
a --> 100

还有,它们是十进制的还是二进制的?

这是单热编码。

   a  b  c
0  1  0  0  <-- a, not b, not c in row 0
1  0  1  0  <-- not a, b, not c in row 1 
2  0  0  1  <-- not a, not b, c in row 2
3  1  0  0  <-- a, not b, not c in row 3

考虑阅读 this 以获取另一个示例。

dummy 变量是二进制特征。就像一个单独的列,说明每一行是否是某物。当我们有一个包含多个值(超过 1 个)的现有列时。我们可以将这些值拆分为每个唯一值的单个列。每个新列要么是一,表示该行具有该唯一值,要么是零,表示该行没有该唯一值。

由于 s 的每一行只有一个值,按理说,每行零和一的值在 header 列下只有 one-one对于 s

中的相应行
   a  b  c
0  1  0  0  # 1 is under `a` which was the value in `s` for this row.
1  0  1  0
2  0  0  1
3  1  0  0

换句话说,将新的 a 列视为告诉您 as.

中的位置