SVMについてのメモ
SVM
参考
scikit-learnのSVMでirisデータセットを分類 | / note.nkmk.me
scikit-learnのSVMでMNISTの手書き数字データを分類 | / note.nkmk.me
カーネル法
参考
scikit-learnで線形モデルとカーネルモデルの回帰分析をやってみた - イラストで学ぶ機会学習
MNISTの分類問題
from matplotlib import pyplot as plt from sklearn.datasets import fetch_mldata from sklearn import svm,metrics,model_selection mnist = fetch_mldata('MNIST original', data_home='data/src/download/') print(type(mnist)) print(mnist.keys()) mnist_label=mnist["target"] mnist_data=mnist["data"]/255 print(mnist_data.shape) print(mnist_label.shape) train_size = 30000 test_size = 1000 data_train, data_test, label_train, label_test = \ model_selection.train_test_split \ (mnist_data, mnist_label,test_size=test_size, train_size=train_size) clf = svm.SVC() clf.fit(data_train, label_train) pre = clf.predict(data_test) ac_score = metrics.accuracy_score(label_test, pre) print(ac_score)
Irisの分類問題
from matplotlib import pyplot as plt from sklearn.datasets import load_iris from sklearn import svm,metrics,model_selection import numpy as np import pandas as pd iris=load_iris() iris_data=pd.DataFrame(iris["data"],columns=iris["feature_names"]) print(iris_data.head(5)) iris_label = pd.Series(data=iris["target"]) print(iris_label.head(5)) data_train, data_test, label_train, label_test = \ model_selection.train_test_split(iris_data, iris_label) print(data_train.head(5)) print() print(label_train.head(5)) print() print(len(data_train), len(data_test)) clf = svm.SVC() clf.fit(data_train, label_train) pre = clf.predict(data_test) ac_score = metrics.accuracy_score(label_test, pre) print(ac_score)