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 .

