4
4

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.

はじめに

Scikit-learnは、Pythonの機械学習ライブラリで、分類、回帰、クラスタリング、次元削減、モデル選択、前処理などの機能が提供されています。ここでは、Scikit-learnの基本的な使い方と機能について説明します。
本記事で使用しているソースコードはこちらです

目次

  1. Scikit-learnのインストール
  2. データの読み込みと前処理
  3. モデルの選択と訓練
  4. モデルの評価
  5. モデルの保存と読み込み
  6. ハイパーパラメータチューニング

1. Scikit-learnのインストール

Scikit-learnはpipを使って簡単にインストールできます。

pip install scikit-learn

2. データの読み込みと前処理

Scikit-learnでは、データの前処理や分割を行うためのモジュールが提供されています。まずは、データセットを読み込みましょう。

from sklearn import datasets

breast_cancer = datasets.load_breast_cancer()
X = breast_cancer.data
y = breast_cancer.target

データセットを学習用とテスト用に分割するには、train_test_split関数を使用します。

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

3. モデルの選択と訓練

Scikit-learnでは、多くの機械学習アルゴリズムが提供されており、簡単にモデルの選択と訓練が行えます。ここでは、決定木を使った分類器を作成します。

from sklearn.tree import DecisionTreeClassifier

clf = DecisionTreeClassifier()
clf.fit(X_train, y_train)

4. モデルの評価

学習したモデルの性能を評価するために、テストデータを使って予測を行い、正解率を計算します。

from sklearn.metrics import accuracy_score

y_pred = clf.predict(X_test)
acc = accuracy_score(y_test, y_pred)
print("Accuracy:", acc)

5. モデルの保存と読み込み

学習したモデルを保存して再利用することができます。pickleモジュールまたはjoblibモジュールを使ってモデルを保存し、読み込むことができます。ここでは、joblibを使用した例を示します。

pip install joblib
import joblib

# モデルの保存
joblib.dump(clf, 'model.pkl')

# モデルの読み込み
loaded_clf = joblib.load('model.pkl')

# 読み込んだモデルで予測
y_pred = loaded_clf.predict(X_test)
acc = accuracy_score(y_test, y_pred)
print("Accuracy:", acc)

6. ハイパーパラメータチューニング

モデルの性能を向上させるために、ハイパーパラメータを調整します。Scikit-learnでは、GridSearchCVRandomizedSearchCVを使って簡単にハイパーパラメータの探索ができます。ここでは、GridSearchCVを使った例を示します。

from sklearn.model_selection import GridSearchCV

param_grid = {'max_depth': [2, 3, 4, 5],
              'min_samples_split': [2, 3, 4, 5]}

grid_search = GridSearchCV(DecisionTreeClassifier(), param_grid, cv=5, scoring='accuracy')

grid_search.fit(X_train, y_train)

# 最適なハイパーパラメータの組み合わせを表示
print("Best parameters:", grid_search.best_params_)

# 最適なハイパーパラメータで訓練されたモデルを取得
best_clf = grid_search.best_estimator_

# モデルの評価
y_pred = best_clf.predict(X_test)
acc = accuracy_score(y_test, y_pred)
print("Accuracy:", acc)

これで、Scikit-learnを使って機械学習モデルの作成、評価、保存、読み込み、ハイパーパラメータチューニングができるようになりました。Scikit-learnには他にも多くの機能がありますので、公式ドキュメントを参照してください。

4
4
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
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?