feature_columns的项目必须是_FeatureColumn,提供的项目是_VocabularyListCategoricalColumn

我正在尝试从这个数据集创建my_feature_columns列表。我使用以下代码读取它:

train = pd.read_csv(train_path, names=CSV_COLUMN_NAMES, header=0)train = train.drop(['Name', 'SibSp', 'Parch', 'Ticket', 'Fare', 'Cabin', 'Embarked'], axis=1)train.fillna(0, inplace=True)

我只想使用”Pclass”、”Sex”和”Age”。由于Sex只有两种可能的值,我编写了以下代码:

my_feature_columns = [    tf.feature_column.numeric_column(key='Pclass'),    tf.feature_column.categorical_column_with_vocabulary_list(key="Sex", vocabulary_list=["male", "female"]),    tf.feature_column.numeric_column(key='Age'),]

然后我实例化分类器:

classifier = tf.estimator.DNNClassifier(        feature_columns=my_feature_columns,        hidden_units=[10, 10],        n_classes=2)

但我得到了以下错误:

ValueError: feature_columns的项目必须是_DenseColumn。你可以用embedding_column或indicator_column包装一个分类列。提供的项目是_VocabularyListCategoricalColumn(key=’Sex’, vocabulary_list=(‘male’, ‘female’), dtype=tf.string, default_value=0, num_oov_buckets=0)

我是TensorFlow的新手,完全不知道发生了什么。我会很感激任何形式的帮助,提前感谢,并且为我的英语道歉。


回答:

再次阅读文档后,我意识到

指示列和嵌入列永远不会直接作用于特征

所以我修正了我的代码:

categorical_column = tf.feature_column.categorical_column_with_vocabulary_list(key="Sex", vocabulary_list=["male", "female"], default_value=0)my_feature_columns = [    tf.feature_column.numeric_column(key='Pclass'),    tf.feature_column.indicator_column(categorical_column),    tf.feature_column.numeric_column(key='Age')]

这样就完美运行了!

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中创建了一个多类分类项目。该项目可以对…

发表回复

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