- Web Engineer
- アウトバウンド営業
- Webエンジニア(経験者)
- Other occupations (17)
- Development
- Business
はじめに
今回は BigQuery ML について触れてみたいと思います!
BigQuery ML は、Googleが提供する機械学習を手軽に実行できるサービスです。
最大の特徴は、機械学習の専門知識がなくても、SQL を使うだけで複雑な機械学習プロセスを実行できる点にあります。
この記事では、公式チュートリアルに沿ってGoogle Analytics のデータを活用し、ユーザーが購入するかどうかを予測する回帰モデルを作成し、その結果を分析してみます。
データセットを作成
まず、Google Cloud コンソールで BigQuery ページに移動します。以下の手順でデータセットを作成してください。
- プロジェクト名をクリック
- 「データセットを作成」を選択
- データセット ID を入力
今回はデータセット ID を bqml_tutorial
とします。
また、一般公開データセットを使用するため、リージョンはUS マルチリージョン を選択してください。
回帰モデルを作成
次に、ロジスティック回帰モデルを作成します。
ロジスティック回帰モデルは、2値分類(例: 購入するか/しないか)を行うための機械学習モデルです。特徴量(モデルに入力するデータ)を基に、目的変数(今回の場合は「購入の有無」)を予測します。
BigQuery のクエリエディタを開き、以下のクエリを入力してください。
CREATE OR REPLACE MODEL `bqml_tutorial.sample_model`
OPTIONS(model_type='logistic_reg') AS
SELECT
IF(totals.transactions IS NULL, 0, 1) AS label,
IFNULL(device.operatingSystem, "") AS os,
device.isMobile AS is_mobile,
IFNULL(geoNetwork.country, "") AS country,
IFNULL(totals.pageviews, 0) AS pageviews
FROM
`bigquery-public-data.google_analytics_sample.ga_sessions_*`
WHERE
_TABLE_SUFFIX BETWEEN '20160801' AND '20170630'
このクエリは以下のような動作をします。
CREATE OR REPLACE MODEL
: 新しいモデルを作成する、または既存のモデルを上書きします。OPTIONS(model_type='logistic_reg')
: ロジスティック回帰モデルを指定しています。IF(totals.transactions IS NULL, 0, 1) AS label
: 購入があった場合は 1、それ以外は 0 としてラベルを設定します。このモデルの目的変数(ターゲット変数)です。- その他の列(
os
,is_mobile
,country
,pageviews
)は特徴量としてモデルに入力されます。
特徴量について
os
: ユーザーが利用しているデバイスのOS(例: Android, iOS)。is_mobile
: ユーザーがモバイルデバイスを使用しているかどうかを示すフラグ(モバイルの場合は true)。country
: ユーザーの所在地を表す国名(例: Japan, United States)。pageviews
: ユーザーがセッション中に閲覧したページ数。
これらの特徴量は、ユーザーが購入する可能性に影響を与えると考えられる要素を選択しています。関係のない特徴量を含めるとノイズとなり、モデルの精度を下げる可能性があります。また、特徴量を増やすとモデル作成に要する時間が長くなり、スキャン量も増加するため注意が必要です。
bigquery-public-data.google_analytics_sample.ga_sessions_*
サンプルデータセットはテーブルサフィックスで分割されているため、期間を指定してデータを選択します。全期間を対象にするとモデルの精度検証ができないので今回は 2016年8月1日から2017年6月30日までのデータを基にモデルを作成します。
クエリのプレビュー画面では、右上にスキャン量が表示されます。今回のスキャン量は24MBで、無料枠の範囲内に収まります。BigQueryのスキャン量料金は、1TBあたり約 $6.25 です。詳細については公式ドキュメントをご参照ください。
「実行」ボタンを押すとクエリが実行されます。クエリが完了するまでに数分かかります。
モデル評価結果と分析
BigQueryの「評価」タブでモデルの評価結果を確認できます。
ML.EVALUATE 関数を使用してモデルのパフォーマンスを評価します!この関数は、モデルが生成した予測値を実際のデータと比較し、ロジスティック回帰に特有の指標を含む結果を返します。
モデルの評価には、学習データで使用していない新しいデータを用います。今回は、2017年7月1日から2017年7月31日までのデータを使用して評価を行います。
…
記事の続きは下のURLをクリック!
https://rightcode.co.jp/blogs/49937
エンジニア積極採用中です!
現在、WEBエンジニア、モバイルエンジニア、デザイナー、営業などを積極採用中です!
採用ページはこちら:https://rightcode.co.jp/recruit
社員の声や社風などを知りたい方はこちら:https://rightcode.co.jp/blogs?category=life
社長と一杯飲みながらお話しませんか?(転職者向け)
特設ページはこちら: https://rightcode.co.jp/gohan-sake-president-talk
もっとワクワクしたいあなたへ
現在、ライトコードでは「WEBエンジニア」「モバイルエンジニア」「ゲームエンジニア」、「デザイナー」「WEBディレクター」「営業」などを積極採用中です!
ライトコードは技術力に定評のある受託開発をメインにしているIT企業です。
有名WEBサービスやアプリの受託開発などの企画、開発案件が目白押しの状況です。
- もっと大きなことに挑戦したい!
- エンジニアとしてもっと成長したい!
- モダンな技術に触れたい!
現状に満足していない方は、まずは、エンジニアとしても第一線を走り続ける弊社代表と気軽にお話してみませんか?
ネット上では、ちょっとユルそうな会社に感じると思いますが(笑)、
実は技術力に定評があり、沢山の実績を残している会社ということをお伝えしたいと思っております。
- ライトコードの魅力を知っていただきたい!
- 社風や文化なども知っていただきたい!
- 技術に対して熱意のある方に入社していただきたい!
一度、【Wantedly内の弊社ページ】や【コーポレートサイト】をのぞいてみてください。