【Dataiku】pythonレシピを使って機械学習用のサンプルデータを取得する

【Dataiku】pythonレシピを使って機械学習用のサンプルデータを取得する
dataiku

1. はじめに

Dataikuで簡単にモデルの構築をしてみたい時に、使用するデータをどこから拾ってくるか悩んだことはありませんか?

今回はそんなときに便利な、pythonレシピを使ってscikit-learnライブラリに組み込まれたサンプルデータを、Dataikuのフロー上に呼び出す方法をお伝えします。

今回ご紹介する方法を使えば、csvファイルなどをアップロードしなくても、下図のようにpythonレシピで直接機械学習用のサンプルデータを読み込むことができるようになります。
(データセットを自分で探してくる手間が省けてとても便利だと個人的に思っています)

2. scikit-learnのサンプルデータとは?

scikit-learnは、Pythonの機械学習ライブラリで、学習用やプロトタイピングに便利なサンプルデータセットを多数提供しています。

例えばirisのデータセット以外にも以下のようなデータセットを読み込むことができます。

主なサンプルデータセット例:
・Diabetes(糖尿病データセット):糖尿病患者の検査数値から1年後の進行状況を予測するためのデータ。
・digits(手書き数字データ):手書き文字の画像から数字を認識するデータ。
・boston(ボストン住宅価格データ):住宅価格を予測するためのデータ。

上記のほかにもscikit-learnでは様々なサンプルデータがあります。サンプルデータについてより詳細に知りたい場合は、下記のブログが参考になります。
【初心者】ネコでも分かる「scikit-learnのサンプルデータ」まとめ【Python】

【Python】機械学習用無料データセットまとめ

3. 実践:DataikuのPythonレシピを使ってscikit-learnのサンプルデータを読み込む

3.1 事前準備

まず、Dataikuプロジェクトを新規作成します。

そして、フロー画面で新規レシピとして「Pythonレシピ」を作成します。
※今回使用するpythonのコードはデフォルトのpython環境で問題なく動作すると思いますので、code env等の設定は不要です。

Outputs>+ADDからNameを設定して(今回の例では「iris_data」にしました)、「CREATE DATASET」をクリック。

その後「CREATE RECIPE」をクリック。

3.2 コードを書き換えてscikit-learnのデータを読み込む

pythonレシピが作成されると、最初は以下のようにコードが書かれていると思います。これを必要に応じて書き換えます。

書き換え後のコードは以下になります。上記のコードをすべて消して、下記のコードをコピペしてもらうのが早いと思います。

# -*- coding: utf-8 -*-
import dataiku
import pandas as pd, numpy as np
from dataiku import pandasutils as pdu
from sklearn.datasets import load_iris

#irisのデータセットをsklearn.datasetsモジュールの関数で読み込む
iris = load_iris()

#データがBunch型で取得されるので、それをDataframeに変換
df = pd.DataFrame(data = iris.data, columns = iris.feature_names)
df['target'] = iris.target_names[iris.target]

# Write recipe outputs
iris_data = dataiku.Dataset("iris_data")
iris_data.write_with_schema(df)

今回はirisのデータセットを例に用いましたが、その他のサンプルデータを使ってみたい場合は、上記の「iris」の部分を適宜下記に置き換えて実装してみてください。
※8行目のsklearn.datasetの読み込みまでは単純な置き換えで機能しますが、irisとはデータの持ち方が異なるデータセットの場合は、Dataiku上のデータセットとして出力するには工夫が必要かもしれません。

  • boston(ボストン市の住宅価格データ)
  • diabetes(糖尿病患者の診療データ)
  • digits(数字の手書き文字データ)
  • linnerud(生理学的特徴と運動能力の関係についてのデータ)
  • wine(ワインの品質データ)
  • breast_cancer(乳がんデータ)

3.3 コードの実行

コードを書き終えたら、最後に画面左下の「RUN」ボタンをクリックしてください。

pythonレシピのアウトプットとしてirisのデータセットが出力できました。

4. さいごに

truestarではDataikuの検討、導入支援や環境構築から導入後の運用まで幅広くサポート可能です。
Dataikuに興味がある、導入済みだけどもっとうまく活用したい等々ありましたら、ぜひこちらからご相談ください。