You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Redshift创建线性回归模型报错:numeric类型列不支持作为TARGET

AWS Redshift CREATE MODEL报错:numeric类型列不支持作为TARGET/RETURN的解决方法

问题描述

执行以下CREATE MODEL语句创建线性回归模型时,报错ERROR: numeric column type is not supported by CREATE MODEL as TARGET / RETURN:

CREATE MODEL CostRegressionModel
FROM ( SELECT 
age,
sex,
bmi,
children,
smoker,
region,
charges as target_label
FROM
"dev"."public"."payout_training") 
TARGET target_label
FUNCTION CostRegression
IAM_ROLE 'arn:aws:iam::070649885991:role/LabRole'
MODEL_TYPE LINEAR_LEARNER 
PROBLEM_TYPE REGRESSION
OBJECTIVE 'MSE'
SETTINGS(
    S3_BUCKET 'acmemlout',
    MAX_RUNTIME 15000
);

目标列charges的类型为numeric(10,2),数据表定义如下:

CREATE TABLE public.payout_training (
    id bigint ENCODE az64,
    age integer ENCODE az64,
    sex character varying(256) ENCODE lzo,
    bmi numeric(10, 2) ENCODE az64,
    children integer ENCODE az64,
    smoker character varying(256) ENCODE lzo,
    region
        character varying(256) ENCODE lzo,
        charges numeric(10, 2) ENCODE az64
) DISTSTYLE AUTO;

问题成因

Redshift的CREATE MODEL功能底层依赖AWS SageMaker服务,而SageMaker的Linear Learner算法不支持Redshift的numeric类型作为回归任务的目标变量。虽然Redshift官方文档未明确标注这一限制,但实际数据导出到S3供SageMaker训练时,numeric类型无法被Linear Learner正确解析。

解决方法

方法1:在查询中转换目标列类型

在创建模型的SELECT语句里,将目标列charges转换为DOUBLE PRECISION类型(SageMaker支持的浮点类型):

CREATE MODEL CostRegressionModel
FROM ( SELECT 
age,
sex,
bmi,
children,
smoker,
region,
CAST(charges AS DOUBLE PRECISION) as target_label
FROM
"dev"."public"."payout_training") 
TARGET target_label
FUNCTION CostRegression
IAM_ROLE 'arn:aws:iam::070649885991:role/LabRole'
MODEL_TYPE LINEAR_LEARNER 
PROBLEM_TYPE REGRESSION
OBJECTIVE 'MSE'
SETTINGS(
    S3_BUCKET 'acmemlout',
    MAX_RUNTIME 15000
);

方法2:修改原表列类型(可选)

如果允许修改原表结构,可以直接将charges列的类型改为DOUBLE PRECISION:

ALTER TABLE public.payout_training ALTER COLUMN charges TYPE DOUBLE PRECISION;

修改完成后,原CREATE MODEL语句即可正常执行。

内容的提问来源于stack exchange,提问作者MrMadium

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 16:52:21