要素列如何在tensorflow中工作?

时间:2018-05-14 16:12:13

标签: python tensorflow keras

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

如果有必要,为什么喜欢keras的图书馆不会使用它们?

1 个答案:

答案 0 :(得分:3)

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

我将尝试解释用于哪些数据功能。

数据的“特征”是一个有意义的变量,应该将两个类彼此分开。例如,如果我们选择“重量”这个特征,我们可以告诉大象除了松鼠。它们具有非常不同的权重,我们的机器学习算法可以学习“理解”重量较大的动物比松鼠更可能是大象。在实际情况中,您通常会有多个功能。

我不确定为什么你会说Keras没有使用功能。它们是许多分类问题的基本方面。某些数据集可能包含标记数据或标记的要素,如下所示:https://keras.io/datasets/#cifar100-small-image-classification

当我们“不使用功能”时,我认为可以更准确地说明数据未标记的情况。在这种情况下,机器学习算法仍然可以在数据中找到关系,但没有将人类标签应用于数据。

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

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

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