Pythonでの機械学習の基礎:Scikit-learnを使って、簡単な分類を行う方法

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による機械学習の習得には下記のようなオンラインコースの利用がおすすめです。

click.linksynergy.com

click.linksynergy.com

click.linksynergy.com