Alteryx（基本操作/チュートリアル）

### Alteryxに関して

Alteryx(アルタリクス/アルテリックス)とはデータ分析を簡単に行えるツールです。複雑なプログラムを書くことをせずに使用する事が出来ます。データの前処理やモデルの作成・共有・デプロイを実現することができます。Alteryxは4つの製品に分かれている。「Alteryx connect」「Alteryx designer」「Alteryx server」「Alteryx promote」

「Alteryx connect」…組織のデータを管理するデータカタログの役割がある。データ分析のためのデータを見つけるサーバー製品。データソースのメタデータを収集したりすることができる。

「Alteryx designer」…データの前処理や分析を行うアプリケーション。データの前処理をコードを書かずに行うことができる。コードを直接書いて前処理等行うということも可能。ワークフローを作成し、ツールを配置することによってデータの処理の流れを表現することができる。このツールとは、データの入出力といったものからソート・結合・サンプル作成などの機能がある。

「Alteryx server」…Alteryx designerで作成したワークフローを共有することができる。

「Alteryx promote」…機械学習モデルをデプロイ・管理することが可能。APIを使用して外部から利用することができる。

### 実際に触ってみた。
### データの入力
まずは、データ入力のツールを使用してデータを持ってきます。ツールを図のようにドラッグすると左側に「ファイルまたはデータベースを接続」というところがあるので選択。
![2020-09-11 (6).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/676443/fa959dd6-30b0-be39-1e93-f6eca9ac9b4f.png)

するとこのような画面が出てくるので「ファイルを選択」を押して使用したいデータを選択します。データソースのところを選択するとMYSQLであったり、AWS　S3などを選択することが出来ます。
![2020-09-11 (7).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/676443/9f1e7338-36da-e28d-bb60-8c064ae92fc7.png)


今回はTableauのサンプルスーパーストアを使用しました。左下にデータのプレビューが表示されデータの中身を見ることが出来ます。しかしこれはプレビューであるため、100件しか表示されません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/676443/ee12d7d0-ea4a-212c-b1bd-36d5427253da.png)



#### AWS S3からデータを取得
AWSのS3からデータを取得してきたいと思います。AWSからデータを取得するには・AWSアクセスキーとAWSシークレットキーが必要になるため、調べておきましょう。あとはバケット名とオブジェクト名を指定するだけで簡単にデータを取得することが出来ます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/676443/c4a94e29-bb83-3542-938e-b0a88c3a08eb.png)


### 閲覧

もしデータの中身をしっかり見たいのであれば、この閲覧というツールを使用します。閲覧をドラッグして持ってきただけでは閲覧ツールにデータがないので何もできないが、「実行」を押すことによってデータをロードし閲覧ツールでデータを見ることが出来ます。下で読み込んだ生データを見ることが出来ます。プロファイルのところでデータがどのくらいあるのかが容易にわかります。さらに詳細を見たい場合は、プロファイルに表示してあるカラム名をクリックすると各カラムのサマリーが表示されます。
![2020-09-11 (9).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/676443/0361b63c-b6d8-750e-65b9-55b8377d772b.png)

### セレクト

データを分析する際にすべてのカラムを使用せず、一部のカラムのみで分析を行うことが多いと思います。そのため使用しないカラムをロードして分析を行うと処理に時間が掛かってしまうといった問題が起こります。それを避けるためにもカラムの選択を行う必要があります。このAlteryxではセレクトというツールがありそれを使用して使いたいカラムのみを選択して分析することが出来ます。![2020-09-11 (10).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/676443/c944373c-9fac-0e37-e93c-8ba4cc7bac7d.png)

### フォーミュラ

次に計算式を使用して新しいカラムを作成します。計算式を使用するには「フォーミュラ」を使用します。フォーミュラを使用する際は左側に計算式を入力することができるのでそこで計算式を入力します。計算式にカラムを使用する際は$X$のところを選択することでセレクトで選択したカラムを選択することが出来ます。また出力されるデータのデータ型も選択することが出来ます。実行を行うと右下のフィールドに計算がうまく実行されているのが分かります。
![2020-09-12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/676443/a4755b71-00b7-28c4-48b3-7c7b4086c785.png)




