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
il2_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 defeature1
.STDDEV(feature1) OVER()
: Calcula la desviació estàndard defeature1
.(feature1 - AVG(feature1) OVER()) / STDDEV(feature1) OVER()
: Normalitzafeature1
.
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
- Què és BigQuery?
- Configurar el teu entorn de BigQuery
- Comprendre l'arquitectura de BigQuery
- Visió general de la consola de BigQuery
Mòdul 2: SQL bàsic a BigQuery
Mòdul 3: SQL intermedi a BigQuery
Mòdul 4: SQL avançat a BigQuery
- Unions avançades
- Camps niats i repetits
- Funcions definides per l'usuari (UDFs)
- Particionament i agrupament
Mòdul 5: Gestió de dades a BigQuery
- Carregar dades a BigQuery
- Exportar dades de BigQuery
- Transformació i neteja de dades
- Gestió de conjunts de dades i taules
Mòdul 6: Optimització del rendiment de BigQuery
- Tècniques d'optimització de consultes
- Comprendre els plans d'execució de consultes
- Ús de vistes materialitzades
- Optimització de l'emmagatzematge
Mòdul 7: Seguretat i compliment de BigQuery
Mòdul 8: Integració i automatització de BigQuery
- Integració amb serveis de Google Cloud
- Ús de BigQuery amb Dataflow
- Automatització de fluxos de treball amb Cloud Functions
- Programació de consultes amb Cloud Scheduler
Mòdul 9: Aprenentatge automàtic a BigQuery (BQML)
- Introducció a BigQuery ML
- Creació i entrenament de models
- Avaluació i predicció amb models
- Funcions avançades de BQML