python - 有人可以解释一下这种热编码器方法是如何工作的吗?
问题描述
我已经在网上获得了这个代码,它可以对一组标签编码值进行热编码。我特别不明白最后一行。请帮忙
我最初认为每个 y 为 1 时,它都会将该索引的值替换为 1,但是,如何呢?
def read_dataset():
df = pd.read_csv("sonar.all-data.csv")
x = df[df.columns[0:60]].values
y = df[df.columns[60]]
encoder = LabelEncoder()
encoder.fit(y)
y = oneHotEncode(y)
return(x, y)
def oneHotEncode(labels):
n_labels = len(labels)
n_unique_labels = len(np.unique(labels))
oneHE = np.zeros((n_labels, n_unique_labels))
oneHE[np.arange(n_labels), labels] = 1
return oneHE
我希望了解这段代码的工作原理,但我不明白 np.arange 的那一行
解决方案
np.arange()
类似于range()
但创建一个 numpy 数组。因此,如果您有 10 个标签,它会返回一个包含从 0 到 9 的连续数字的数组。这用于选择oneHE
数组的行(初始化后仅包含零)。labels
用于选择列。
所以它只是在所有行中选择相应的列并将值设置为 1。
推荐阅读
- c# - 有没有其他方法可以转换为十六进制?
- docker - 如何通过在jenkins中传递groovy脚本文件路径在从节点上运行groovy脚本
- c# - 工作表移除导致 OpenXML 中的文件不可读错误
- laravel - 打开 vue 路由链接时跳过登录屏幕
- python - 需要一些帮助来检测多个碰撞
- python - 如何从网络摄像头捕获单个图像并在 OpenCV 中进一步处理?
- facebook-instant-games - 如何在 Facebook Instant Game SDK 中使用模板属性
- c# - ViewComponent 无法识别 AspNetCore.Identity “用户”
- php - 不同路线的相同控制器方法
- node.js - 将项目发布到 JSON 服务器 db-Angular