2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

LazyPredictで一気に分類・回帰モデルの精度を検証する

Last updated at Posted at 2023-08-09

機械学習をする際に便利な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)

ml03.PNG

ml04.PNG

LazyPredictを用いればどのモデルが高い精度やROC率を出せるかを一挙に検討できます。これはアンサンブル学習等で比較的正解率の高いモデル同士を合わせたいときに便利です。また、predictionを出力すれば度の予測結果を採用するかも簡単に抽出ができます。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?