Skip to main content
 首页 » 编程设计

python之特征列如何在 tensorflow 中工作

2024年08月16日31lautakyan007

我读到 feature columns in tensorflow用于定义我们的数据,但如何以及为什么?如果我们也可以在没有它们的情况下制作自定义估算器,那么特征列如何工作以及为什么它们甚至存在?

如果它们是必要的,为什么像 keras 这样的库不使用它们?

请您参考如下方法:

广义上讲

这可能太笼统了,无法回答。您可能想要观看一些视频或阅读更多有关机器学习的内容,因为这是一个广泛的主题。

我将尝试解释数据的用途。

数据的“特征”是一个有意义的变量,应该将两个类彼此分开。例如,如果我们选择“重量”特征,我们可以区分大象和松鼠。它们的重量非常不同,我们的机器学习算法可以学会“理解”体重较重的动物更有可能是大象而不是松鼠。在真实场景中,您通常会有不止一项功能。

我不确定您为什么会说 Keras 不使用特性。它们是许多分类问题的基本方面。某些数据集可能包含标记数据或标记特征,例如:https://keras.io/datasets/#cifar100-small-image-classification

当我们“不使用特征”时,我认为更准确的说法是数据未标记。在这种情况下,机器学习算法仍然可以找到数据中的关系,但无需将人工标签应用于数据。

如果您在此页面上用 Ctrl+F 搜索“功能”一词,您将看到 Keras 接受它们作为参数的地方:https://keras.io/layers/core/

我不是机器学习专家,所以如果有人能够纠正我的答案,我也将不胜感激。

在 Tensorflow 中

我对Tensorflow's feature columns的理解特别是实现是它们允许您将原始数据转换为类型化列,从而使算法能够更好地区分您传递的数据类型。例如纬度和经度可以作为两个数字列传递,但正如文档所说 here ,对纬度 X 经度使用交叉列可能允许模型以更有意义/有效的方式训练数据。毕竟,“纬度”和“经度”的真正含义是“位置”。至于为什么 Keras 没有这个功能,我不确定,希望其他人可以就这个主题提供见解。