GPUで賃貸物件の家賃を可視化してみた


# 完成したもの
とても高速なデータ分析プラットホーム**MapD**を使用して日本全国における賃貸物件の家賃を**地図**と**ヒストグラム**でビジュアライゼーションしました。

日本全国から皇居あたりへズームインしていくと家賃(m2単価)の分布が高い方へ移動していくのがわかります。
当たり前ですが皇居には賃貸物件がないので賃貸物件を地図にプロットするとに空白地帯となります。
![japan3 (1).gif](https://qiita-image-store.s3.amazonaws.com/0/119568/ea5cdc71-2ad2-82d2-1424-dd9263695a6a.gif)

## m2単価とは
```
m2単価 = 家賃(円) / 面積(m2)
```
例えば、広さ20m2で家賃6万円なら、m2単価は3,000円です。

# MapDとは
GPUを利用したデータ分析プラットフォームです。

- GPUデータベース
    - インメモリ／カラムストア／SQL
    - オープンソース　https://github.com/mapd/mapd-core
- GPU描画処理
    - データ可視化記述フォーマットVegaを使ってクエリに対する画像を返す
    - オープンソース　https://github.com/mapd/mapd-connector/tree/master/dist

参考：[MapDの本気を見た](https://qiita.com/Masutani/items/b7b0bfc7937a6d95a244)

# 準備
https://www.mapd.com/platform/downloads/

AWS環境があればすぐに使うことができます！

参考：[MapDをAWS上で試してみた](https://qiita.com/Shoyu_N/items/8df8e1ced601f21675c7)

# データのアップロード（テーブル作成）
それほど重くなければCSVファイル等はドラッグ＆ドロップでアップロードできます。
![load_data2.gif](https://qiita-image-store.s3.amazonaws.com/0/119568/eaa49f27-cdf1-2b54-6b7c-dd06ac139bc8.gif)

AWSのS3からインポートもできます（テーブル作成が必要です）。
https://www.mapd.com/docs/latest/mapd-core-guide/tables/
https://www.mapd.com/docs/latest/mapd-core-guide/loading-data/

# 地図ビジュアライゼーション
まずは日本全国における賃貸物件の家賃をビジュアライゼーション

## 地図にポイントを表示する
**Add chart**をクリック
![screenshot.191.jpg](https://qiita-image-store.s3.amazonaws.com/0/119568/70639c9e-5ce2-ea18-dcc4-5549ab1f0488.jpeg)

**SOURCES**から可視化したいテーブルを選択して、**MEASURES**で緯度／経度に対応するカラムをセットする。
そして、**POINTMAP**をクリックすると…

![screenshot.192.jpg](https://qiita-image-store.s3.amazonaws.com/0/119568/53a757fb-2b17-1d31-fe08-bcbdbd28a9db.jpeg)

地図が表示できました！
ポイントの色は単位面積あたりのレコード数に対応しています。
![screenshot.193.jpg](https://qiita-image-store.s3.amazonaws.com/0/119568/cb08503c-4ba6-a002-d3d0-920feb17c3e7.jpeg)

## 地図タイルを変える
黒っぽい地図タイル（背景）を選びます。
![screenshot.194.jpg](https://qiita-image-store.s3.amazonaws.com/0/119568/846c2d9f-5637-d8fc-49aa-be65ffe3c05c.jpeg)

見やすくなりました！
![screenshot.195.jpg](https://qiita-image-store.s3.amazonaws.com/0/119568/215a7ef3-dfdd-71d4-49ac-ebe7ee923c06.jpeg)

## ポイントの色をm2単価に対応させる
デフォルトではポイントの色は単位面積あたりのレコード数に対応していましたが、m2単価に対応させてみます。

m2単価が高いエリア（東京、名古屋、大阪あたり）が黄色になっていて、他は青になっている地図が想像できます。
**Size**と**Color**をm2単価にセットします。
ところが、予想に反して全体的に緑色になってしまいました。異常値が含まれていたためです。
![screenshot.196.jpg](https://qiita-image-store.s3.amazonaws.com/0/119568/f6ef4e9c-9f0b-d57a-839e-06a8cd1ac7a3.jpeg)

## 異常値除外
![screenshot.199.jpg](https://qiita-image-store.s3.amazonaws.com/0/119568/dc6e0335-4cab-1752-451a-73b4ab6e7988.jpeg)

![screenshot.197.jpg](https://qiita-image-store.s3.amazonaws.com/0/119568/408ec623-d267-99b7-daf6-aaac852f7983.jpeg)

![screenshot.198.jpg](https://qiita-image-store.s3.amazonaws.com/0/119568/68fa6a56-ee7a-a3e0-51ab-de4d4dd66433.jpeg)


異常値を除外してポイントの色をm2単価に対応できました！
![screenshot.200.jpg](https://qiita-image-store.s3.amazonaws.com/0/119568/1103518f-34d2-6ec3-de5c-a10fee36c280.jpeg)

首都圏もバッチリです！
![screenshot.201.jpg](https://qiita-image-store.s3.amazonaws.com/0/119568/0275a8be-ee5a-0ea8-9a7d-3aeeea906ca2.jpeg)
**Add Chart**
**Save**ボタンを押して保存しましょう。

# ヒストグラム
続いて、家賃の分布をヒストグラムで可視化します。
![m2tanka.gif](https://qiita-image-store.s3.amazonaws.com/0/119568/784f3fa0-cbb9-a50f-bfb3-422a28fac7c3.gif)

# 完成！
大田区から足立区へ北に移動していくと...
![japan5.gif](https://qiita-image-store.s3.amazonaws.com/0/119568/f6daa14d-365e-c7c2-e2f0-e0c839691cb7.gif)

都心に近づくにつれて家賃が高くなっていき、都心から離れていくと家賃が安くなります。

地図のプロットとヒストグラムの表示がは連動しており、地図を動かすと地図内における賃貸物件のm2単価を集計して（クエリを実行して）ヒストグラムを表示します。
都度クエリを実行していますが**MapD**なら高速に処理できます！