En aquest tema, explorarem les funcions avançades de BigQuery ML (BQML) que permeten als usuaris crear models d'aprenentatge automàtic més sofisticats i personalitzats. Aquestes funcions inclouen la personalització de models, l'ús de tècniques avançades de preprocesament de dades, i la integració amb altres eines de Google Cloud.

Continguts

Personalització de models

Hiperparàmetres

Els hiperparàmetres són paràmetres que es configuren abans de l'entrenament del model i que poden influir significativament en el rendiment del model. A BQML, podem ajustar diversos hiperparàmetres per optimitzar els nostres models.

Exemple de codi

CREATE OR REPLACE MODEL `project.dataset.model_name`
OPTIONS(
  model_type='linear_reg',
  l1_reg=0.1,
  l2_reg=0.1,
  learn_rate=0.01,
  max_iterations=100
) AS
SELECT
  feature1,
  feature2,
  label
FROM
  `project.dataset.table_name`;

Explicació

  • model_type: Tipus de model (per exemple, 'linear_reg' per a regressió lineal).
  • l1_reg i l2_reg: Regularització L1 i L2 per evitar el sobreajustament.
  • learn_rate: Taxa d'aprenentatge.
  • max_iterations: Nombre màxim d'iteracions per a l'entrenament.

Tècniques avançades de preprocesament de dades

Normalització i estandardització

La normalització i l'estandardització són tècniques de preprocesament de dades que ajuden a millorar el rendiment dels models d'aprenentatge automàtic.

Exemple de codi

WITH normalized_data AS (
  SELECT
    (feature1 - AVG(feature1) OVER()) / STDDEV(feature1) OVER() AS feature1,
    (feature2 - AVG(feature2) OVER()) / STDDEV(feature2) OVER() AS feature2,
    label
  FROM
    `project.dataset.table_name`
)
CREATE OR REPLACE MODEL `project.dataset.model_name`
OPTIONS(model_type='linear_reg') AS
SELECT
  feature1,
  feature2,
  label
FROM
  normalized_data;

Explicació

  • AVG(feature1) OVER(): Calcula la mitjana de feature1.
  • STDDEV(feature1) OVER(): Calcula la desviació estàndard de feature1.
  • (feature1 - AVG(feature1) OVER()) / STDDEV(feature1) OVER(): Normalitza feature1.

Integració amb TensorFlow

BQML permet la integració amb TensorFlow per a la creació de models més complexos i personalitzats.

Exemple de codi

CREATE OR REPLACE MODEL `project.dataset.model_name`
OPTIONS(
  model_type='tensorflow',
  model_path='gs://bucket_name/model_directory'
) AS
SELECT
  feature1,
  feature2,
  label
FROM
  `project.dataset.table_name`;

Explicació

  • model_type='tensorflow': Indica que el model utilitza TensorFlow.
  • model_path: Ruta al model de TensorFlow emmagatzemat a Google Cloud Storage.

Optimització de models

Validació creuada

La validació creuada és una tècnica per avaluar el rendiment del model de manera més robusta.

Exemple de codi

CREATE OR REPLACE MODEL `project.dataset.model_name`
OPTIONS(
  model_type='linear_reg',
  kfold=5
) AS
SELECT
  feature1,
  feature2,
  label
FROM
  `project.dataset.table_name`;

Explicació

  • kfold=5: Divideix les dades en 5 parts per a la validació creuada.

Exercicis pràctics

Exercici 1: Ajustar hiperparàmetres

Descripció: Ajusta els hiperparàmetres d'un model de regressió lineal per millorar el seu rendiment.

Codi inicial:

CREATE OR REPLACE MODEL `project.dataset.model_name`
OPTIONS(
  model_type='linear_reg'
) AS
SELECT
  feature1,
  feature2,
  label
FROM
  `project.dataset.table_name`;

Solució suggerida:

CREATE OR REPLACE MODEL `project.dataset.model_name`
OPTIONS(
  model_type='linear_reg',
  l1_reg=0.05,
  l2_reg=0.05,
  learn_rate=0.005,
  max_iterations=200
) AS
SELECT
  feature1,
  feature2,
  label
FROM
  `project.dataset.table_name`;

Exercici 2: Normalitzar dades

Descripció: Normalitza les dades abans d'entrenar un model de regressió lineal.

Codi inicial:

CREATE OR REPLACE MODEL `project.dataset.model_name`
OPTIONS(
  model_type='linear_reg'
) AS
SELECT
  feature1,
  feature2,
  label
FROM
  `project.dataset.table_name`;

Solució suggerida:

WITH normalized_data AS (
  SELECT
    (feature1 - AVG(feature1) OVER()) / STDDEV(feature1) OVER() AS feature1,
    (feature2 - AVG(feature2) OVER()) / STDDEV(feature2) OVER() AS feature2,
    label
  FROM
    `project.dataset.table_name`
)
CREATE OR REPLACE MODEL `project.dataset.model_name`
OPTIONS(model_type='linear_reg') AS
SELECT
  feature1,
  feature2,
  label
FROM
  normalized_data;

Conclusió

En aquest tema, hem explorat diverses funcions avançades de BQML que permeten personalitzar i optimitzar models d'aprenentatge automàtic. Hem après a ajustar hiperparàmetres, aplicar tècniques avançades de preprocesament de dades, integrar models amb TensorFlow i utilitzar la validació creuada per avaluar el rendiment dels models. Aquests coneixements ens permetran crear models més precisos i eficients a BigQuery.

Curs de BigQuery

Mòdul 1: Introducció a BigQuery

Mòdul 2: SQL bàsic a BigQuery

Mòdul 3: SQL intermedi a BigQuery

Mòdul 4: SQL avançat a BigQuery

Mòdul 5: Gestió de dades a BigQuery

Mòdul 6: Optimització del rendiment de BigQuery

Mòdul 7: Seguretat i compliment de BigQuery

Mòdul 8: Integració i automatització de BigQuery

Mòdul 9: Aprenentatge automàtic a BigQuery (BQML)

Mòdul 10: Casos d'ús de BigQuery en el món real

© Copyright 2024. Tots els drets reservats