In Grundlegendes maschinelles Lernverfahren: (1) Klassifizierungsmodell werden Daten aus BigQuery in die Python-Umgebung importiert und durch Scicit-Learn analysiert.
In letzter Zeit ist es jedoch wie bei BigQueryML möglich geworden, maschinelles Lernen nur in BigQuery durchzuführen. Dieses Mal werde ich BigQuery ML ausprobieren.
Google BigQuery Google Colaboratory
Erstellen Sie ähnlich wie bei Zurück das Ergebnis als Antwort der Kampagne und das Produkt1 ~ als Kaufpreis des Produkts.
id | result | product1 | product2 | product3 | product4 | product5 |
---|---|---|---|---|---|---|
001 | 1 | 2500 | 1200 | 1890 | 530 | null |
002 | 0 | 750 | 3300 | null | 1250 | 2000 |
Bisher hatte BigQuery nur TABLE und VIEW, kann aber auch im MODEL-Format gespeichert werden. (Es gibt andere Formate wie FUNCTION)
from google.cloud import bigquery
query=f"""CREATE OR REPLACE MODEL `myproject.mydataset.mymodel`
OPTIONS
(model_type='logistic_reg', labels = ['result']) AS #Zielvariable (erwartete Variable)
#Vorhersage mit den folgenden Variablen
SELECT result, product1, product2, product3, product4, product5
FROM `myproject.mydataset.mytable_training`
"""
job = client.query(query)
result = job.result()
Die folgenden drei können für model_type ausgewählt werden. (Es scheint, dass Sie das Tensorflow-Modell verwenden können, aber ich werde es hier weglassen.)
--logistic_reg: Logistische Regressionsanalyse (Zielvariable ist kategoriale Variable) --linear_reg: Lineare Regressionsanalyse (Zielvariable ist eine numerische Variable) --kmeans: Clusteranalyse
Dieses Mal wird logistic_reg verwendet, da festgelegt wird, ob auf die Aktion reagiert werden soll oder nicht.
Rufen Sie das von ML.EVALUATE erstellte Modell auf und überprüfen Sie es anhand der Testdaten.
query=f"""
SELECT
roc_auc, precision, recall
FROM
ML.EVALUATE(MODEL `myproject.mydataset.mymodel`, ( #Rufen Sie das erstellte Modell auf
#Validieren Sie mit verschiedenen Testdaten
SELECT result, product1, product2, product3, product4, product5
FROM `myproject.mydataset.mytable_test`
))
"""
job = client.query(query)
result = job.result()
Genauigkeit, Präzision und Rückruf werden verwendet, um die Genauigkeit der Testdaten zu bewerten.
Rufen Sie das von ML.PREDICT erstellte Modell auf und wenden Sie das Modell auf die neuen Daten an.
query=f"""
SELECT
*
FROM
ML.PREDICT(MODEL `myproject.mydataset.mymodel`, ( #Rufen Sie das erstellte Modell auf
#Wenden Sie das Modell auf die neuen Daten an
SELECT product1, product2, product3, product4, product5
FROM `myproject.mydataset.mytable`)
);
"""
#Name der auszugebenden Projektdatensatztabelle
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 bei der Bewertung eines Modells. Um sich zu bewerben, rufen Sie einfach jedes von ML.PREDICT erstellte Modell auf. Es ist ziemlich einfach zu bedienen.
Die Methoden, die verwendet werden können, sind noch begrenzt, aber einfacher zu verwenden als bei der Erstellung mit Grundlegendes maschinelles Lernverfahren: ① Klassifizierungsmodell. ..
Wenn Sie es jedoch so einfach machen können, werden Sie sich fragen, was Sie tun sollen, wenn Sie versuchen, das Modell zu verbessern. Ich frage mich, ob es sich verbessern wird, je nachdem welche Variable verwendet wird.
Recommended Posts