Pythonで機械学習を学ぶ場合、Scikit-learnは人気のあるライブラリの一つです。Scikit-learnは、簡単に使えるAPIと多数のモジュールを提供することで、機械学習における多くの問題に対応できるようになっています。
この記事では、Scikit-learnを使って簡単な分類を行う方法を紹介します。具体的には、Irisデータセットを使用して、花の種類を分類する問題を解決します。
Irisデータセット
Irisデータセットは、Scikit-learnに含まれているサンプルデータの一つで、3つの異なる種類のアヤメの花に関する情報が含まれています。各花には、がく片の長さ、がく片の幅、花弁の長さ、花弁の幅の4つの特徴があります。このデータセットを使用して、機械学習の基礎を学ぶことができます。
データセットの読み込み
まず、Scikit-learnのload_iris()
関数を使って、Irisデータセットを読み込みます。
from sklearn.datasets import load_iris iris = load_iris()
データの前処理
次に、読み込んだデータを前処理します。前処理とは、データを整形して、機械学習アルゴリズムに適した形式に変換することです。
X = iris.data y = iris.target
ここで、X
は花の特徴量の配列であり、y
は花の種類を表すラベルの配列です。
データの分割
機械学習において、データをトレーニング用とテスト用に分割することが重要です。トレーニング用データは、モデルの学習に使用され、テスト用データは、モデルの性能を評価するために使用されます。
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)
ここで、test_size
はテスト用データの割合を表し、random_state
は乱数生成器のシードを指定するパラメータです。
分類モデルの作成
今回の分類ではロジスティック回帰のアルゴリズムを利用します。Scikit-learnのLogisticRegression
クラスを使用して、分類モデルを作成します。
from sklearn.linear_model import LogisticRegression clf = LogisticRegression(random_state=0) clf.fit(X_train, y_train)
ここで、clf
は作成した分類器のインスタンスです。fit()
関数を使用して、モデルをトレーニングします。
モデルの評価
最後に、作成したモデルを使用して、テスト用データの分類を行います。
y_pred = clf.predict(X_test)
predict()
関数を使用して、テスト用データを分類します。そして、y_pred
には、モデルが予測した花の種類の配列が格納されます。モデルの性能を評価するために、accuracy_score
関数を使用して、正解率を計算します。
from sklearn.metrics import accuracy_score accuracy = accuracy_score(y_test, y_pred) print("Accuracy: ", accuracy)
完成したコード
以下に、すべてのコードをまとめたものを示します。
from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score iris = load_iris() X = iris.data y = iris.target X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) clf = LogisticRegression(random_state=0) clf.fit(X_train, y_train) y_pred = clf.predict(X_test) accuracy = accuracy_score(y_test, y_pred) print("Accuracy: ", accuracy)
まとめ
以上が、Scikit-learnを使用して簡単な分類を行う方法です。この例では、Irisデータセットを使用しましたが、同様の手順で、他のデータセットに対しても分類を行うことができます。Scikit-learnは、機械学習の多くの問題に対応できるように、多数のアルゴリズムを提供しています。ぜひ、Scikit-learnを使用して、自分自身で分類モデルを作成してみてください。Pythonによる機械学習の習得には下記のようなオンラインコースの利用がおすすめです。