如何使用 sklearn 从 ONE-HOT-ENCODED 标签返回到单列?
How to go back from ONE-HOT-ENCODED labels to single column using sklearn?
我使用模型预测了一些数据并得到了这种结果
[[0 0 0 ... 0 0 1]
[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]
...
[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 1]
[0 0 0 ... 0 0 0]]
这基本上是目标列的单热编码标签。
现在我想以某种方式回到原始值的单个列。
我用这些线来做我的编码。
我怎样才能回到单列?
le_candidate = LabelEncoder()
df['candidate_encoded'] = le_candidate.fit_transform(df.Candidate)
candidate_ohe = OneHotEncoder()
Y = candidate_ohe.fit_transform(df.candidate_encoded.values.reshape(-1, 1)).toarray()
使用 LabelEncoder
的 inverse_transform
和 OneHotEncoder
:
import pandas as pd
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
s = pd.Series(['a', 'b', 'c'])
le = LabelEncoder()
ohe = OneHotEncoder(sparse=False)
s1 = le.fit_transform(s)
s2 = ohe.fit_transform(s.to_numpy().reshape(-1, 1))
你有:
# s1 from LabelEncoder
array([0, 1, 2])
# s2 from OneHotEncoder
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
你应该做什么:
inv_s1 = le.inverse_transform(s1)
inv_s2 = ohe.inverse_transform(s2).ravel()
输出:
# inv_s1 == inv_s2 == s
array(['a', 'b', 'c'], dtype=object)
我使用模型预测了一些数据并得到了这种结果
[[0 0 0 ... 0 0 1]
[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]
...
[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 1]
[0 0 0 ... 0 0 0]]
这基本上是目标列的单热编码标签。 现在我想以某种方式回到原始值的单个列。 我用这些线来做我的编码。 我怎样才能回到单列?
le_candidate = LabelEncoder()
df['candidate_encoded'] = le_candidate.fit_transform(df.Candidate)
candidate_ohe = OneHotEncoder()
Y = candidate_ohe.fit_transform(df.candidate_encoded.values.reshape(-1, 1)).toarray()
使用 LabelEncoder
的 inverse_transform
和 OneHotEncoder
:
import pandas as pd
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
s = pd.Series(['a', 'b', 'c'])
le = LabelEncoder()
ohe = OneHotEncoder(sparse=False)
s1 = le.fit_transform(s)
s2 = ohe.fit_transform(s.to_numpy().reshape(-1, 1))
你有:
# s1 from LabelEncoder
array([0, 1, 2])
# s2 from OneHotEncoder
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
你应该做什么:
inv_s1 = le.inverse_transform(s1)
inv_s2 = ohe.inverse_transform(s2).ravel()
输出:
# inv_s1 == inv_s2 == s
array(['a', 'b', 'c'], dtype=object)