Dans Procédure d'apprentissage automatique de base: (1) Modèle de classification, les données sont importées de BigQuery dans l'environnement Python et analysées par scicit-learn.
Cependant, récemment, comme BigQueryML, il est devenu possible d'effectuer un apprentissage automatique uniquement dans BigQuery. Cette fois, je vais essayer BigQuery ML.
Google BigQuery Google Colaboratory
Similaire à Précédent, créez un résultat en réponse à la campagne et product1 ~ en tant que prix d'achat du produit.
id | result | product1 | product2 | product3 | product4 | product5 |
---|---|---|---|---|---|---|
001 | 1 | 2500 | 1200 | 1890 | 530 | null |
002 | 0 | 750 | 3300 | null | 1250 | 2000 |
Jusqu'à présent, BigQuery n'avait que TABLE et VIEW, mais il peut également être enregistré au format MODEL. (Il existe d'autres formats tels que FUNCTION)
from google.cloud import bigquery
query=f"""CREATE OR REPLACE MODEL `myproject.mydataset.mymodel`
OPTIONS
(model_type='logistic_reg', labels = ['result']) AS #Variable objective (variable attendue)
#Prédire à l'aide des variables suivantes
SELECT result, product1, product2, product3, product4, product5
FROM `myproject.mydataset.mytable_training`
"""
job = client.query(query)
result = job.result()
Les trois suivants peuvent être sélectionnés pour model_type. (Il semble que vous puissiez utiliser le modèle Tensorflow, mais je vais l'omettre ici.)
--logistic_reg: analyse de régression logistique (la variable objective est une variable catégorielle) --linear_reg: analyse de régression linéaire (la variable objective est une variable numérique) --kmeans: analyse de cluster
Cette fois, logistic_reg est utilisé car il s'agit de répondre ou non à la promotion.
Appelez le modèle créé par ML.EVALUATE et vérifiez-le à l'aide des données de test.
query=f"""
SELECT
roc_auc, precision, recall
FROM
ML.EVALUATE(MODEL `myproject.mydataset.mymodel`, ( #Appeler le modèle créé
#Valider avec différentes données de test
SELECT result, product1, product2, product3, product4, product5
FROM `myproject.mydataset.mytable_test`
))
"""
job = client.query(query)
result = job.result()
L'exactitude, la précision et le rappel sont utilisés pour évaluer l'exactitude des données de test.
Appelez le modèle créé par ML.PREDICT et appliquez le modèle aux nouvelles données.
query=f"""
SELECT
*
FROM
ML.PREDICT(MODEL `myproject.mydataset.mymodel`, ( #Appeler le modèle créé
#Appliquer le modèle aux nouvelles données
SELECT product1, product2, product3, product4, product5
FROM `myproject.mydataset.mytable`)
);
"""
#Nom de la table du jeu de données du projet à afficher
project = "myproject"
client = bigquery.Client(project=project)
dataset = "mydataset"
ds = client.dataset(dataset)
table = "mytable_predict"
job_config = bigquery.QueryJobConfig()
job_config.destination = ds.table(table)
job = client.query(query, job_config=job_config)
result = job.result()
ML.EVALUATE lors de l'évaluation d'un modèle. Pour postuler, il suffit d'appeler chaque modèle créé par ML.PREDICT. C'est assez facile à utiliser.
Les méthodes qui peuvent être utilisées sont encore limitées, mais il est plus facile à utiliser que lors de sa création avec Procédure d'apprentissage automatique de base: ① Modèle de classification. ..
D'un autre côté, si vous pouvez le faire si facilement, vous vous demanderez quoi faire lorsque vous essayez d'améliorer le modèle. Je me demande si cela va s'améliorer en fonction de la variable utilisée.
Recommended Posts