サーチ…


サポートベクターマシンの使用

サポートベクターマシンは、平面からの距離がある意味で最適であるように、2つのラベル付けされた点集合の間で(場合によっては高次元の)超平面を渡そうとするアルゴリズムのファミリです。 SVMは分類または回帰に使用できます(それぞれsklearn.svm.SVCおよびsklearn.svm.SVRに対応)。

例:

2D空間で作業すると仮定します。まず、いくつかのデータを作成します。

import numpy as np

今度はxyを作成します:

x0, x1 = np.random.randn(10, 2), np.random.randn(10, 2) + (1, 1)
x = np.vstack((x0, x1))

y = [0] * 10 + [1] * 10

xは2つのガウス分布で構成されています 1つは(0、0)を中心に、もう1つは(1,1)を中心にしています

クラシファイアを作成するには、以下を使用できます。

from sklearn import svm

svm.SVC(kernel='linear').fit(x, y)

(0、0)の予測を確認しましょう:

>>> svm.SVC(kernel='linear').fit(x, y).predict([[0, 0]])
array([0])

予測はクラスが0であるということです。

回帰については、同様に行うことができます:

svm.SVR(kernel='linear').fit(x, y)

RandomForestClassifier

ランダムフォレストは、データセットのさまざまなサブサンプルに多数のデシジョンツリー分類子を適合させ、平均精度を使用して予測精度とオーバーフィットを改善するメタ推定器です。

簡単な使用例:

インポート:

from sklearn.ensemble import RandomForestClassifier

列車データと目標データを定義する:

train = [[1,2,3],[2,5,1],[2,1,7]]
target = [0,1,0]

target内の値は、予測したいラベルを表します。

RandomForestオブジェクトを開始し、学習(フィット)を実行します。

rf = RandomForestClassifier(n_estimators=100)
rf.fit(train, target)

予測:

test = [2,2,3]
predicted = rf.predict(test)

分類レポートの分析

精度とリコールf1スコア (精度とリコールのハーモニック平均 )、サポート(トレーニングセット内のそのクラスの観測数)を含む主な分類メトリックを示すテキストレポートを作成します。

sklearn docsの例:

from sklearn.metrics import classification_report
y_true = [0, 1, 2, 2, 2]
y_pred = [0, 0, 2, 2, 1]
target_names = ['class 0', 'class 1', 'class 2']
print(classification_report(y_true, y_pred, target_names=target_names))

出力 -

         precision    recall  f1-score   support

class 0       0.50      1.00      0.67         1
class 1       0.00      0.00      0.00         1
class 2       1.00      0.67      0.80         3

avg / total   0.70      0.60      0.61         5

GradientBoostingClassifier

分類のためのグラジエントブースト 。 Gradient Boosting Classifierは、残差(前の段階の誤差)を補正する回帰木の追加によって、誤差が逐次反復(または段階)で補正される基本モデルの加法集合です。

インポート:

from sklearn.ensemble import GradientBoostingClassifier

おもちゃの分類データを作成する

from sklearn.datasets import load_iris

iris_dataset = load_iris()

X, y = iris_dataset.data, iris_dataset.target

このデータをトレーニングとテストのセットに分割しましょう。

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=0)

デフォルトのパラメータを使用してGradientBoostingClassifierモデルをインスタンス化します。

gbc = GradientBoostingClassifier()
gbc.fit(X_train, y_train)

私たちはテストセットでそれを得ましょう

# We are using the default classification accuracy score
>>> gbc.score(X_test, y_test)
1

デフォルトでは、100人の見積もりが構築されています

>>> gbc.n_estimators
100

これは、初期化時にn_estimatorsを別の値に設定することで制御できます。

意思決定ツリー

デシジョンツリーは、(> 7のような)冗長なルールのシーケンスを使用して簡単に理解できるクラシファイアです。

以下の例は、長さ3の3つの特徴ベクトルを使用して決定ツリー分類器を訓練し、次に、未知の第4の特徴ベクトル、いわゆるテストベクトルの結果を予測する。

from sklearn.tree import DecisionTreeClassifier

# Define training and target set for the classifier
train = [[1,2,3],[2,5,1],[2,1,7]]
target = [10,20,30]

# Initialize Classifier. 
# Random values are initialized with always the same random seed of value 0 
# (allows reproducible results)
dectree = DecisionTreeClassifier(random_state=0)
dectree.fit(train, target)

# Test classifier with other, unknown feature vector
test = [2,2,3]
predicted = dectree.predict(test)

print predicted

出力は以下を使用して視覚化できます。

import pydot
import StringIO

dotfile = StringIO.StringIO()
tree.export_graphviz(dectree, out_file=dotfile)
(graph,)=pydot.graph_from_dot_data(dotfile.getvalue())
graph.write_png("dtree.png")
graph.write_pdf("dtree.pdf")

ロジスティック回帰を用いた分類

LR分類器では、単一の試行の可能な結果を​​記述する確率は、ロジスティック関数を使用してモデル化される。 linear_modelライブラリに実装されてlinear_modelます

from sklearn.linear_model import LogisticRegression

Sklearn LRの実装は、バイナリ、One-vs-Rest、多項ロジスティック回帰、オプションのL2またはL1正規化を満たすことができます。たとえば、サンプルsklearnデータセットのバイナリ分類を考えてみましょう

from sklearn.datasets import make_hastie_10_2

X,y = make_hastie_10_2(n_samples=1000)

Xはn_samples X 10配列、yはターゲットラベル-1または+1です。

列車テスト分割を使用して、入力データをトレーニングセットとテストセットに分割します(70%〜30%)

from sklearn.model_selection import train_test_split 
#sklearn.cross_validation in older scikit versions

data_train, data_test, labels_train, labels_test = train_test_split(X,y, test_size=0.3)

LRクラシファイアの使用は他の例と同様です

# Initialize Classifier. 
LRC = LogisticRegression()
LRC.fit(data_train, labels_train)

# Test classifier with the test data
predicted = LRC.predict(data_test)

錯乱マトリックスを使用して結果を視覚化する

from sklearn.metrics import confusion_matrix

confusion_matrix(predicted, labels_test)


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow