
Alteryx Analytics CloudのMachine Learning機能を使って分類モデルを作成してみた
こんにちは、まつおかです。
Alteryx Analytics CloudにはMachine Learning機能があります。
(Machine Learningは標準プランには含まれていませんので、別途契約が必要となります)
今回はこの製品を利用し分類モデルを作成してみましたので、その手順をご紹介します。
シナリオ
ペットショップにて、顧客のスタイルに応じてどのペットを勧めるべきか判断する材料として、過去の顧客データをもとに 「顧客の特徴から、購入する可能性が高いペットのカテゴリを予測する」 モデルを構築します。
サンプルデータ
今回使用するサンプルデータは以下3つのカラムを持つシンプルな構成にしました。
- activity_level:顧客の活動量(外出や運動の頻度)
- sociability:顧客の社交性(人付き合いや交流の多さ)
- preferred_pet:購入したペットのカテゴリ(犬、猫、鳥)
予測するターゲットとなるのは「preferred_pet(購入したペットのカテゴリ)」で、分類モデルを使って顧客ごとにどのペットが好まれるかを予測していきます。
やってみた
Alteryx Oneの画面からMachine Learningを起動し、右上の「+New」ボタンをクリックして新しいプロジェクトを開始します。
プロジェクト名を入力し、スタートします。
Problem Setup
▼ データのアップロード
まずは最初のページで、モデル作成に使用するデータをアップロードします。
CSV形式のデータを利用することができ、事前にクラウド上にアップロードしたデータと、ローカルにあるデータをアップロードするかを選択できます。
今回はローカルにあるCSVファイルを指定してアップロードしました。
アップロード中は実行中のプロセスが表示され、正常にアップロードできるとデータの概要などが確認できる画面が表示されます。
▼ ターゲット列の選択
次に予測対象となる列を選択します。
今回は購入するペットのカテゴリを予測しますので、「preferred_pet」を選択します。
▼ 機械学習手法の選択
ターゲットに指定した列とデータに基づいて、どの機械学習手法を使用するか自動的に選択してくれます。
使用できる学習手法は以下の3つです。
- Classification(分類)
- 選択したターゲットがどのカテゴリに属するかを予測する手法です
- Regression(回帰)
- データの中にあるパターンをもとに、数値を予測する手法です
- Time Series(時系列)
- 一定の時間間隔で記録された過去のデータをもとに、将来の数値を予測する手法です
使用したい手法を選択することもできますが、今回はカテゴリの予測ですので、自動で選択されているClassification(分類)で進めます。
画面左上の「Next」をクリックし、次に進みます。
Auto Model
次のステップでは、Machine Learningが自動的に複数のモデルをトレーニングして、パフォーマンス順にランキング表示してくれますので、その中から使用したいモデルを選択します。
▼ Leaderboard
ここでは、モデルの性能の評価指標が表示されます。
画面下部に表示されている各モデルをクリックすると上部にモデルの詳細が表示されますので、モデル選択の判断材料となります。
▼ Feature Engineering
Feature Engineeringタブでは、もとのデータをベースに、モデルが学習しやすいよう新しい特徴量を作成することができます。
▼ Advanced Model Settings
Advanced Model Settingsタブでは、各項目を手動で設定することでモデルの作成方法をより細かくコントロールすることができます。
以上のように、特徴量を追加したり、設定を細かくコントロールしたりできますが、今回は何も触らない状態で、推奨(Suggested)されたモデル「Elastic Net Classifier」を選択し、次に進めます。
Evaluate Model
次のEvaluate Model(モデルの評価)画面では、作成したモデルがどのくらい正確に予測できるかを確認できます。
▼ General
画面下部に表示されている「Feature Importance(特徴量の重要度)」で、モデルがどの特徴量を重視しているか、予測に強く影響しているかを確認できます。
今回は特徴量が2つしかないので「sociability」しか表示されていませんが、影響している特徴量が複数ある場合はランキング形式で表示されます。
▼ Advanced Insights
Advanced Insightsタブは、さらにMetricsやPartial Dependenceなどのタブにて、特徴量の相関やモデルの予測にどのくらい影響を与えているかなど、モデルの評価結果を確認することができます。
▼ Simulations
Simulationsタブでは、1件のデータに対して特徴量の値を変更すると予測がどう変わるかを試すことができます。
1行目のデータの顧客のsociabilityが低くなった場合、予測にどう影響するかシミュレーションできます。
このように、モデルを作成し評価する中で、特徴量を追加したり、別のモデルに切り替えたりしながら、最終的にモデルを完成させることができます。
今回は推奨されたモデルのままで次に進めます。
Export and Predict
最後のページでは、結果を共有したり、新しいデータで予測を実行することができます。
▼ Upload New Data for Prediction
作成したモデルに対して、新しいデータをアップロードして予測することができますので、これも試してみました。
「Import」ボタンをクリックし、ローカルにある予測対象のデータを選択します。(すでにクラウド上にアップロードしたデータを使用する場合は「Browse」ボタンをクリックします)
しばらくすると、インポートした10人分のデータを予測した結果が表示されました!
左から3列目「preferred_pet」が予測された結果です。
右3列には、それぞれのカテゴリに分類される確率が表示されています。
この結果はCSV形式でダウンロードすることもできますし、クラウド上にデータセットとして保存することもできますので、このあとDesigner Cloudなどで活用することができます。
さいごに
以上、Alteryx Analytics Cloud の Machine Learning 機能を使って分類モデルを作成する手順をご紹介しました。
この機能は、機械学習にあまり詳しくない方でも、直感的なUIとガイドに従って操作するだけで、簡単にモデルを構築できるのが大きな魅力です。
より詳細な設定を行いたい場合や、複数のアルゴリズムを比較したい場合にも柔軟に対応できますので、初心者から上級者まで幅広く活用できるツールだと感じました。
今回は、まず「手軽にモデルを作れる」ことを体験していただくことを目的に、基本的な流れをご紹介しました。
各画面の詳細な設定については、今後のブログ記事で順にご紹介できればと思います。