tf.contrib.layers.sparse_column_with_integerized_feature能否处理单列内多个输入的分类特征?

我正在使用Tensorflow及其tf.learn API来创建和训练一个DNNRegressor模型。我有一个多值的整数特征列(每一行可以有多个整数值),我使用tf.contrib.layers.sparse_column_with_integerized_feature来处理这个特征列。

现在我的问题是,在CSV文件中,对于多值特征列应该使用什么分隔符作为正确的分隔符。例如,假设我有一个CSV文件,其中col2是多值特征,并且不是独热编码特征:

  1, 2, 1:2:3:4, 5  2, 1, 4:5, 6

如你所见,我使用’:’来分隔col2中的整数特征值,但这似乎不对,因为在使用tf.contrib.layers.sparse_column_with_integerized_feature声明这个特征列运行DNNRegressor时,我得到了以下错误:

 'Value passed to parameter 'x' has DataType string not in list of allowed   values: int32, int64, float32, float64'.

非常感谢你的帮助


回答:

tf.contrib.layers.sparse_column_with_integerized_feature仅适用于int32int64值,因此不能完全按照你希望的方式工作。

但是,tensorflow支持数值列中的多维度,因此你可以使用tf.feature_column.numeric_column并指定你拥有的shape。请注意,tensorflow期望所有这些形状都是相同的,因此你需要将所有值填充到一个共同的形状。

对于多值列,使用冒号':'作为分隔符是可以的,这里有一个例子说明如何使用pandas将多个值读取到DataFrame中(问题是关于XML的,但对于CSV也适用)。你可以将这个数据框传递到model.train()函数的input_fn中。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注