Je commence un projet Tensorflow et je suis en train de définir et de créer mes colonnes de fonctions. Cependant, j'ai des centaines et des centaines de caractéristiques - c'est un ensemble de données assez vaste. Même après le prétraitement et le récurage, j'ai beaucoup de colonnes.Création de nombreuses colonnes de fonctions dans Tensorflow
La manière traditionnelle de créer un feature_column
est définie dans le Tensorflow tutorial et même ce StackOverflow post. Vous déclarez essentiellement et initialiser un objet tensorflow pour chaque colonne de fonction:
gender = tf.feature_column.categorical_column_with_vocabulary_list(
"gender", ["Female", "Male"])
Cela fonctionne très bien si votre ensemble de données ne dispose que de quelques colonnes, mais dans mon cas, je ne veux sûrement pas d'avoir des centaines de lignes de code initialisant différents objets feature_column
.
Quelle est la meilleure façon de résoudre ce problème? Je remarque que dans le tutoriel, toutes les colonnes sont collectées sous forme de liste:
base_columns = [
gender, native_country, education, occupation, workclass, relationship,
age_buckets,
]
qui est finalement passé dans votre estimateur:
m = tf.estimator.LinearClassifier(
model_dir=model_dir, feature_columns=base_columns)
Ainsi serait le moyen idéal de gérer feature_column
création pour des centaines de colonnes être de les ajouter directement dans une liste? Quelque chose comme ça?
my_columns = []
for col in df.columns:
if is_string_dtype(df[col]): #is_string_dtype is pandas function
my_column.append(tf.feature_column.categorical_column_with_hash_bucket(col,
hash_bucket_size= len(df[col].unique())))
elif is_numeric_dtype(df[col]): #is_numeric_dtype is pandas function
my_column.append(tf.feature_column.numeric_column(col))
Est-ce la meilleure façon de créer ces colonnes de fonctions? Ou est-ce que je manque une fonctionnalité à Tensorflow qui me permet de contourner cette étape?
Ce que vous avez a du sens pour moi. :) – greeness
Pouvez-vous promouvoir cela à une réponse, @ verdure? Merci! :) – dga
D'accord, cela n'ajoute rien à la question d'op. – greeness