機械学習をする際に便利なLazyPredictを導入してみました。
SKLearn・LightGBMモデルの精度・評価指標とテストデータの予測値を一挙に検討できるので非常に便利です。自分用に分類予測用・回帰予測用のコードをメモしておきます。
回帰モデル
# 以下のライブラリを使用
import numpy as np
import pandas as pd
import datetime
# 可視化ライブラリ
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
%matplotlib inline
# 小数第3位までを表示
%precision 3
# 今回は住宅価格の予測=回帰予測を行う
from sklearn.datasets import fetch_california_housing
data = fetch_california_housing()
X = data.data
y = data.target
df_X = pd.DataFrame(X)
df_y = pd.DataFrame(y)
# NOTE axis=1 横方向に連結
df = pd.concat([df_X, df_y], axis=1)
from sklearn.model_selection import train_test_split
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size = 0.2, random_state = 1)
LazyPredictによる回帰モデルの作成
import lazypredict
from lazypredict.Supervised import LazyRegressor
reg = LazyRegressor(ignore_warnings=True, random_state=1121218, verbose=False,predictions=True)
models, predictions = reg.fit(X_train, X_val, y_train, y_val)
print("モデルの精度・評価指標:")
display(models)
print("テストデータの予測値:")
display(predictions)
分類モデル
# 以下のライブラリを使用
import numpy as np
import pandas as pd
import datetime
# 可視化ライブラリ
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
%matplotlib inline
# 小数第3位までを表示
%precision 3
# 今回は乳がん患者の疾病予測を分類する
from sklearn.datasets import load_breast_cancer
data = load_breast_cancer()
data
X = data.data
y = data.target
df_X = pd.DataFrame(X)
df_y = pd.DataFrame(y)
# NOTE axis=1 横方向に連結
df = pd.concat([df_X, df_y], axis=1)
from sklearn.model_selection import train_test_split
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size = 0.2, random_state = 1)
LazyPredictによる分類モデルの作成
import lazypredict
from lazypredict.Supervised import LazyClassifier
reg = LazyClassifier(ignore_warnings=True, random_state=1121, verbose=False,predictions=True)
models, predictions = reg.fit(X_train, X_val, y_train, y_val)
print("モデルの精度・評価指標:")
display(models)
print("テストデータの予測値:")
display(predictions)
LazyPredictを用いればどのモデルが高い精度やROC率を出せるかを一挙に検討できます。これはアンサンブル学習等で比較的正解率の高いモデル同士を合わせたいときに便利です。また、prediction
を出力すれば度の予測結果を採用するかも簡単に抽出ができます。