The ML.FEATURE_CROSS function
This document describes the ML.FEATURE_CROSS function, which lets you create
feature crosses.
You can use this function with models that support manual feature preprocessing. For more information, see the following documents:
Syntax
ML.FEATURE_CROSS(struct_categorical_features [, degree])
Arguments
ML.FEATURE_CROSS takes the following arguments:
struct_categorical_features: aSTRUCT<STRING>value that specifies the categorical features to cross. The maximum number of input features is 10. Don't specify unnamed features or duplicate features instruct_numerical_features.degree: anINT64value that specifies the highest degree of all combinations of features in the range of[2, 4]. The default value is2.
Output
ML.FEATURE_CROSS returns a STRUCT<STRING> value that identifies all
combinations of the crossed categorical features with a degree no larger than
the degree value, except for 1-degree items (the original features) and
self-crossing items. The field names in the output struct are concatenations
of the original feature names.
Example
The following example crosses three features:
SELECT ML.FEATURE_CROSS(STRUCT('a' AS f1, 'b' AS f2, 'c' AS f3)) AS output;
The output looks similar to the following:
+---------------------------------------------+
| output |
+---------------------------------------------+
| {"f1_f2":"a_b","f1_f3":"a_c","f2_f3":"b_c"} |
+---------------------------------------------+
What's next
- For information about feature preprocessing, see Feature preprocessing overview.