Google BigQueryでお手軽機械学習(BQML)

BigQuery ML(BQML)では 線形回帰 ロジスティック回帰 k-meansクラスタリング AutoML Tables XGBoost DNN 時系列(ARIMA) が使える。当初は線形回帰とロジスティック回帰だけだったが今では実用的な手法が増えた。何よりもXGBoostが使えるようになったのが大きい。 XGBoostのメリット XGBoostは語弊を恐れずに言うと特に何も考えなくてもそれなりの精度が出る、素人でもそこそこのアウトプットを出せてしまう手法である。これまでの線形回帰やロジスティック回帰は前提条件が扱いが難しい手法だった。 XGBoostがお手軽というのは、 正規化不要 カ…

続きを読む →

BigQueryで列可変のテーブルからcos類似度を計算する

BigQueryはビッグデータを扱える高速安価なデータウェアハウスとして知られているが、 あまりに高速であるためにDWH(つまりデータベース)としての使い方にとどまらず、 さまざまな数学的な計算処理に使われることがある。 一般的に数学的な処理をする場合、普通はBigQueryでは基本的な集計までにとどめ、 あとはPythonやRなどの言語からBigQueryのデータを読み込んで計算処理をすることが多い。 Rなどは計算処理専門の言語なので、BigQueryより関数も充実している。 しかしBigQueryだけでそういった処理を完結できるならそれは望ましい。 プログラミング言語を使おうとすると、それ…

続きを読む →

GA4の計測検証をBigQueryを使って行う

GA4の計測の検証はBigQueryエクスポートを使って行うのが普通になる。検証の方法にはいくつかあるのだが、ほかの方法だと欠点がある。 リアルタイムレポートではイベントが発生し、パラメータに値が入ってきているのはわかるが、どのイベントでどのパラメータの値が入っているかまではわからない。DebugViewは有効化しないと使えない。 BigQueryエクスポートを使うとすべてのサイト訪問に対して計測して数分以内には各パケット(イベント)でどのパラメータにどの値が入っているかがわかるし、詳細な検証ができる。これはユニバーサルアナリティクスにはなかったメリットである(GA360を除く)。 GA4のB…

続きを読む →

ウェブログからSQLで指標を計算する8構文~GA4のBigQueryを題材に

Googleアナリティクス4プロパティが登場し、誰でもBigQueryにログを出力できるようになった。ログ分析を始める環境は揃ったわけだが、ログ分析のノウハウはあまり世に出ていない。SQLを使ってこれらを分析する方法を少し紹介する。どんな高度なログ分析をするにしても、これが基本となる。 ウェブ分析の指標 ウェブ分析の基本は ページビュー数 セッション数 人数 のカウントである。複雑な分析も、結局カウントしているのはこの3つの指標に集約されることが多い。Eコマースになると購入金額の合計なども入ってくることはある。 そしてこれに「○○した」という条件が付いて イベント○○が発生した回数 ○○したペ…

続きを読む →

Googleアナリティクス4で管理画面だけでコンバージョン設定する

Googleアナリティクス4は当初コンバージョン設定するためにはコンバージョン対象ページでタグをカスタマイズする必要があったのだが、アップデートでタグのカスタマイズが不要になった。しかしユニバーサルアナリティクスのようにコンバージョン設定画面でURLを指定できるわけではなく、少し回りくどい設定が必要になる。この記事ではその方法を説明する。 機能のアップデート 既存のイベントから、イベント名やイベントパラメータの条件に基づいて新たなイベントを生成する機能が追加された。 これは大変便利な機能で、これまでイベントの再定義をしようと思ったらSDK(JavaScriptのタグやアプリのSDK)の入れ替え…

続きを読む →

Googleアナリティクス4プロパティのデータをBigQuery出力する

2020/11/02改訂 Googleアナリティクス4プロパティがリリースされ、実はサイト訪問の行動ログをBigQueryに出力できるようになった。 app+webプロパティそのものの説明 従来のGoogleアナリティクス(ユニバーサルアナリティクス)ではGoogleアナリティクス360(GA360)を利用し、そのうえでGoogleに申請しないとログデータをBigQueryに出力することはできなかった。そのためコスト面での高いハードルがあったのだが、Googleアナリティクス4プロパティではGoogle Cloud Platform(GCP)の従量課金コストだけでログをBigQueryに出力で…

続きを読む →

Digdag / TreasureData Workflowのエラー処理

Digdag / TreasureData Workflowのエラー処理。エラー時の処理を指定する_errorだけでなく_checkやfail:>などの処理もあり、エラー発生/成功時の処理をカスタマイズできる。自由度が高く、ワークフローの階層構造とともにうまく使えばワークフローのコードが簡潔になる。公式ドキュメントの説明が不十分なので補足する。 Digdagがエラーと判定して_errorを発動する条件 コマンドの戻り値が0であれば正常、0でなければエラーとみなす。つまりシェルスクリプト(sh:>)の場合は exit 1 であればエラーとなる。 _errorを複数の階層で記述するとど…

続きを読む →

Googleアナリティクス/GTMの高度でおすすめのデフォルト設定

GTMとGoogleアナリティクスの高度な実装。 パーソナライズやエンゲージメント分析をする際には必須になるものを紹介する。 主にGoogleアナリティクス360でBigQueryを使って分析する際に役立つ。 必須のcustomTask customTaskはGoogleアナリティクスのスクリプトがデータ収集サーバにデータを送る(メジャメントプロトコル)ときに任意の処理を指定して実行するオプションである。 GTMを使ってGoogleアナリティクスとさまざまなツールを連携する際、customTaskにはデフォルトでこれを設定するといい。 function() { return function(…

続きを読む →

個人情報保護法の整理・情報の種類別の扱い方(2020年改正反映)

個人にかかわる情報の分類 個人情報 個人識別符号(指紋などのユニークな身体的特徴や免許書番号など、政令で決まっている)→紐づけなくても単独で個人情報扱い 要配慮個人情報(信条、社会的身分、病歴、犯罪歴など、政令で決まっている)→扱いがより厳格 (その他の個人情報) 法的に扱いが決まっている非個人情報 加工情報(個人情報を非個人情報化したもの) 匿名加工情報 仮名加工情報 個人関連情報 個人情報 個人データ(検索可能) 保有個人データ(開示、訂正、消去等の権限を有するもの。2020年の改正で新たに6か月未満で消去するデータも含めるように) 個人情報の中で請求対応が必要なのは保有個人データのみ そ…

続きを読む →

PythonプログラムでGoogle認証してGoogleのサービスを利用する

プログラムの中でGoogleのサービス(API)を操作するとき、Google認証が必要になる。しかしこれがややこしく、Googleの公式のドキュメントの記述も古かったりサービスの種類によって方法がばらばらだったりして分かりにくい。この記事ではこれを整理して説明する。 プログラムでGoogle認証する場面 具体的なケースを想定するとわかりやすいのだが、 たとえばGoogleアナリティクスからAPIでデータ取得し、そのデータをGoogle Cloud StorageやBigQueryに書き込みする場合、Googleアナリティクスのレポート閲覧権限(特定のビューに紐づいた)とGCPの権限(Googl…

続きを読む →