更新时间:2024-08-20 GMT+08:00

CREATE MODEL

功能描述

训练机器学习模型并保存模型。

注意事项

  • 模型名称具有唯一性约束,注意命名格式。
  • AI训练时长波动较大,在部分情况下训练运行时间较长,设置的GUC参数statement_timeout时长过短会导致训练中断。建议statement_timeout设置为0,不对语句执行时长进行限制。

语法格式

CREATE  MODEL model_name USING architecture_name
FEATURES { {attribute_list} }
[TARGET attribute_name],
FROM ([schema.]table_name | subquery)
[WITH ([hyper_parameter_name = {hp_value | DEFAULT},]...)];

参数说明

  • model_name

    对训练模型进行命名,模型名称具有唯一性约束。

    取值范围:字符串,需要符合标识符命名规范

  • architecture_name

    训练模型的算法类型。

    取值范围:字符型,当前支持:logistic_regression、linear_regression、svm_classification、kmeans。

  • attribute_list

    枚举训练模型的输入列名。

    取值范围:字符型,需要符合数据属性名的命名规范。

  • attribute_name

    在监督学习任务中训练模型的目标列名(可进行简单的表达式处理)。

    取值范围:字符型,需要符合数据属性名的命名规范。

  • subquery

    数据源。

    取值范围:字符串,符合数据库SQL语法。

  • hyper_parameter_name

    机器学习模型的超参名称。

    取值范围:字符串,针对不同算法超参类型范围不同,取值范围详情请参考《特性指南》的“DB4AI: 数据库驱动AI > 原生DB4AI引擎”章节中“算子支持的超参”表的内容。

  • hp_value

    超参数值。

    取值范围:字符串,针对不同算法范围不同,取值范围详情请参考《特性指南》的“DB4AI: 数据库驱动AI > 原生DB4AI引擎”章节中“超参的默认值以及取值范围”表的内容。

示例

--创建数据表。
gaussdb=# CREATE TABLE houses (
id INTEGER,
tax INTEGER,
bedroom INTEGER,
bath DOUBLE PRECISION,
price INTEGER,
size INTEGER,
lot INTEGER,
mark text
);

--插入训练数据。
gaussdb=# INSERT INTO houses(id, tax, bedroom, bath, price, size, lot, mark) VALUES
(1,590,2,1,50000,770,22100,'a+'),
(2,1050,3,2,85000,1410,12000,'a+'),
(3,20,2,1,22500,1060,3500,'a-'),
(4,870,2,2,90000,1300,17500,'a+'),
(5,1320,3,2,133000,1500,30000,'a+'),
(6,1350,2,1,90500,850,25700,'a-'),
(7,2790,3,2.5,260000,2130,25000,'a+'),
(8,680,2,1,142500,1170,22000,'a-'),
(9,1840,3,2,160000,1500,19000,'a+'),
(10,3680,4,2,240000,2790,20000,'a-'),
(11,1660,3,1,87000,1030,17500,'a+'),
(12,1620,3,2,118500,1250,20000,'a-'),
(13,3100,3,2,140000,1760,38000,'a+'),
(14,2090,2,3,148000,1550,14000,'a-'),
(15,650,3,1.5,65000,1450,12000,'a-');

--训练模型。
gaussdb=# CREATE MODEL price_model USING logistic_regression
 FEATURES size, lot
 TARGET mark
 FROM HOUSES
 WITH learning_rate=0.88, max_iterations=default;

--删除模型。
gaussdb=# DROP MODEL price_model;

--删除表。
gaussdb=# DROP TABLE houses;

相关链接

DROP MODELPREDICT BY