Как использовать нечисловые независимые переменные при обучении модели линейной регрессии с помощью 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'
                           );
Другие вопросы по тегам