2017-07-11 1 views
0

Plus précisément, quelle est la différence dans la façon dont H2O traite enum et string types de données par opposition aux « int's et » types numerical »?H2O Débit: Comment les types de données traitement de l'interface utilisateur de flux H2O différemment

Par exemple, dire que j'ai un classificateur binaire qui prend des échantillons d'entrée qui ont des caractéristiques

x1=(1 of 10 possible favorite ice cream flavors (enum)) 

x2=(some random phrase (string)) 

x3=(some number (int)) 

Quelle serait la différence dans la façon dont le classificateur traite ces types pendant la formation?

Lors du téléchargement de données dans h2o flux UI, j'ai la possibilité de convertir certains types de données (comme enum) en «numérique». Cela me fait penser qu'il n'y a pas que le mappage de chaîne à numéro quand je laisse juste le 'enum' comme 'enum' (ne pas convertir en type 'numerical'), mais je ne trouve pas d'information sur quoi cette différence est.

clarification serait apprécié, Merci de

Répondre

0

type « ENUM » est le type de codage vous voulez utiliser pour les fonctions catégoriques. Si les entités catégorielles sont codées comme "enum", alors les algorithmes basés sur l'arbre comme Random Forest et GBM seront capables de gérer ces fonctionnalités de manière intelligente. La plupart des autres implémentations de RF et de GBM vous forcent à faire une expansion à chaud des entités catégorielles (en K colonnes factices), mais dans H2O, les méthodes arborescentes peuvent utiliser ces fonctionnalités sans aucune extension. Le whay exact que les variables sont traitées peut être contrôlé en utilisant l'argument categorical_encoding.

Si vous avez une variable catégorique ordonnée, alors il peut être correct de l'encoder comme "int", cependant, l'effet de faire cela sur les performances du modèle dépendra des données.

Si vous deviez convertir une colonne à « numérique » qui encodez chaque catégorie « enum » comme un entier et vous perdriez l'idée que ces chiffres représentent des catégories (il est donc pas recommandé).

Vous ne devriez pas utiliser le type "chaîne" dans H2O, sauf si vous allez exclure cette colonne de l'ensemble des prédicteurs. Il serait judicieux d'utiliser une colonne "chaîne" pour le texte, mais vous voudrez probablement analyser (par exemple tokenize) ce texte pour générer de nouvelles fonctionnalités numériques ou enum qui seront incluses dans l'ensemble des prédicteurs.