SVC(サポートベクターマシン)の使い方(sklearn)



Python
Pythonとは
基本的な使い方
IDLE
Jupyter Notebook
Markdown
コマンドプロンプトで実行
仮想環境の構築
仮想環境でIDLEを実行
ライブラリのインストール
pipの使い方
numpy , matplotlib等
graphviz
pytorch
Mecab
Pythonの関数:一覧
共通関数
append , extend
class
copy
csv.reader
csv.writer
def , return
dict , defaultdict
enumerate
exit
for
if
import
in
input
lambda
len
list
min/max
OrderedDict
open/close
os
pickle
print
range
re.split
read/readline
round/floor/ceil
split
sys.argv
time
while
write
zip
・特殊メソッド
 ・__name__
 ・__iter__ , __next__
正規表現、メタ文字
データの型の種類
四則演算 (+ , - , * , /)
コメントアウト (# , ''')
numpy
append
arange
argmax/argmin
array
asfarray
astype , dtype
digitize
dot
hstack/vstack
linalg.solve
linspace
mean
meshgrid
mgrid
ndim
ndmin
pad
poly1d
polyfit
prod
random
reshape
savetxt/loadtxt
shape
std
transpose
where
zeros/zeros_like
scipy
expit
imread
interpolate
matplotlib
imshow
figure
pcolormesh
plot
scatter
scikit-learn
GaussianNB
KMeans
KNeighborsClassifier
SVC
tree
keras
chainer
chainerrl
pytorch
BCELoss , MSELoss
Embedding
device
Sequential
Dataset, Dataloader
RNN, LSTM
OpenAI gym
Blackjack-v0
CartPole-v0
tkinter
frame, grid
画像表示
画像を切り取り表示
画像を保存
目的別
ステップ関数
1 of K 符号化法
線形補間
配列に番号をつける

公開日:2020/2/24         

In English


■SVC関数の説明

サポートベクターマシン(SVM)による分類を実施します。SVMの詳細はこちら。scikit-learn等の各種ライブラリのインストールはこちら

■SVC関数の具体例

以下グラフにおいて特徴データからテストデータのラベル値を分類します。



プログラムは以下のとおり。

from sklearn import svm
import numpy as np
import matplotlib.pyplot as plt

X = np.array([[5,10],[8,50],[10,20]])  # 特徴データ
Y = np.array([1, 2, 3])    # 特徴データのラベル
t = np.array([[9,20]])    # テストデータ

clf = svm.SVC(kernel='rbf', gamma =0.0001, C=1000)    # SVMの定義
clf.fit(X, Y)    # 特徴データにフィッティング
print(clf.predict(t))    # テストデータを分類

plt.plot([5,8,10],[10,50,20],'o')    # 特徴データのプロット
plt.plot([9],[20],'^')    # テストデータのプロット
plt.grid(True)
plt.show()


結果は3という値を返したと思います。確かに特徴データの3に近いところにあるので、結果は妥当かと思います。なおSVCの設定パラメータは以下のとおり。

<kernel>

カーネル関数を設定します。主に以下となります。

 linear:線形
 poly:多項式
 rbf:Radial basis function(放射基底関数) ここではガウスカーネルのこと
 sigmoid:シグモイドカーネル

<gamma>

訓練データの位置を中心とした分布の広がり度合いを決める。値が小さいほど緩やかな分布になり、訓練データの感度が下がる。 値が大きいと鋭い分布になり訓練データの位置に過学習しやすくなる。

<C>

コストパラメータ。値が小さいほど誤りを許容し、大きいほど誤りを許容しなくなるので過学習しやすくなる。









サブチャンネルあります。⇒ 何かのお役に立てればと

関連記事一覧



Python
Pythonとは
基本的な使い方
IDLE
Jupyter Notebook
Markdown
コマンドプロンプトで実行
仮想環境の構築
仮想環境でIDLEを実行
ライブラリのインストール
pipの使い方
numpy , matplotlib等
graphviz
pytorch
Mecab
Pythonの関数:一覧
共通関数
append , extend
class
copy
csv.reader
csv.writer
def , return
dict , defaultdict
enumerate
exit
for
if
import
in
input
lambda
len
list
min/max
OrderedDict
open/close
os
pickle
print
range
re.split
read/readline
round/floor/ceil
split
sys.argv
time
while
write
zip
・特殊メソッド
 ・__name__
 ・__iter__ , __next__
正規表現、メタ文字
データの型の種類
四則演算 (+ , - , * , /)
コメントアウト (# , ''')
numpy
append
arange
argmax/argmin
array
asfarray
astype , dtype
digitize
dot
hstack/vstack
linalg.solve
linspace
mean
meshgrid
mgrid
ndim
ndmin
pad
poly1d
polyfit
prod
random
reshape
savetxt/loadtxt
shape
std
transpose
where
zeros/zeros_like
scipy
expit
imread
interpolate
matplotlib
imshow
figure
pcolormesh
plot
scatter
scikit-learn
GaussianNB
KMeans
KNeighborsClassifier
SVC
tree
keras
chainer
chainerrl
pytorch
BCELoss , MSELoss
Embedding
device
Sequential
Dataset, Dataloader
RNN, LSTM
OpenAI gym
Blackjack-v0
CartPole-v0
tkinter
frame, grid
画像表示
画像を切り取り表示
画像を保存
目的別
ステップ関数
1 of K 符号化法
線形補間
配列に番号をつける