Dataiku初体験: 新人データサイエンティストが見た可能性とは？

## Dataikuとは
Dataiku[1](https://www.dataiku.com/ja/)とは、データの前処理からAI・機械学習、モデルの管理や自動化までをGUIで完結させられるプラットフォームです。「ノーコード開発＝初心者向け」と思われるかもしれませんが、近年のトレンドである生成AIを使った機能やAWS・Azureなどのクラウドサービスとの連携も可能であり、ビジネスの場でも注目されています。GUIの日本語化も発表されており[2](https://www.dataiku.com/ja/%E3%83%97%E3%83%AC%E3%82%B9%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9/dataiku-starts-the-japanese-localization-of-its-everyday-ai-platform/)、今後日本で注目されていくことは間違いありません。
今回は、日本でデータ分析コンペを開催しているSIGNATEの「第２回 金融データ活用チャレンジ[3](https://signate.jp/competitions/1325)」に参加し、Dataikuの使用感を調査しました。

## Dataikuがビジネスの場で注目される理由
+ **データの民主化に貢献**　近年、データは誰もが扱えるべきだという考え方が浸透してきました。ノーコードでGUIを使った分析を行えるDataikuはデータの民主化を助けるツールとして期待されています
+ **ノーコーダーとフルコーダーが共同で作業する環境を提供**　DataikuはPythonやRといったプログラミング言語で直接処理を記述することも可能で、様々な技術的なバックグラウンドを持つ人が共同でプロジェクトを進めることができます
+ **データの流れが一目でわかる**　Dataikuでは、データの前処理からデプロイに至るまでの工程をフローに分割することで、各処理の入力と出力が一目で分かるようになっています
+ **ビッグデータの処理も可能**　snowflakeにも対応しており、数億行になる大規模なデータをDataikuで処理することもできます
+ **クラウドとの連携が充実**　AWS, Azure, GCPといった大手クラウドサービスとの連携も可能で、データをAWSのS3に置いたまま分析することができます

## Dataikuの便利なところ
### データに合わせて最適な前処理を提案してくれる
Dataikuは、データベースの各列の意味を推測し、適切な処理を提案してくれます。例えば、金額が文字列型になっているので"$"と","を除外して数字に変換して...という処理も、選択肢から選ぶだけで実装できます。FORMULA機能では、if文などの条件式でデータを整理し、特徴量エンジニアリングを行うことができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/910361/9d37ca35-5d22-b37f-f05c-0b6cd5ca8408.png)

日付の処理もお手の物です。複数の処理方法と、それを適用した場合に欠損値となるデータの割合まで示してくれます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/910361/47d7ea4d-3b85-4172-00f3-77c560911a88.png)

文字列を正規表現で処理したい場合も簡単です。検出したい表現をいくつか選択するだけで、Dataikuが適切な正規表現を考えて提案してくれます

### グループ化で複雑な処理も一目瞭然
グループ化機能では、「日付の処理」「金額の数値化」などのまとまった処理をグループにまとめることができます。Jupyter Notebookでは「この処理どこに書いたっけ..」という悩みが尽きないため、この機能は大変助かります。複数パターン試したい場合は別々のレシピに分岐させ、不要なブランチを後で消すことができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/910361/0c6c2bc0-3736-7de7-174c-b39cd2d60a1a.png)

### データの理解が捗る
**Charts機能** : 確認したいデータをX軸,Y軸のボックスに放り込むだけで、時系列データをプロットすることができます。さらに、グラフをダッシュボードに貼り付けることで、インサイトの共有やディスカッション、上司への説明資料までDataikuで完結させることができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/910361/4155fa9d-dcd6-2d35-9c07-529b6b882c46.png)

**Statistics機能** : 自動でおすすめの統計的な可視化を行う機能があります。凄すぎる...
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/910361/596c5f86-c6d1-9c4b-bc2c-05e772ab11a8.png)

### 自動でバージョン管理されている
データを間違えて消してしまった！...という経験はあると思います。Gitでプロジェクトを管理する場合はこまめにファイルを選択して`git push`する必要があり手間ですが、Dataikuではデータの削除などのアクションに対して自動でバックアップを取っています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/910361/41c7bdd8-a48d-36b3-ac1d-19487eea54f3.png)

### 13種類(+α)の機械学習をパラメータの調整付きで行える
機械学習の実行だけでなく、Random SearchやGrid Searchを使ったハイパーパラメータの調整を行うことができます。また、どんな特徴量が効いたのか、以前のスコアと比べてどうだったのかも一覧で確認することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/910361/7451527a-8c79-7770-c029-dadeaff44400.png)

学習結果の考察では、Random forestが何を理由に判定しているのかを一目で確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/910361/dae7bc45-244c-23e8-e328-80ce83d69315.png)

特徴量の重要度の比較、どんな値がいいのかという可視化だけでなく、その結果から考察できることのレポートまで付随しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/910361/7e72666d-8796-b6ce-7bf2-8f8bf7ea2f34.png)

パラメータの調整ももちろんGUIで調整できます。初期のパラメータがすでに優秀なのですが、Number of treesを10~20にした結果、20が最良だったので範囲を広げてみよう、という判断がすぐに行えるのも助かります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/910361/893ed396-7324-b780-01dc-feceb8c0bdf4.png)

## 所感
今回、「第２回 金融データ活用チャレンジ[3](https://signate.jp/competitions/1325)」に参加しました。Dataikuはデータの前処理からデータ可視化、機械学習に至るまで非常に多機能で、データ分析のスピードアップに貢献してくれました。Pythonに慣れた方でも、いずれ「初手LightGBM」から「初手Dataiku」になっていくのではないかと思いました。
反省すべき点として挙げられるのは、選択肢が多すぎて迷ってしまったことです。これはデータ分析の経験不足によるもので、ツールの機能を把握するだけでは価値のある分析を行うことはできないと実感しました。「10種類のモデルが使えるからとりあえずONにしておく」という使い方ではなく、各モデルの特性を理解した上で適切な前処理や欠損値の処理を行うことが必要だと感じました。また、データの可視化についてもグラフを眺めるだけでは何も対策が思いつきませんでした。データから何が読み取れるかを意識して経験を積んでいく必要があると感じました。