【Kaggle】CatBoostの公式ドキュメントを実行してみた
はじめに
こんにちは、がんがんです。
ひょんなことからKaggleの勉強を始めました。
Kaggleの本をみているとブースティング系が使われていることが多いんだなということが分かりました。
そこで、今回はCatBoostについて公式ドキュメントを参考にしながら試していきたと思います。
目次
- はじめに
- 目次
- 公式ドキュメント
- 環境
- インストール
- STEP1:Regression
- STEP2:Binary Classification
- STEP3:Multicassfication
- 参考まとめ
- おわりに
公式ドキュメント
https://catboost.ai/docs/concepts/python-quickstart.html
環境
今回はGoogle Colabを使用しています。
インストール
まずはライブラリをインストールします。
pip install catboost
STEP1:Regression
回帰問題のケースです。
参考
コード
from catboost import CatBoostRegressor # data init train_data = [[1, 4, 5, 6], [4, 5, 6, 7], [30, 40, 50, 60]] eval_data = [[2, 4, 6, 8], [1, 4, 50, 60]] train_labels = [10, 20, 30] # model init model = CatBoostRegressor( iterations=2, learning_rate=1, depth=2 ) # model fit model.fit(train_data, train_labels) # prediction preds = model.predict(eval_data) print(preds)
実行結果
0: learn: 6.1237244 total: 222us remaining: 222us 1: learn: 4.5927933 total: 347us remaining: 0us [15.625 18.125]
STEP2:Binary Classification
2値分類のケースです。
参考
コード
from catboost import CatBoostClassifier # data init cat_features = [0, 1] train_data = [["a", "b", 1, 4, 5, 6], ["a", "b", 4, 5, 6, 7], ["c", "d", 30, 40, 50, 60]] train_labels = [1, 1, -1] eval_data = [["a", "b", 2, 4, 6, 8], ["a", "d",1, 4, 50, 60]] # model init # iterations:学習epoch model = CatBoostClassifier(iterations=2, learning_rate=1, depth=2) # model fit model.fit(train_data, train_labels, cat_features) # model predict preds_class = model.predict(eval_data) preds_proba = model.predict_proba(eval_data) preds_raw = model.predict(eval_data, prediction_type="RawFormulaVal") print(preds_class)
実行結果
0: learn: 0.5800330 total: 139us remaining: 139us 1: learn: 0.4935379 total: 263us remaining: 0us [1 1]
STEP3:Multicassfication
多分類のケースです。
参考
コード
from catboost import Pool, CatBoostClassifier # data init train_data = [["summer", 1924, 44], ["summer", 1932, 37], ["winter", 1980, 37], ["summer", 2012, 204]] eval_data = [["winter", 1996, 197], ["winter", 1968, 37], ["summer", 2002, 77], ["summer", 1948, 59]] cat_features = [0] train_label = ["France", "USA", "USA", "UK"] eval_label = ["USA", "France", "USA", "UK"] train_dataset = Pool( data=train_data, label=train_label, cat_features=cat_features) eval_dataset = Pool( data=eval_data, label=eval_label, cat_features=cat_features) # create model model = CatBoostClassifier( iterations=10, learning_rate=1, depth=2, loss_function="MultiClass") # model fit model.fit(train_dataset) # Get predicted classes preds_class = model.predict(eval_dataset) print(preds_class) preds_proba = model.predict_proba(eval_dataset) preds_raw = model.predict( eval_dataset, prediction_type="RawFormulaVal") print(preds_raw)
参考まとめ
catboost.ai catboost.ai catboost.ai
おわりに
今回は公式ドキュメントのexampleを読みながら実装の実験を行なっていきました。 次回はscikit-learnとかで用意されているdatasetを使って試してみようと思います。