Kaggleを触ってお勉強します。
勉強したことや試したことをつれづれに淡々と書いていきます。
1. kaggle api のセットアップ
まずはじめにkaggle-apiをセットアップ。
Readmeにしたがってセットアップすれば迷うことはありません。
KaggleのMyAccountで”API Token”を作成
"Create New API Token"ボタンを押すことで"kaggle.json"をダウンロードできます
~/.kaggle/kaggle.json に配置
chmod 600 ~/.kaggle/kaggle.json で権限を変更
pip install kaggle
mkdir ~/.kaggle
mv kaggle.json ~/.kaggle/kaggle.json
chmod 600 ~/.kaggle/kaggle.json
pip install kaggle
2. データセットをダウンロードする
データセットをダウンロードしてみます。
データ・セットのページにダウンロードコマンドが記載されているのでそのまま試してみると…
kaggle competitions download -c springleaf-marketing-response
403エラーが発生してしまいました…
(work) $ kaggle competitions download -c springleaf-marketing-response
403 - Forbidden
Rulesページでアクセプトボタンを押す必要があるようです。 .Rules
You must accept this competition’s rules before you can continue
”I Understand and Accept”を押してもう一度コマンドを実行してみると無事ダウンロードすることができました。
3. Kaggle Notebook を使用してみる
Kaggle Notebookを試してみます。
使用方法は簡単。
下記ページで "New notebook" ボタンを押すだけ
Notebookが作成されます。
はじめから下記の様なコードが書かれているので実行することでデータの配置場所を確認できます。
# This Python 3 environment comes with many helpful analytics libraries installed
# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python
# For example, here's several helpful packages to load
import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
# Input data files are available in the read-only "../input/" directory
# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory
import os
for dirname, _, filenames in os.walk('/kaggle/input'):
for filename in filenames:
print(os.path.join(dirname, filename))
# You can write up to 5GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using "Save & Run All"
# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session
/kaggle/input/springleaf-marketing-response/test.csv.zip
/kaggle/input/springleaf-marketing-response/train.csv.zip
/kaggle/input/springleaf-marketing-response/sample_submission.csv.zip
3.1. データをインポートしてみる
Notebookからデータを参照するには"../input/"を参照します。
またpandas.read_csvはzipファイルを読み込むことが可能です。
ですので下記のコードでデータをインポートできます。
import pandas as pd
PATH = "../input/springleaf-marketing-response/"
train = pd.read_csv(PATH + "train.csv.zip", nrows=200)
train
shapeを確認してみると1934変数。変数の数が多いデータ・セットを探していたのでぴったりです。
4. 目的変数の対数変換
回帰問題の常套手段、対数変換。
4.1. np.log1p
対数変換します。0値を対数変換することができないので1を足してから変換します。
4.2. np.expm1
対数変換した結果を元に戻すときに使用します。
4.3. 使用例
データ作成: boston: X, y作成
対数変換: y_log1p
モデル構築:lightgbm
評価:クロスバリデーションでMSE
対数変換しない場合とした場合のスコアを比較
目的変数を対数変換している場合には予測値をexpm1で元のスケールに戻しています
対数変換後にモデルを構築したほうが良いスコアが出ていることを確認できます。