Big Query

One Hot Encoder

SELECT 
  age, 
  IF(sex = 'female', 0, 1) as gender, 
  bmi, 
  children, 
  IF(smoker = false, 0, 1) AS smoker, 
  IF(region = 'northeast', 1, 0) AS region_northeast,
  IF(region = 'northwest', 1, 0) AS region_northwest,
  IF(region = 'southeast', 1, 0) AS region_southeast,
  IF(region = 'southwest', 1, 0) AS region_southwest,
  charges  
FROM Shop.Insurance;
	

One Hot Encoder with EXECUTE IMMEDIATE

DECLARE regions ARRAY DEFAULT (SELECT ARRAY_AGG(DISTINCT region) FROM `Shop.Insurance`);
EXECUTE IMMEDIATE '''
  SELECT 
  age, 
  IF(sex = "female", 0, 1) as gender, 
  bmi, 
  children, 
  IF(smoker = false, 0, 1) AS smoker,''' ||
  (SELECT STRING_AGG("IF(region='" || reg || "', 1, 0) AS region_" || reg) FROM UNNEST(regions) reg)
  || ''',charges  
FROM Shop.Insurance LIMIT 10
''';