機械学習系ライブラリ|「sklearn」の使い方・サンプルコード

Python

インストール方法

scikit-learn(通称sklearn)は、Pythonで機械学習を行うための強力なライブラリです。データ分析や予測モデルの構築に広く利用されています。以下に、scikit-learnのインストール方法を詳しく説明します。

1. Pythonのインストール

まず、Pythonがインストールされている必要があります。Pythonは公式サイトからダウンロードできます。

Pythonのバージョンは、3.6以降を推奨します。

2. pipの確認

通常、Pythonをインストールするとpipも自動的にインストールされます。コマンドラインまたはターミナルで以下のコマンドを実行して、pipがインストールされているか確認します。

pip --version

3. scikit-learnのインストール

pipを使用してscikit-learnをインストールします。以下のコマンドを実行してください。

pip install scikit-learn

これでscikit-learnのインストールが完了します。また、scikit-learnはNumPyやSciPy、Matplotlibなどのライブラリに依存しているため、これらも同時にインストールされます。

できること

scikit-learnは、機械学習に関する多くの機能を提供しています。主な機能は以下の通りです。

  1. 分類:
  • データを異なるクラスに分類するためのアルゴリズムが提供されています。例として、ロジスティック回帰、サポートベクターマシン(SVM)、決定木などがあります。
  1. 回帰:
  • 連続的な値を予測するための回帰アルゴリズムが含まれています。線形回帰、リッジ回帰、Lasso回帰などが利用可能です。
  1. クラスタリング:
  • データをグループに分けるためのクラスタリング手法が提供されています。K-meansや階層的クラスタリングなどがあります。
  1. 次元削減:
  • データの次元を削減して、視覚化や処理の効率を向上させる手法が含まれています。主成分分析(PCA)やt-SNEなどが利用可能です。
  1. モデル選択と評価:
  • モデルのパフォーマンスを評価するためのツールやメトリクスが提供されています。交差検証やグリッドサーチなどが含まれています。
  1. 前処理:
  • データのスケーリング、エンコーディング、欠損値の処理など、データ前処理のための機能が豊富にあります。

サンプルコード

以下に、scikit-learnを使用した基本的なサンプルコードを示します。この例では、Irisデータセットを使用して、分類モデルを構築し、評価する方法を説明します。

サンプルコード:Irisデータセットを使った分類

import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import classification_report, confusion_matrix

# Irisデータセットの読み込み
iris = datasets.load_iris()
X = iris.data
y = iris.target

# データの分割(80%トレーニング、20%テスト)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# データの標準化
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

# K近傍法のモデルを作成
model = KNeighborsClassifier(n_neighbors=3)
model.fit(X_train, y_train)

# テストデータで予測
y_pred = model.predict(X_test)

# 結果の評価
print("Confusion Matrix:")
print(confusion_matrix(y_test, y_pred))
print("\nClassification Report:")
print(classification_report(y_test, y_pred))

# データの可視化(2次元)
plt.scatter(X_test[:, 0], X_test[:, 1], c=y_pred, cmap='viridis', marker='o', label='Predicted')
plt.scatter(X_test[:, 0], X_test[:, 1], c=y_test, cmap='coolwarm', marker='x', label='True')
plt.title('Iris Classification')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.legend()
plt.show()

コードの説明

  1. データの読み込み:
  • datasets.load_iris()を使用してIrisデータセットを読み込みます。このデータセットは、150個のサンプルからなる3つの異なる種のアヤメの特徴を含んでいます。
  1. データの分割:
  • train_test_split()を使用して、データをトレーニングセット(80%)とテストセット(20%)に分割します。
  1. データの標準化:
  • StandardScaler()を使用して、データを標準化します。これは、各特徴量が平均0、標準偏差1になるようにスケーリングします。
  1. モデルの作成と学習:
  • KNeighborsClassifier()を使用してK近傍法のモデルを作成し、トレーニングデータで学習させます。
  1. 予測と評価:
  • テストデータで予測を行い、混同行列と分類レポートを出力します。これにより、モデルのパフォーマンスを評価できます。
  1. データの可視化:
  • Matplotlibを使用して、テストデータの予測結果を可視化します。予測結果と実際の値を異なるマーカーで表示し、モデルの性能を視覚的に確認できます。

まとめ

scikit-learnは、機械学習のための非常に強力で使いやすいライブラリです。分類、回帰、クラスタリング、次元削減など、さまざまな機械学習手法を簡単に実装できるため、データサイエンティストや研究者に広く利用されています。

インストールも簡単で、数行のコードで基本的な機械学習モデルを構築することができます。データの前処理やモデル評価のためのツールも豊富に用意されており、機械学習のワークフローをスムーズに進めることができます。

ただし、scikit-learnは非公式なAPIや特定の機能に依存することがあるため、常に最新のドキュメントを確認することが重要です。また、scikit-learnは小規模から中規模のデータセットに最適化されており、大規模なデータセットには他のライブラリ(例:TensorFlowやPyTorch)を検討することが推奨されます。

scikit-learnを使用することで、機械学習の基礎を学び、実際のデータ分析プロジェクトに応用することができます。興味がある方は、ぜひscikit-learnを試してみてください。データ分析や機械学習の新たな可能性を広げることができるでしょう。

このライブラリの他にも機械学習系ライブラリの記事も書いています。
ぜひ、見てみてください。

コメント

タイトルとURLをコピーしました