基於svm的鳶尾花資料集分類

2021-10-09 09:40:00 字數 1780 閱讀 9868

**與資料請見:

一.簡介

支援向量機,因其英文名為support vector machine,故一般簡稱svm,通俗來講,它是一種二類分類模型,其基本模型定義為特徵空間上的間隔最大的線性分類器,其學習策略便是間隔最大化,最終可轉化為乙個凸二次規劃問題的求解。最基礎的便是二分類問題,給定乙個資料集,含有多個屬性,通過這些屬性,建立超平面,使得這些點分為2類,定義標籤1與-1,然後對其他的點進行**。

本文進行了一些相關的實驗,實現svm分類程式對鳶尾花資料集進行分類,並分析結果與得出相關的結論。

二.問題描述與資料描述

1.問題描述

本次主要是在二分類的基礎上實現乙個多分類問題,即鳶尾花的分類。使用一對多的方法,

訓練時依次把某個類別的樣本歸為一類,其他剩餘的樣本歸為另一類,這樣k個類別的樣本就構造出了k個svm。分類時將未知樣本分類為具有最大分類函式值的那類。有三類要劃分(也就是3個label),記為a、b、c。於是抽取訓練集的時候,分別抽取

(1)a所對應的向量作為正集,b,c所對應的向量作為負集;

(2)b所對應的向量作為正集,a,c所對應的向量作為負集;

(3)c所對應的向量作為正集,a,b所對應的向量作為負集;

使用這四個訓練集分別進行訓練,然後的得到四個訓練結果檔案。在測試的時候,把對應的測試向量分別利用這四個訓練結果檔案進行測試。最後每個測試都有乙個結果f1(x),f2(x),f3(x)。最終的結果便是這三個值中最大的乙個作為分類結果。

2.資料描述

matlab中有自帶的鳶尾花資料集,且都是已經處理好成mat格式,故只要直接匯入便可。它是很常用的乙個資料集,鳶尾花有三個分類,分別是山鳶尾(iris-setosa)、變色鳶尾(iris-versicolor)和維吉尼亞鳶尾(iris-virginica)。而且只有四個屬性,分別是花萼長度、花萼寬度、花瓣長度、花瓣寬度。總共150條資料。

三.如何解決問題

(一)模型假設

將鳶尾花的屬性以座標形式表示,建立以下支援向量機模型:

通過k-fold 多次劃分的形式進行訓練是為了獲取某個模型的效能指標,單一k-fold訓練的模型無法表示總體效能,但是通過k-fold訓練的訓練記錄下來較為優異的超引數,然後再以最優模型最優引數進行重新訓練,將會取得更優結果。

(3)加入徑向核函式(rbf)

對引數進行除錯,尋找最優的懲罰引數c與徑向核函式中的常數,**中用r表示。

(4)獲得問題矩陣h與求解二次規劃引數

用matlab中的x = quadprog(h,f,a,b,aeq,beq,lb,ub,x0)函式來求解引數。

(5)使用測試集測試,計算函式值並判斷類別

(6)分別實現三個分類器

(7)實現多分類,取得最優值,並得出準確率

四.數值實驗

(一)分析結果

1.程式設計實現svm結果

類別:(1)versicolor,最優懲罰引數c為6,最優徑向核函式常數r為3,訓練得到的準確率為98%;

(2)virginica,最優懲罰引數c為1,最優徑向核函式常數r為2,訓練得到的準確率為97.33%;

(3)setosa,最優懲罰引數c為1,最優徑向核函式常數r為1,訓練得到的準確率為100%;

建立的多分類向量機的結果:準確率為90%;

五.總結

實現了svm多分類,準確率也是達到了90%。不過還有很多地方可以優化,而且還是有很多不足的,比如只使用了徑向核函式,沒有使用其他核函式進行對比,之後可以考慮在新增其他的核函式進行比較,看哪種比較適合。

鳶尾花資料集

from sklearn import datasets iris datasets.load iris iris是乙個字典集keys iris.keys dict keys data target target names descr feature names data iris.data.sh...

鳶尾花分類 機器學習 鳶尾花資料集 貝葉斯分類

step1 庫函式匯入 import warnings warnings.filterwarnings ignore import numpy as np 載入鶯尾花資料集 from sklearn import datasets 匯入高斯樸素貝葉斯分類器 from sklearn.bayes im...

實驗一 鳶尾花資料集分類

利用機器學習演算法構建模型,根據鳶尾花的花萼和花瓣大小,區分鳶尾花的品種。實現乙個基礎的三分類問題。該函式返回乙個bunch物件,它直接繼承自dict類,與字典類似,由鍵值對組成。可以使用bunch.keys bunch.values bunch.items 等方法。print type iris ...