2017-07-25 81 views
0

我的表中包含一个字符字段和两个数值字段:如何在使用MADlib-postgre训练线性回归模型时使用非数字自变量?

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

我想训练线性回归模型Char01和PLNumeric01作为自变量,PLNumeric02作为因变量。

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

当我上面的查询运行时,出现以下错误:

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

如何使用非数字字段作为一个独立的变量?

回答

1

我建议你编码你的分类变量按照 http://madlib.apache.org/docs/master/group__grp__encode__categorical.html 这将使他们数字,然后你可以将它们传递给线性回归。

此外,你可能会希望增加一个显像拦截在用户文档的例子:

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