代码片段是TensorFlow中特征列(feature columns)的创建过程,用于处理分类和数值数据。这在构建机器学习模型时非常有用,特别是在使用TensorFlow的高级API如TF Estimator时。
这里是代码片段的解释和稍微修改后的版本:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from IPython.display import clear_output
from six.moves import urllib
import tensorflow.compat.v2.feature_column as fc
import tensorflow as tf
# Load dataset.
dftrain = pd.read_csv('https://storage.googleapis.com/tf-datasets/titanic/train.csv') # training data
dfeval = pd.read_csv('https://storage.googleapis.com/tf-datasets/titanic/eval.csv') # testing data
dftrain.head()
y_train = dftrain.pop('survived')
y_eval = dfeval.pop('survived')
# 分类特征列名
CATEGORICAL_COLUMNS = ['sex', 'n_siblings_spouses', 'parch', 'class', 'deck',
'embark_town', 'alone']
# 数值特征列名
NUMERIC_COLUMNS = ['age', 'fare']
feature_columns = [] # 特征列列表
# 为每个分类特征创建一个带有词汇表的分类特征列
for feature_name in CATEGORICAL_COLUMNS:
# 从数据框中获取特征的唯一值列表
vocabulary = dftrain[feature_name].unique()
# 将分类特征列添加到特征列列表
feature_columns.append(tf.feature_column.categorical_column_with_vocabulary_list(feature_name, vocabulary))
# 为每个数值特征创建一个数值特征列
for feature_name in NUMERIC_COLUMNS:
# 将数值特征列添加到特征列列表,指定数据类型为tf.float32
feature_columns.append(tf.feature_column.numeric_column(feature_name, dtype=tf.float32))
# 打印特征列列表
print(feature_columns)
请确保在运行这段代码之前,你已经有一个名为 dftrain
的 pandas
数据框,并且它包含了所有在 CATEGORICAL_COLUMNS
和 NUMERIC_COLUMNS
中指定的列。dftrain
应该包含用于训练模型的数据。
这段代码首先为分类特征创建特征列,使用 categorical_column_with_vocabulary_list
,它需要一个特征名和该特征的所有可能值的列表(词汇表)。然后,为数值特征创建特征列,使用 numeric_column
,它需要一个特征名和数据类型。
在TensorFlow中,特征列是一个非常强大的工具,可以帮助你将原始数据转换为模型可以使用的格式。
标签:数字,特征,feature,column,tf,import,dftrain,5.5 From: https://www.cnblogs.com/qt-pyq/p/18233697