要約
scikit-learnは、Pythonで書かれた機械学習のためのオープンソースライブラリで、簡単なAPIと多数の便利な機能を提供します。
データマイニングやデータ分析、画像処理や自然言語処理など、幅広い機械学習タスクに使用されます。
また、高度なモデル選択や評価方法のサポートも行っています。
詳細内容
scikit-learnを使って、簡単な機械学習のプログラムを作ってみましょう。
ここでは、Iris(アヤメ)の花の分類を行います。
Irisデータセットは、3種類のアヤメの花(Setosa、Versicolour、Virginica)のそれぞれ50個のデータが含まれる、有名なデータセットです。
各花には4つの特徴量(Sepal Length、Sepal Width、Petal Length、Petal Width)があります。
まず、必要なライブラリをインポートします。
“`python
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
“`次に、Irisデータセットをロードします。
“`python
iris = load_iris()
X, y = iris.data, iris.target
“`ここでは、アヤメのデータが`X`、それぞれのアヤメの種類が`y`に格納されます。
`X`は、個々のアヤメの花の4つの特徴量を含む2次元配列で、`y`は、それぞれのアヤメの種類を示す1次元配列です。
次に、データをトレーニングデータとテストデータに分割します。
“`python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
““train_test_split`関数は、指定した割合でトレーニングデータとテストデータをランダムに分割してくれます。
上記の例では、トレーニングデータが全体の80%、テストデータが20%(`test_size=0.2`)になります。
次に、分類器を作成しましょう。
ここでは、サポートベクトルマシン(Support Vector Machine, SVM)を使用します。
“`python
from sklearn.svm import SVC
clf = SVC()
““SVC()`関数を使うと、SVMの分類器を作成できます。
上記の例では、`clf`という名前で変数を作成しています。
次に、トレーニングデータを使って、SVMの分類器を学習させます。
“`python
clf.fit(X_train, y_train)
““fit`関数は、学習データを使ってモデルを学習させます。
上記の例では、`X_train`はトレーニングデータの特徴量、`y_train`はトレーニングデータのアヤメの種類を示す配列です。
学習が終了したら、テストデータを使って分類器の性能を評価します。
“`python
score = clf.score(X_test, y_test)
print(“Accuracy: {}”.format(score))
““score`関数は、テストデータを使用して分類器の性能を評価し、この場合は精度(Accuracy)を計算しています。
`format`関数を使用して、精度の値を表示しています。
以上で、Irisの花の分類を学習するプログラムが完成しました。
全体のコードは以下のようになります。
“`python
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.svm import SVCiris = load_iris()
X, y = iris.data, iris.targetX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)clf = SVC()
clf.fit(X_train, y_train)score = clf.score(X_test, y_test)
print(“Accuracy: {}”.format(score))
“`
コメント