Python/scikit-learn

Last-modified: Tue, 27 Nov 2018 13:34:14 JST (1977d)
Top > Python > scikit-learn

スマホ版が見づらい場合はPC版をお試しください

version

Scikit-learn 0.162015 04/15
Scikit-learn 0.172015 11/05
Scikit-learn 0.18.22017 06/28
Scikit-learn 0.19.22018 07/27
Scikit-learn 0.20.02018 09/27

Scikit-learn 0.21は、2018年10月現在では開発版である。

インストール

 最新の安定板である scikit-learn 0.20.0 は Python 2.7もしくはPython 3.4以上を使う必要がありあmす。また、開発版のscikit-learn 0.21.dev0 ではPython 3.5以上に対応となっています。
(なお、Python 3.7 には対応してない問題は解決された模様か。)

事前にインストールすべきツール

 最新の安定板(2018年10月現在)の場合、SciPyの0.13.3以上と、 NumPy の 1.8.2以上がインストールされている必要がある。これらについて、『pip install scipy』『pip install numpy』でインストールできるかは確認中。⇒確認しました

NumPy のインストール

pip install numpy

SciPy

pip install scipy

scikit-learn 本体のインストール・アップデート

 SciPy と Numpy が既にインストール済の場合は、以下のコマンドのどちらかを使ってインストールできる。ただし、pip と conda の混用は危険であるため、気を付けること。

pipを使う場合、コンソールもしくはコマンドプロンプトで

pip install -U scikit-learn

condaを使う場合、コンソールもしくはコマンドプロンプトで

conda install scikit-learn

その他の関連ツール

データをグラフなどで出力したい場合、Matplotlib が必要となる。また、データの解析にはPandasが役に立つ可能性がある。

pip install matplotlib
pip install pandas

基本的な書き方

from sklearn.metrics import accuracy_score
from sklearn.metrics import confusion_matrix

estimator : 分類器を代入
train_data = 訓練のためのデータ
train_label = 訓練データと同じ順番の正解ラベル
test_data = テストのためのデータ
test_label = テストのための正解ラベル

estimator.fit(train_data, train_label)
pred_list = estimator.predict(test_data)
rate = accuracy_score(test_label, pred_list)
conf_matrix = confusion_matrix(test_label, pred_list)

このとき、pred_listが分類結果、rateが正答率、conf_matが混同行列になる。

importを認識しない

scikit-learnは

import sklearn

と書いても、認識されないライブラリが多い。

from sklearn.ensemble import RandomForestClassifier

のように、使いたい機能を指定してimportしましょう。

ランダムフォレスト

条件木を多数つくり、多数決をとることで分類する。割合雑に実装しても、そこそこの結果が出ることで有名。
importの仕方は

from sklearn.ensemble import RandomForestClassifier

学習させるには、訓練用のデータ(train_data)、訓練用の分類結果(train_label)、テスト用データ(test_data)、テスト用分類結果(test_label)を用意したうえで、

n_estimators = 10
estimator = RandomForestClassifier(n_estimators=n_estimators)
estimator.fit(train_data, train_label)
pred_list = estimator.predict(test_data)
rate = accuracy_score(test_label, pred_list)
conf_matrix = confusion_matrix(test_label, pred_list)

ただし、n_estimators は木の本数。
rate は正答の比、 conf_matrixは混同行列。

コメント

コメントはありません。 Comments/Python/scikit-learn

お名前: URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White