[個人利用のためのドラフト] ワンホット エンコードとリカバリに Python を使用する

Python で numpy を使用してカテゴリ特徴量のワンホット エンコーディングを実行し、ワンホット エンコーディングをカテゴリ特徴量に復元する方法
: one_hot_label はワンホット エンコーディング後の特徴を表し、label は元のカテゴリ特徴
量を表します。

  • 対角が 1、n*n の行列を生成します。n はカテゴリの数を表します。
  • 入力カテゴリ
  • ワンホットエンコードの結果
  • ワンホットエンコーディングの結果を復元する
import numpy as np

one_hot = np.eye(28) # 生成对角线为类别个数的矩阵,这里的例子为28个类别
label = np.array([1, 4, 8, 9, 5, 0]) # 输入类别(数字范围为:0-27)

# 进行onehot编码
one_hot_label = one_hot[label.astype(np.int32)] # 该方法即为选取上述生成的矩阵的第几行

# 恢复
label = [one_label.tolist().index(1) for one_label in one_hot_label] # 找到下标是1的位置
# 下面的程序打印了这个过程
# for one_label in one_hot_label:
#     print(one_label)
#     print('*'*50)
#     print(one_label.tolist()) # 输出为一维列表
#     print('-'*50)
#     print(one_label.tolist().index(1)) # 1在第几个数字第一个出现

Supongo que te gusta

Origin blog.csdn.net/qq_44319167/article/details/130362273
Recomendado
Clasificación