The ML.POLYNOMIAL_EXPAND function

This document describes the ML.POLYNOMIAL_EXPAND function, which lets you calculate all polynomial combinations of the input features.

Syntax

ML.POLYNOMIAL_EXPAND(struct_numerical_features [, degree])

Arguments

ML.POLYNOMIAL_EXPAND takes the following arguments:

  • struct_numerical_features: a STRUCT value that contains the numerical input features to expand. You can specify less than or equal to 10 input features. Don't specify unnamed features or duplicate features.
  • degree: an INT64 value that specifies the highest degree of all combinations in the range of [1, 4]. The default value is 2.

Output

ML.POLYNOMIAL_EXPAND returns a STRUCT<STRING> value that contain all polynomial combinations of the numerical input features with a degree no larger than the passed-in degree, including the original features. The field names of the output struct are concatenations of the original feature names.

Example

The following example calculates the polynomial expansion of two numerical features:

SELECT
  ML.POLYNOMIAL_EXPAND(STRUCT(2 AS f1, 3 AS f2)) AS output;

The output looks similar to the following:

+-------------------------------------------------------------------+
|                              output                               |
+-------------------------------------------------------------------+
| {"f1":"2.0","f1_f1":"4.0","f1_f2":"6.0","f2":"3.0","f2_f2":"9.0"} |
+-------------------------------------------------------------------+

What's next