我是机器学习的新手scikit-learn
。我正在浏览文档并尝试使用一些示例数据OneHotEncoder()
。有人可以解释一下encoder.feature_indices_发生了什么,以及我如何将Encoded_Vector的输出作为[[ 0. 0. 1. 0. 1. 0. 0. 0. 1. 1. 0.]]
。任何帮助表示赞赏。谢谢!
>>> from sklearn import preprocessing
>>> encoder = preprocessing.OneHotEncoder()
>>> encoder.fit([[0, 2, 1, 12], [1, 3, 5, 3], [2, 3, 2, 12], [1, 2, 4,3]])
OneHotEncoder(categorical_features='all', dtype=<type 'numpy.float64'>,
handle_unknown='error', n_values='auto', sparse=True)
>>> encoder.n_values_
array([ 3, 4, 6, 13])
>>> encoder.feature_indices_
array([ 0, 3, 7, 13, 26])
>>> vector_encoded = encoder.transform([[2,3,5,3]]).toarray()
>>> print "\nEncoded_Vector =",vector_encoded
Encoded_Vector = [[ 0. 0. 1. 0. 1. 0. 0. 0. 1. 1. 0.]]
>>>
到目前为止,我的理解是
输入
0 2 1 12
1 3 5 3
2 3 2 12
1 2 4 3
这是4列/功能和4行。每列具有不同数量的唯一实体。如果我跑:
enc.n_values_
它给出:数组([3,4,6,13])
所以每个功能的类别都是:
要素1可以取3个值:0 1 2
特征2可以取4个值:0 1 2 3
特征3可以取6个值:0 1 2 3 4 5
特征4可以取13个值:0 1 2 3 4 5 6 7 8 9 10 11 12
答案 0 :(得分:0)
即使您说您的功能可能总共需要3,4,6或13个值,但您提供的数据示例([[0, 2, 1, 12], [1, 3, 5, 3], [2, 3, 2, 12], [1, 2, 4,3]]
)并未涵盖您的各种数据。
你的例子基本上说:
这最终总共有11个值。因此,OneHotEncoding([[ 0. 0. 1. 0. 1. 0. 0. 0. 1. 1. 0.]]
)的输出有11个值,可以分为4个部分:
&#34; 1的位置。&#34;在数组中将告诉您变量的值(尝试在编码之前和编码之后匹配示例)。