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