Microsoft Azure (マイクロソフトのクラウドサービス) を使った、ゲームのデータ分析のオンラインハンズオンに参加しました。ゲームのユーザの行動ログデータを 機械学習 にかけて分析し、ユーザの退会予測などをする内容です。マイクロソフトの巨大なデータ分析基盤である Azure Synapse Analytics を使いデータの前処理をし、それを元に、マイクロソフトの機械学習サービスである Azure Machine Learning を使い、退会予測の機械学習モデル作成を行いました。
明日 8/18(火) は
このオンラインハンズオン参加する!
『データサイエンスとテクノロジーで「長生きする売れるゲーム」を作ろう』https://t.co/PLnG2pI4HU10:30 Azure Synapse Analytics を活用したデータ前処理
13:30 機械学習入門
15:30 #Azure Machine Learning を用いた予測モデル構築
_— ちょまど🎀 (@chomado) August 17, 2020
ハンズオン講座のランディングページに
今回のハンズオントレーニングは弊社では通常1社様あたり200万円~でご提供をいたしているコースとなりますが、Microsoft様のご厚意により無償でのご参加をいただけます。
トレーニングで利用するデータはソーシャルゲームで利用されている本番リアルデータを用いておりますので、実践的なデータの前処理と可視化、予測モデルを構築いただけるようになります。
とのことで、めちゃ凄いな! 私も参加して学びたい! と思い、jump in しました。
とても楽しく学べました、ありがとうございました。
使用サービス
この講座で使用したサービスの例です。
使用サービス名 | 概要 | 公式ドキュメント |
---|---|---|
Azure Synapse Analytics | マイクロソフトの巨大なデータ分析基盤。 今回はデータ前処理に使用した |
docs.microsoft.com |
Azure Data Factory | マイクロソフトによる、データの移動・変換を自動化するデータ統合サービス | docs.microsoft.com |
Azure Machine Learning | マイクロソフトの機械学習サービス。 Synapse で前処理したデータを使いユーザの退会予測をした |
docs.microsoft.com |
Azure PlayFab | マイクロソフトのゲームのバックエンドサービス。 ゲームに組み込んで使う。ユーザの行動ログ吸い上げに使う |
azure.microsoft.com/ja-jp/services/playfab |
Microsoft Power BI | マイクロソフトのデータ可視化サービス。 前処理データの可視化に用いた |
powerbi.microsoft.com |
Azure 画面
Azure ポータル画面の使用リソース一覧(リソースグループ)のスクショ
できること
ソシャゲばっかやってるから、この使用例は大変しっくりきました。
ゲーム開発でのデータ分析の話!
ユーザの行動ログから #機械学習 にかける例として例えば
「アイテム B を 7 回以上『強化』したユーザーは、退会率が低い」
というのが分かると
アイテム B が手に入りやすいイベントを行おう、みたいな施策を打てる#GameStackJP #DatumStudio pic.twitter.com/1cBIXACY59— ちょまど🎀 (@chomado) August 18, 2020
ハンズオン詳細
項目 | 値 |
---|---|
名前 | 【Azureデータ分析シリーズ】 データサイエンスとテクノロジーで「長生きする売れるゲーム」を作ろう 【ハンズオン / オンライン】 |
日時 | 2020 年 8 月 18 日 (火) 10:00 – 18:00 |
会場 | オンライン (Microsoft Teams) |
主催 | マイクロソフト |
協力 | DATUM STUDIO 株式会社 / ちゅらデータ株式会社 |
参加者 | 40 – 60 名 (正確な数字は知らないけど多分これくらいいた) |
タイムテーブル
時間 | 内容 |
---|---|
10:00 | 環境準備と利用するデータに関しての説明 |
10:30 | Azure Synapse Analytics を活用したデータ前処理ハンズオン データ結合処理、抽出処理、および可視化 |
13:00 | 環境準備 |
13:30 | 機械学習入門 |
15:30 | Azure Machine Learning を用いた予測モデル構築 |
17:40 | QA&情報交換 |
Synapse 編
やったこと
- Synapse のセットアップ
- コンテナの作成、データのアップロード
- Synapse SQL の作成
- Azure Data Factory を使用したデータコピー
- 特徴量作成
- 作成した特徴量の統合
- Azure Data Factory を用いた統合
- SQL を用いた統合
- 統合した特徴量のエクスポート
Azure Synapse (巨大なデータ分析基盤) に
テーブルを作成しているなう#GameStackJP #DatumStudio pic.twitter.com/Vszygoe7Ah— ちょまど🎀 (@chomado) August 18, 2020
Azure Blob Storage に突っ込んでいる 1 億 4 千件のユーザログデータを Azure Data Factory で Synapse にインポートしています!#GameStackJP #DatumStudio
Azure Data Factory とは、多種多様なデータソースからデータを取得しクレンジングしてデータストアに格納するといったデータ統合サービス pic.twitter.com/jTdVOVuw8v
— ちょまど🎀 (@chomado) August 18, 2020
機械学習編
ゲームのユーザの行動ログ(ログインログ、装備ログ、課金ログなど)から
色んな予測ができます:
・退会率の高いユーザ
・辞めそうだけど、イベントを頑張れば退会せずに済みそうなユーザ
・継続率の高いユーザ#GameStackJP #DatumStudio pic.twitter.com/wxud1zt3c1— ちょまど🎀 (@chomado) August 18, 2020
やったこと
- Azure Machine Learning のデザイナーのセットアップ
- 離脱予測
- 決定木 による予測
- GBDT (Gradient Boosting Decision Tree) による予測
- 生存予測
↓ 実際に組んだ機械学習パイプライン。データの import からモデルの生成、モデルの評価までやってる
#Azure Machine Learning のデザイナーで機械学習フローを
データインポートからモデルの評価まで組み立てていて、
いま実行中!ドキドキ#GameStackJP #DatumStudio pic.twitter.com/6SlYoam9NI— ちょまど🎀 (@chomado) August 18, 2020
決定木 (decision tree)
機械学習の予測モデルのひとつ。
ある事項に対する観察結果から、その事項の目標値に関する結論を導く。
決定木 (decision tree) の説明も。
例えば「所属ギルド数が 6 つ以上」かつ「装備スコアが 500 以上」だと退会しない確率が高い、などの if-else 分岐条件の組み合わせ#GameStackJP #DatumStudio pic.twitter.com/yDYthZP60K
— ちょまど🎀 (@chomado) August 18, 2020
決定木の例
データ
↓
決定木
(画像:Wikipedia より)
バギング
バギングの説明。
識別器を複数作り、それらの識別器の多数決をとることによって、一つの識別器よりも性能の高いモデルを作ります。
この例では決定木を複数並列に走らせていて、最後にそれらの多数決をとります。学習データに依存しすぎる過学習を防ぐことにも繋がります#GameStackJP #DatumStudio pic.twitter.com/pvHoHDyr44
— ちょまど🎀 (@chomado) August 18, 2020
ハンズオン講師の方
明日はこちらで講師させていただきます!
まさかちょまどさんに参加頂けるとは思っていなかったのですが、信じられないことに念願叶ってしまいました。
ワイ死ぬの?死にそうwゲーム業界でのデータ分析の裾野を広げるお手伝いができるといいなと思っていますので皆さんよろしくお願いします! https://t.co/poEhtaB7kW
— やすべぇ (@yasubeitwi) August 17, 2020
感想
- とても楽しかったです!!!!
- めちゃ勉強になった。オンラインでもちゃんとハンズオンってできるんだなあ。
- つまった時にチューターの方と 1:1 で画面共有で (Teams で) 繋いでもらって助けてもらった
- 画面ポチポチ GUI で機械学習パイプラインの作成できる Azure Machine Learning (詳細) は やはり強いなと思った。
- 売れるゲームを作るにはユーザの分析をして、ユーザが真に何を求めているのかを知るのが大切。そのためにはデータ分析の手法をもっと学ぶ必要がある
C#(Unity)とPythonで機械学習をしてより良いゲームを作ってみたことがあるのですが、1回挫折してしまいました。もう一回やってみようと思います。
コメントありがとうございます!ぜひぜひ!