Catboostアルゴリズム実装手順(Dataiku)
Catboostとは文字データ(店舗名や天気などのカテゴリ変数)の扱いに特化したアルゴリズムです。ターゲットエンコーディング特有の「過学習」を完璧に防ぎ、前処理の手間をかけずにいきなり高い精度が出せます。本記事では、Dataiku上で「CatBoost」アルゴリズムを実装する手順について解説します 。
Python環境(Code Env)の作成とパッケージのインストール
・Dataikuフロー画面右上の九つの点々を押す
※写真が大きくなってしまい申し訳ないです。
![]()
・「アドミニストレーション」を選択
![]()
・「NEW PYTHON ENV」をクリック
![]()
・「Name」は自分が分かりやすいように入力し、ほかの設定は下写真参考

・作成した環境の左メニューから「Packages to install」を開く

・「Requested packages (Pip)」の入力欄に、以下の必須パッケージリストをすべてコピーして貼り付ける。(※CatBoostだけでなく、Dataikuが裏側で機械学習を動かすための標準パーツも必須)
catboost
scikit-learn
xgboost
lightgbm
statsmodels
Jinja2
flask
cloudpickle
scikit-optimize・「保存して更新」をクリック、ロード画面が消えたら完了
プロジェクトへ環境を紐づける
・作業中のプロジェクトのフロー画面に戻る
・画面上部メニュー群の一番右側にある 「Settings」 をクリック。

・左側のメニューから 「Code env selection」 を選ぶ。

・Modeを「Select an environment」に変更し、リストから先ほど作った 「catboost_env2」(自分で作成した名前)を選択。

・「SAVE」を押して保存
計算リソース(コンテナサイズ)の最適化
大きすぎるCPUメモリを要求して、会社のシステム上限に引っかかり、通信エラー(SSL error)になるのを防ぐための重要ステップです。(必要ならば実施してください)
・モデルの学習画面(Algorithmsを選ぶ画面)に戻る。左側のメニューを一番下までスクロールし、「Runtime environment(実行環境)」 をクリック。

・「Code environment」を catboost_env2(自分が作成した名前)に変更。下の選択は、標準的なサイズ(例:CPU-M-1-cpu-4Gb-Ram)に変更する。

・「SAVE」 を押して保存。
モデルコードの記述
・アルゴリズムに戻り、一覧から 「+ADD custom python model」を押して、 「Custom Python model」 を作成する。

・以下のコードを記述する
from catboost import CatBoostRegressor
# CatBoostの回帰(数値予測)モデルを呼び出し、'clf'という変数にセットする
clf = CatBoostRegressor(
iterations=100, # 学習の繰り返し回数
learning_rate=0.1, # 学習のスピード
depth=6, # 思考の深さ(複雑なパターンをどこまで探すか)
loss_function='RMSE', # 誤差の測り方(回帰タスクの標準指標)
verbose=False # ログが大量に出るのを防ぐためオフ
)※上記はまだ改善の余地があるコードです。ハイパーパラメータを考察し、より良いものにすればさらに精度改善が見込めます。
・「Train」を押して実行
最後に
今回は簡単にDataiku上でcatboostの実装手順について解説しました。
ハイパーパラメータのチューニング次第では、現在お使いのモデルからさらに予測精度を向上させる可能性を秘めています。Dataiku上での実装ハードルも決して高くありませんので、ぜひ皆さんのデータ分析プロジェクトでもCatBoostを試してみてください。
