Specify Model Settings
Understand how to configure machine learning models at build time.
Numerous configuration settings are available for configuring machine learning models at build time. To specify settings, create a settings table with the columns shown in the following table and pass the table to CREATE_MODEL.
You can use CREATE_MODEL2 procedure where you can directly pass the model settings to a variable that can be used in the procedure. The variable can be declared with DBMS_DATA_MINING.SETTING_LIST procedure.
Table 4-1 Settings Table Required Columns
| Column Name | Data Type |
|---|---|
|
|
|
|
|
|
Example 4-1 creates a settings table for a Support Vector Machine (SVM) classification model. Since SVM is not the default classifier, the ALGO_NAME setting is used to specify the algorithm. Setting the SVMS_KERNEL_FUNCTION to SVMS_LINEAR causes the model to be built with a linear kernel. If you do not specify the kernel function, the algorithm chooses the kernel based on the number of attributes in the data.
Example 4-2 creates a model with the model settings that are stored in a variable from SETTING_LIST.
Some settings apply generally to the model, others are specific to an algorithm. Model settings are referenced in Table 4-2 and Table 4-3.
Table 4-2 General Model Settings
| Settings | Description |
|---|---|
|
Machine learning function settings |
|
|
Algorithm names |
|
|
Global model characteristics |
|
|
Automatic Data Preparation |
Table 4-3 Algorithm-Specific Model Settings
| Algorithm | Description |
|---|---|
|
CUR Matrix Decomposition |
DBMS_DATA_MINING —Algorithm Settings: CUR Matrix Decomposition |
|
Decision Tree |
|
|
Expectation Maximization |
DBMS_DATA_MINING —Algorithm Settings: Expectation Maximization |
|
Explicit Semantic Analysis |
DBMS_DATA_MINING —Algorithm Settings: Explicit Semantic Analysis |
|
Exponential Smoothing |
DBMS_DATA_MINING —Algorithm Settings: Exponential Smoothing Models |
|
Generalized Linear Model |
DBMS_DATA_MINING —Algorithm Settings: Generalized Linear Models |
|
k-Means |
|
|
Multivariate State Estimation Technique - Sequential Probability Ratio Test |
|
|
Naive Bayes |
|
|
Neural Network |
|
|
Non-Negative Matrix Factorization |
DBMS_DATA_MINING —Algorithm Settings: Non-Negative Matrix Factorization |
|
O-Cluster |
|
|
Random Forest |
|
|
Singular Value Decomposition |
DBMS_DATA_MINING —Algorithm Settings: Singular Value Decomposition |
|
Support Vector Machine |
DBMS_DATA_MINING —Algorithm Settings: Support Vector Machine |
|
XGBoost |
Note:
Some XGBoost objectives apply only to classification function models and other objectives apply only to regression function models. If you specify an incompatible objective value, an error is raised. In the DBMS_DATA_MINING.CREATE_MODEL procedure, if you specify DBMS_DATA_MINING.CLASSIFICATION as the function, then the only objective values that you can use are the binary and multi values. The one exception is binary: logitraw, which produces a continuous value and applies only to a regression model. If you specify DBMS_DATA_MINING.REGRESSION as the function, then you can specify binary: logitraw or any of the count, rank, reg, and survival values as the objective.
The values for the XGBoost objective setting are listed in the Settings for Learning Tasks table in DBMS_DATA_MINING — Algorithm Settings: XGBoost.
Example 4-1 Creating a Settings Table and Creating an SVM Classification Model Using CREATE.MODEL procedure
CREATE TABLE svmc_sh_sample_settings (
setting_name VARCHAR2(30),
setting_value VARCHAR2(4000));
BEGIN
INSERT INTO svmc_sh_sample_settings (setting_name, setting_value) VALUES
(dbms_data_mining.algo_name, dbms_data_mining.algo_support_vector_machines);
INSERT INTO svmc_sh_sample_settings (setting_name, setting_value) VALUES
(dbms_data_mining.svms_kernel_function, dbms_data_mining.svms_linear);
COMMIT;
END;
/
-- Create the model using the specified settings
BEGIN
DBMS_DATA_MINING.CREATE_MODEL(
model_name => 'svm_model',
mining_function => dbms_data_mining.classification,
data_table_name => 'mining_data_build_v',
case_id_column_name => 'cust_id',
target_column_name => 'affinity_card',
settings_table_name => 'svmc_sh_sample_settings');
END;Example 4-2 Specify Model Settings for a GLM Regression Model Using CREATE_MODEL2 procedure
DECLARE
v_setlist DBMS_DATA_MINING.SETTING_LIST;
BEGIN
v_setlist('PREP_AUTO') := 'ON';
v_setlist('ALGO_NAME') := 'ALGO_GENERALIZED_LINEAR_MODEL';
v_setlist('GLMS_DIAGNOSTICS_TABLE_NAME') := 'GLMR_DIAG';
v_setlist('GLMS_FTR_SELECTION') := 'GLMS_FTR_SELECTION_ENABLE';
v_setlist('GLMS_FTR_GENERATION') := 'GLMS_FTR_GENERATION_ENABLE';
DBMS_DATA_MINING.CREATE_MODEL2(
MODEL_NAME => 'GLM_REGR',
MINING_FUNCTION => 'REGRESSION',
DATA_QUERY => 'select * from TRAINING_DATA',
SET_LIST => v_setlist,
CASE_ID_COLUMN_NAME => 'HID',
TARGET_COLUMN_NAME => 'MEDV');
END;Related Topics
Model Settings
Oracle Machine Learning uses settings to specify the algorithm and model settings or hyperparameters. Some settings are general, some are specific to a machine learning function, and some are specific to an algorithm.
OML4SQL
- DBMS_DATA_MINING - Model Settings
- DBMS_DATA_MINING - Solver Settings
- Summary of DBMS_DATA_MINING Subprograms
- DBMS_DATA_MINING_TRANSFORM
- DBMS_PREDICTIVE_ANALYTICS
- Oracle Machine Learning Data Dictionary Views
- Model Detail Views
- Oracle Machine Learning SQL Statistical Functions
- Oracle Machine Learning for SQL Scoring Functions
- OML4SQL Examples on GitHub