### 結合
次に結合を行いたいと思います。結合するには結合ツールを使用します。左側にある特定のフィールドで結合を行うと自分自身で結合キーを選択することが出来ます。出力は「L」「J」「R」の三つに分かれます。「L」は右側と結合することが出来なかった左側のみのテーブル。「R」は左側と結合することが出来なかった右側だけのテーブル。「J」は右側と左側で両方ともデータがあるのを結合したテーブル。をそれぞれ出力をしています。
結合は結合キーが重複してしまいます。重複したカラムはチェックボックスのチェックを外すことで削除することが出来ます。
![2020-09-12 (4).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/676443/efe6bdb5-5f2e-40dc-5e4f-04ba9e070b5a.png)


### 外部結合
先ほどの結合というツールでは左結合や右結合といった外部結合が出来ませんでした。またAlteryxには標準ツールに外部結合が備わっていません。ではどうすればいいのでしょうか。外部結合を行うには先ほど使用した「結合」と「ユニオン」を使用する事で実行することが出来ます。下の例では左結合を行ってみました。ユニオンへ結合の「L」と「J」を選択することで左結合が実現しています。右下のテーブルを確認すると返品がNULLになっているものと○になっているものがあることが確認することが出来ます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/676443/c6fabc32-2daa-1f57-0dae-e3143c458d4b.png)



### 集計
集計というツールはフィールド単位で集計することが可能です。今回は都道府県ごとの売上の合計と平均を出力したいとします。左側にあるアクションの「追加」というところで追加をを行います。フィールドを都道府県、アクションをグループ化することにより都道府県ごとに集計を行うことが出来ます。売り上げは「合計」と「平均」を指定しました。右下のフィールドを見ることでうまく実行できていることが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/676443/781142c5-ba92-535e-3f99-04103e3722ee.png)

### ソート
先ほどの都道府県別の売上合計を売上合計の降順に並べるためにはソートというツールを使用します。左側のフィールドで設定することが出来ます。右下のテーブルを見ることで大阪が一番売上が多いことが分かります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/676443/31ee7e63-8cb6-86d4-7c80-b91ce381ab63.png)

### サンプリング
先ほど表示した売上のトップ5のみ表示したい場合、サンプリングを使用します。サンプリングタイプを最初のN行を選択し、N=5にします。すると上位トップ5の売上の都道府県のデータのみ表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/676443/7ef40387-d885-f150-2e60-33b2b15a2599.png)

サンプリングは下のようにグループ化を行うとグループごとの表示になります。今回はカテゴリごとに最初から3行が表示されるように行いました。カテゴリは3種類あるため、3×3の9行表示されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/676443/c34d3bb0-9f56-1d5a-1fee-e15622ae7a24.png)


### ファイルの出力
データを加工した後、加工されたデータをファイルとして出力したいと思います。その際には出力というツールを使用する事でファイルを出力することが可能です。![2020-09-12 (10).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/676443/a7bf48fd-9a70-39a9-1cdc-74166eb86b00.png)








### フィルター
フィルターは条件に合致したデータと合致しなかったデータに分けることが出来ます。今回はポケモンのデータを使用してNULLがあるデータをなくしていきたいとします。ポケモンのデータのLegendaryには一件NULL値が存在します。これを元のデータから排除するには、左側にある基本フィルターでカラムを選択し、NULLでないを選択します。NULLでない方はTrueのほうに出力されNULLであるほうはFalseのほうに出力されます。下の出力はFalseを選択しており、LegendaryがNULLであるのが確認できます。
![2020-09-12 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/676443/b94f6ab8-fac7-8c60-1cf0-bfc48a7091be.png)

またフィルターはNULL値以外にも使用する事が出来ます。カラムから指定した文字や数値がある行を抽出したい場合を考えます。今回は都道府県の中で北海道である行を抽出したいと思います。その場合は基本フィルターで「都道府県」「等しい」「北海道」で行うと簡単に出来ます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/676443/00cbee29-6216-cef1-6413-a1687cc05107.png)

さらに一つのフィルターではなく複数フィルターを設定したい場合はカスタムフィルターを使用します。カスタムフィルターで式を作成することで複数フィルターを設定することが出来ます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/676443/0a3fe711-ad72-a1a8-c5d0-3038ca12d5ab.png)


### NULL値の穴埋め
NULL値の穴埋めには様々な方法があります。今回はフォーミュラを使用したNULL値の穴埋めに関して行っていきたいと思います。フォーミュラで簡単な条件式を書くことが出来ます。今回はIF文を使用してNULL値の穴埋めを行いました。他にもインピュテーションツールを使用したNULL値の穴埋めなどがあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/676443/c4bf9ed7-1a86-34e7-c29b-ee243329afae.png)