PYTHONでsklearnを使う

サイトの紹介と使い方動画


created: 2021/08/03 modified: 2021/09/14

インストールと宣言

①インストール方法


>pip scikit-learn
>conda scikit-learn

②ソース内での宣言


import sklearn

機能

①多くの機械学習の方法を用意しています。

最近傍分類(リファレンス1.6.2)

学習

# 宣言部
from sklearn.neighbors import KNeighborsClassifier
# コード部
knn = KNeighborsClassifier(n_neighbors=1)
knn.fit(X_train, y_train)
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
           metric_params=None, n_jobs=1, n_neighbors=1, p=2,
           weights='uniform')

①筆者は、PYTHON言語に詳しくないので、詳細な構文の説明ができませんので、ご容赦ください。
②knn = KNeighborsClassifier(n_neighbors=1)
変数knnにKNeighborsClassifierオブジェクトを代入します。
引数n_neighbors=1は、そのまま使います。
②knn.fit(X_train, y_train)
変数knnに学習用データを与えます。
X_train:説明変数
y_train:目的変数
③ KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski', metric_params=None, n_jobs=1, n_neighbors=1, p=2,weights='uniform')
KNeighborsClassifier関数で学習を行います。
変数knnとKNeighborsClassifierオブジェクトは、同じインスタンスにアクセスしています。
①で述べたように筆者の無理解からKNeighborsClassifierが、オブジェクトなのか関数なのか明確に断言できません。
C++言語であれば、KNeighborsClassifier()は、コンストラクタ関数なので、PYTHON言語のような使い方はしないのですが、ここはPYTHON言語の流儀に従います。
algorithm='auto':autoの時、学習方法が自動で最適化されます。
leaf_size=30:決定木の深さですので、大きな数値を指定するとメモリが足りなくなってプログラムが動作しなくなります。
metric='minkowski':この値で固定します。
metric_params=None:この値で固定します。
n_jobs=1:学習そのものに影響はないようですが、学習マシンが有料の場合、1以外では課金料に影響が出ます。
n_neighbors=1:この値で固定します。
p=2:この値で固定します。
weights='uniform':この値で固定します。
詳細は、sklearn.neighbors.KNeighborsClassifier を参照してください。

評価

# 宣言部
import numpy as np
# コード部
y_pred = knn.predict(X_test)

np.mean(y_pred == y_test)

①y_pred = knn.predict(X_test)
学習したパラメータは、変数knnまたはKNeighborsClassifierオブジェクトに格納されているので、テスト用の説明変数X_testを代入して、目的変数y_predを算出します。
②np.mean(y_pred == y_test)
算出したy_predと正解値y_testを比較して正答率を求めます。
③全体のコードのサンプルはアイリスのデータセットで試すにありますので、参照してください。

①説明変数の関係などを図にプロットすることができますが、説明が複雑になるので割愛します。
②図の方がイメージしやすいという方は、他のサイトを探せばたくさん出てくるので、そちらを参照してください。

オブジェクト リファレンス

sklearn リファレンス
分類または回帰、クラスタリングをクリックします。

メールアドレス:

お問合せ・御要望

  • お問合せ
  • トップへ戻る
    タイトルとURLをコピーしました