更新时间: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;
相关链接
父主题: C