癌症数据分类的一种热门编码是什么

数据挖掘 机器学习 Python 张量流
2022-03-13 04:11:48

我正在做一个使用 CNN 和 tensorflow 对肺 CT 数据集进行分类的项目,我知道该类别的顺序是癌症/非癌症(只有 2 个类),在多个 Github 存储库中我看到他们做了一个热编码像下面的代码:

if label == 1:
    label = np.array([0, 1])
elif label == 0:
    label = np.array([1, 0])

让我感到困惑的是:1 表示癌症,0 表示没有癌症,据我所知应该是:

if label == 1:
    label = np.array([1, 0])
elif label == 0:
    label = np.array([0, 1])

但是为什么他们这样做了一个这样的热编码,我不知道我错了,或者还有另一件事我不明白,谁能解释一下?或者给我一个更好的方法来对我的数据进行编码,但是用代码?

1个回答

两种方式都一样有效,但您在 github 存储库中看到的方式更标准。

转换整数的标准方法label yi(从 0 到 K-1)转化为 one-hot 向量编码是通过创建一个长度为 K 的全零向量,并设置索引为的元素yi为1,即

label_one_hot = np.zeros(k)
label_one_hot[label] = 1