ML_TRAIN
在标记的训练数据集上
运行
例程会生成经过训练的机器学习模型。
CALL sys.ML_TRAIN ('table_name', 'target_column_name', [options], model_handle);
options: {
JSON_OBJECT('key','value'[,'key','value'] ...)
'key','value':
|'task', {'classification'|'regression'|'forecasting'}|NULL
|'datetime_index', 'column'
|'endogenous_variables', JSON_ARRAY('column')
|'model_list', JSON_ARRAY('model'[,'model'] ...)
|'exclude_model_list', JSON_ARRAY('model'[,'model'] ...)
|'optimization_metric', 'metric'
|'exclude_column_list', JSON_ARRAY('column'[,'column'] ...)
}
运行的MySQL账号名称中
ML_TRAIN
不能有句号(“.”);例如,
允许名为 name 的用户训练模型,但不允许名为 name 的用户
。有关此限制的更多信息,请参阅
第 3.13 节“限制”。
'joesmith'@'
%
''joe.smith'@'
%
'
从 MySQL HeatWave 8.0.31 开始,在使用
ML_TRAIN
例程后,使用
ML_EXPLAIN
例程为 HeatWave ML 训练预测解释器和模型解释器。您必须训练预测解释器才能使用
ML_EXPLAIN_ROW
和
ML_EXPLAIN_TABLE
。在早期版本中,
ML_TRAIN
例程训练默认的排列重要性模型和预测解释器。请参阅
第 3.5 节,“培训解释器”。
ML_TRAIN
参数:
table_name
:包含标记训练数据集的表的名称。表名必须有效且完全合格;也就是说,它必须包含架构名称 (schema_name.table_name
)。该表不能超过 10 GB、1 亿行或 900 列。target_column_name
:包含参考标准值的目标列的名称。-
model_handle
:用户定义的会话变量的名称,用于在连接期间存储机器学习模型句柄。用户变量写为 . 本指南中的一些示例 用作变量名称。允许用户定义变量的任何有效名称(例如,)。@
var_name
@census_model
@my_model
从 MySQL 8.0.31 开始,如果您
model_handle
在调用之前将变量设置为一个值ML_TRAIN
,则该模型句柄将用于该模型。您设置的模型句柄在模型目录中必须是唯一的。否则,HeatWave ML 会生成一个模型句柄。执行完成
ML_TRAIN
后,您可以通过查询会话变量来检索生成的模型句柄。请参阅 第 3.9.8 节,“模型句柄”。 -
options
JSON_OBJECT()
: 可选参数,格式为键值对 。如果未指定选项,则使用默认设置。如果没有指定选项,您可以指定NULL
代替JSON_OBJECT()
参数。-
task
:指定机器学习任务。允许的值为:classification
:默认。如果目标是离散值,则使用此任务类型。regression
:如果目标列是连续数值,则使用此任务类型。forecasting
:如果目标列是需要时间序列预测的日期时间列,请使用此任务类型。datetime_index
指定此任务类型时需要 和 参数endogenous_variables
。
datetime_index
:对于预测任务,用作预测变量索引的日期时间列的列名。该列可以是受支持的日期时间列类型之一(DATETIME
、TIMESTAMP
、DATE
、TIME
和YEAR
),也可以是自动递增索引。endogenous_variables
:对于预测任务,需要预测的列。预测函数支持单个数字列,指定为 JSON 数组。该列也必须在例程的target_column_name
选项中 指定ML_TRAIN
,因为该字段是必需的,但在该位置未使用。-
model_list
:要训练的模型类型。如果指定了多个模型,则从列表中选择最佳模型类型。有关受支持模型类型的列表,请参阅 模型类型。该选项不能与
exclude_model_list
选项一起使用。 -
exclude_model_list
:不应训练的模型类型。在模型选择过程中,指定的模型类型被排除在外。有关您可以指定的模型类型的列表,请参阅 模型类型。此选项不能与
model_list
选项一起指定。 optimization_metric
:训练机器学习模型时要优化的评分指标。指标必须与task
类型(classification
、regression
或forecasting
)和目标数据兼容。有关受支持指标的列表,请参阅 评分指标。exclude_column_list
:在训练模型时要排除的训练数据集的特征列。使用排除的列exclude_column_list
不需要从用于预测的数据集中排除。
-
下面列出了 HeatWave 机器学习支持的分类、回归和预测训练模型。训练模型时,您可以使用
和
选项指定应考虑或排除的训练模型。
ML_TRAIN
model_list
exclude_model_list
下面列出了支持的评分指标。optimization_metric
训练模型时,您可以使用该选项
针对特定评分指标进行优化。
评分指标必须与
task
类型(classification
、
regression
或
forecasting
)和目标数据兼容。例如,如果您正在使用具有二元目标的分类数据集,则只能为二元目标指定分类评分指标,例如
f1
.
-
分类指标
-
回归指标
-
预测指标
-
ML_TRAIN
隐式使用classification
任务选项 的 示例(classification
如果未明确指定,则为默认选项):CALL sys.ML_TRAIN('ml_data.iris_train', 'class', NULL, @iris_model);
-
An
ML_TRAIN
example that specifies theclassification
task type explicitly, and sets a model handle instead of letting HeatWave ML generate one:SET @iris_model = 'iris_manual'; CALL sys.ML_TRAIN('ml_data.iris_train', 'class', JSON_OBJECT('task', 'classification'), @iris_model);
-
An
ML_TRAIN
example that specifies theregression
task type:CALL sys.ML_TRAIN('employee.salary_train', 'salary', JSON_OBJECT('task', 'regression'), @salary_model);
-
An
ML_TRAIN
example that specifies theforecasting
task type and the additional required parametersdatetime_index
andendogenous_variables
:CALL sys.ML_TRAIN('ml_data.opsd_germany_daily_train', 'consumption', JSON_OBJECT('task', 'forecasting', 'datetime_index', 'ddate', 'endogenous_variables', JSON_ARRAY('consumption')), @forecast_model);
-
ML_TRAIN
指定model_list
选项 的 示例。此示例训练XGBClassifier
orLGBMClassifier
模型。CALL sys.ml_train('ml_data.iris_train', 'class', JSON_OBJECT('task','classification', 'model_list', JSON_ARRAY('XGBClassifier', 'LGBMClassifier')) , @iris_model);
-
ML_TRAIN
指定exclude_model_list
选项 的 示例。在此示例中,LogisticRegression
模型GaussianNB
被排除在模型选择之外。CALL sys.ml_train('ml_data.iris_train', 'class', JSON_OBJECT('task','classification', 'exclude_model_list', JSON_ARRAY('LogisticRegression', 'GaussianNB')) , @iris_model);
-
ML_TRAIN
指定optimization_metric
选项 的 示例。CALL sys.ml_train('ml_data.iris_train', 'class', JSON_OBJECT('task','classification', 'optimization_metric', 'neg_log_loss') , @iris_model);
-
ML_TRAIN
指定exclude_column_list
选项 的 示例。CALL sys.ml_train('ml_data.iris_train', 'class', JSON_OBJECT('task','classification', 'exclude_column_list', JSON_ARRAY('sepal length', 'petal length')) , @iris_model);