Могу ли я преобразовать 3 метки классов в двумерный массив в задаче многоклассовой классификации, используя python? - PullRequest
0 голосов
/ 05 августа 2020

Могу ли я преобразовать каждый класс в этот массив, подобный форме?

class 1 - [0,0] class 2 - [0,1] class 3 - [1,0]

Я просмотрел всю документацию sklearn при предварительной обработке меток, и Я могу найти кодировку только для формы трехмерного массива [1,0,0], [0,1,0], [0,0,1].

1 Ответ

1 голос
/ 05 августа 2020
  1. Вы можете сделать это с помощью tensorflow.one_hot, с 3 классами и глубиной 2:
import tensorflow as tf

tf.one_hot([1, 2, 0, 1, 2, 0], depth=2)
<tf.Tensor: shape=(6, 2), dtype=float32, numpy=
array([[0., 1.],
       [0., 0.],
       [1., 0.],
       [0., 1.],
       [0., 0.],
       [1., 0.]], dtype=float32)>
или sklearn.preprocessing.OneHotEncoder с drop='first':
from sklearn.preprocessing import OneHotEncoder

ohe = OneHotEncoder(drop='first')

ohe.fit_transform([[1], [2], [0], [1], [2], [0]]).toarray()
array([[1., 0.],
       [0., 1.],
       [0., 0.],
       [1., 0.],
       [0., 1.],
       [0., 0.]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...