こんにちは、えんせきです。
また出張から帰ってきました。お外にいる時間が長かったので微妙に日焼けして、顔はほてったような感覚があります。
つまりなにしたの?
せっかく導入したXGBoostがちゃんと使えるのか試すために、機械学習のHello Worldとも言えるIrisデータ(アヤメの花弁とかのデータ)を使ってアヤメの種類がどれだけ当てられるのか試してみる。初回はデータの準備まで。
*1
前回まで
こないだ、XGBoostを無事にPyEnv環境にインストールすることが出来た。
ensekitt.hatenablog.com
方針
初回
次回
- ハイパーパラメータ探索しつつ学習する
- 評価する
- 変数の重要度を可視化
- 決定木をプロット
パッケージの読み込み
# 学習関連 import xgboost as xgb from sklearn import model_selection # 評価関連 from sklearn.metrics import confusion_matrix, classification_report # データセット from sklearn import datasets # データを扱うため import pandas as pd import numpy as np # 可視化関連 import matplotlib.pyplot as plt import graphviz
データセットの読み込み
iris = datasets.load_iris() # これだけで読み込んでくれる iris_df = pd.DataFrame(iris.data) iris_df = iris_df.rename(columns={ 0: 'sepal_length', 1: 'sepal_width', 2: 'petal_length', 3: 'petal_width'}) iris_df['target'] = iris.target iris_df.head()
データセットを学習用と評価用に分ける
これも便利なScikit-learnの関数を使う
train_df, test_df = model_selection.train_test_split(iris_df, test_size=0.3) # 30%をテストに使う train_df_y = train_df[['target']] train_df_x = train_df.copy().drop('target', axis=1) test_df_y = test_df[['target']] test_df_x = test_df.copy().drop('target', axis=1)
これでScikit系のFitを使うような学習に突っ込めるだけの準備が出来ました。
次回はこれを実際に学習していきたいと思います。
次回はこちら
ensekitt.hatenablog.com
次回って書いちゃったけど二回目ですね