2017-07-25 2 views
0

Ma table contient un champ de caractères et deux champs numériques:Comment utiliser des variables indépendantes non numériques lors de la formation d'un modèle de régression linéaire avec MADlib-postgre?

CREATE TABLE lr_source (Char01 varchar(250) 
,PLNumeric01 numeric 
,PLNumeric02 numeric); 

Je veux former le modèle de régression linéaire avec Char01 et PLNumeric01 comme variables indépendantes et PLNumeric02 comme variable dépendante.

SELECT madlib.linregr_train('lr_source', --source table 
          'lr_model',--model table 
          'PLNumeric02', --dependent variable 
          'ARRAY[PLNumeric01, Char01 ]' --independent variables 
          ); 

Quand je suis en cours d'exécution ci-dessus requête, il échoue avec l'erreur suivante:

ERROR: spiexceptions.DatatypeMismatch: ARRAY types numeric and character varying cannot be matched 

Comment puis-je utiliser des champs non numériques comme une variable indépendante?

Répondre

1

Je vous suggère de encodez selon http://madlib.apache.org/docs/master/group__grp__encode__categorical.html qui les rendra vos variables numériques, et vous pouvez les passer à la régression linéaire.

, vous voudrez probablement aussi d'ajouter une interception explicite comme dans les exemples de doc utilisateur:

SELECT madlib.linregr_train('houses', 
          'houses_linregr_bedroom', 
          'price', 
          'ARRAY[1, tax, bath, size]', 
          'bedroom' 
          );