最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 支持向量機(jī)分類器的實(shí)現(xiàn)

 更新時(shí)間:2020年01月15日 09:16:04   作者:小游園  
這篇文章主要介紹了Python 支持向量機(jī)分類器的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

支持向量機(jī)(Support Vector Machine, SVM)是一類按監(jiān)督學(xué)習(xí)(supervised learning)方式對(duì)數(shù)據(jù)進(jìn)行二元分類的廣義線性分類器(generalized linear classifier),其決策邊界是對(duì)學(xué)習(xí)樣本求解的最大邊距超平面(maximum-margin hyperplane)

SVM使用鉸鏈損失函數(shù)(hinge loss)計(jì)算經(jīng)驗(yàn)風(fēng)險(xiǎn)(empirical risk)并在求解系統(tǒng)中加入了正則化項(xiàng)以優(yōu)化結(jié)構(gòu)風(fēng)險(xiǎn)(structural risk),是一個(gè)具有稀疏性和穩(wěn)健性的分類器。SVM可以通過核方法(kernel method)進(jìn)行非線性分類,是常見的核學(xué)習(xí)(kernel learning)方法之一。

SVM被提出于1964年,在二十世紀(jì)90年代后得到快速發(fā)展并衍生出一系列改進(jìn)和擴(kuò)展算法,在人像識(shí)別、文本分類等模式識(shí)別(pattern recognition)問題中有得到應(yīng)用。

import numpy as np
from scipy import io as spio
from matplotlib import pyplot as plt
from sklearn import svm
 
 
def SVM():
  '''data1——線性分類'''
  data1 = spio.loadmat('data1.mat')
  X = data1['X']
  y = data1['y']
  y = np.ravel(y)
  plot_data(X, y)
 
  model = svm.SVC(C=1.0, kernel='linear').fit(X, y) # 指定核函數(shù)為線性核函數(shù)
  plot_decisionBoundary(X, y, model) # 畫決策邊界
  '''data2——非線性分類'''
  data2 = spio.loadmat('data2.mat')
  X = data2['X']
  y = data2['y']
  y = np.ravel(y)
  plt = plot_data(X, y)
  plt.show()
 
  model = svm.SVC(gamma=100).fit(X, y) # gamma為核函數(shù)的系數(shù),值越大擬合的越好
  plot_decisionBoundary(X, y, model, class_='notLinear') # 畫決策邊界
 
 
# 作圖
def plot_data(X, y):
  plt.figure(figsize=(10, 8))
  pos = np.where(y == 1) # 找到y(tǒng)=1的位置
  neg = np.where(y == 0) # 找到y(tǒng)=0的位置
  p1, = plt.plot(np.ravel(X[pos, 0]), np.ravel(X[pos, 1]), 'ro', markersize=8)
  p2, = plt.plot(np.ravel(X[neg, 0]), np.ravel(X[neg, 1]), 'g^', markersize=8)
  plt.xlabel("X1")
  plt.ylabel("X2")
  plt.legend([p1, p2], ["y==1", "y==0"])
  return plt
 
 
# 畫決策邊界
def plot_decisionBoundary(X, y, model, class_='linear'):
  plt = plot_data(X, y)
 
  # 線性邊界    
  if class_ == 'linear':
    w = model.coef_
    b = model.intercept_
    xp = np.linspace(np.min(X[:, 0]), np.max(X[:, 0]), 100)
    yp = -(w[0, 0] * xp + b) / w[0, 1]
    plt.plot(xp, yp, 'b-', linewidth=2.0)
    plt.show()
  else: # 非線性邊界
    x_1 = np.transpose(np.linspace(np.min(X[:, 0]), np.max(X[:, 0]), 100).reshape(1, -1))
    x_2 = np.transpose(np.linspace(np.min(X[:, 1]), np.max(X[:, 1]), 100).reshape(1, -1))
    X1, X2 = np.meshgrid(x_1, x_2)
    vals = np.zeros(X1.shape)
    for i in range(X1.shape[1]):
      this_X = np.hstack((X1[:, i].reshape(-1, 1), X2[:, i].reshape(-1, 1)))
      vals[:, i] = model.predict(this_X)
 
    plt.contour(X1, X2, vals, [0, 1], color='blue')
    plt.show()
 
 
if __name__ == "__main__":
  SVM()

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python如何使用jt400.jar包代碼實(shí)例

    python如何使用jt400.jar包代碼實(shí)例

    這篇文章主要介紹了python如何使用jt400.jar包代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Python代碼中偏函數(shù)的使用詳解

    Python代碼中偏函數(shù)的使用詳解

    Python中的偏函數(shù)是來自函數(shù)式編程的一個(gè)強(qiáng)大工具,它的主要目標(biāo)是減少函數(shù)調(diào)用的復(fù)雜性,本文將詳細(xì)介紹偏函數(shù)的具體使用,需要的小伙伴可以了解下
    2023-12-12
  • python防止棧溢出的實(shí)例講解

    python防止棧溢出的實(shí)例講解

    在本篇文章里小編給大家整理了一篇關(guān)于python防止棧溢出的實(shí)例講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-05-05
  • pycharm 代碼自動(dòng)補(bǔ)全的實(shí)現(xiàn)方法(圖文)

    pycharm 代碼自動(dòng)補(bǔ)全的實(shí)現(xiàn)方法(圖文)

    這篇文章主要介紹了pycharm 代碼自動(dòng)補(bǔ)全的實(shí)現(xiàn)方法(圖文),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 分享python中matplotlib指定繪圖顏色的八種方式

    分享python中matplotlib指定繪圖顏色的八種方式

    這篇文章主要給大家分享的是python中matplotlib指定繪圖顏色的八種方式,在使用matplotlib的pyplot庫進(jìn)行繪圖時(shí),經(jīng)常會(huì)發(fā)現(xiàn)各種開源代碼指定“color”的方式并不一致,下面就向大家展示8種指定color的方式,需要的朋友可以參考一下
    2022-03-03
  • python+numpy按行求一個(gè)二維數(shù)組的最大值方法

    python+numpy按行求一個(gè)二維數(shù)組的最大值方法

    今天小編就為大家分享一篇python+numpy按行求一個(gè)二維數(shù)組的最大值方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 淺析PEP572: 海象運(yùn)算符

    淺析PEP572: 海象運(yùn)算符

    PEP572的標(biāo)題是「Assignment Expressions」,也就是「賦值表達(dá)式」,也叫做「命名表達(dá)式」,不過它現(xiàn)在被廣泛的別名是「海象運(yùn)算符」(The Walrus Operator)
    2019-10-10
  • Python3 執(zhí)行系統(tǒng)命令并獲取實(shí)時(shí)回顯功能

    Python3 執(zhí)行系統(tǒng)命令并獲取實(shí)時(shí)回顯功能

    這篇文章主要介紹了Python3 執(zhí)行系統(tǒng)命令并獲取實(shí)時(shí)回顯功能,文中通過兩種方法給大家介紹了Python執(zhí)行系統(tǒng)命令并獲得輸出的方法,需要的朋友可以參考下
    2019-07-07
  • Mac中PyCharm配置Anaconda環(huán)境的方法

    Mac中PyCharm配置Anaconda環(huán)境的方法

    這篇文章主要介紹了Mac中PyCharm配置Anaconda環(huán)境的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • C#中使用XPath定位HTML中的img標(biāo)簽的操作示例

    C#中使用XPath定位HTML中的img標(biāo)簽的操作示例

    隨著互聯(lián)網(wǎng)內(nèi)容的日益豐富,網(wǎng)頁數(shù)據(jù)的自動(dòng)化處理變得愈發(fā)重要,圖片作為網(wǎng)頁中的重要組成部分,其獲取和處理在許多應(yīng)用場景中都顯得至關(guān)重要,本文將詳細(xì)介紹如何在 C# 應(yīng)用程序中使用 XPath 定位 HTML 中的 img 標(biāo)簽,并實(shí)現(xiàn)圖片的下載,需要的朋友可以參考下
    2024-07-07

最新評(píng)論

札达县| 堆龙德庆县| 连城县| 宁夏| 阿克陶县| 贞丰县| 虞城县| 金山区| 望谟县| 牡丹江市| 当雄县| 东海县| 北碚区| 太和县| 崇文区| 沾益县| 长海县| 宁阳县| 龙南县| 师宗县| 临汾市| 绥中县| 蓝山县| 安国市| 绍兴市| 唐河县| 新宁县| 清徐县| 余姚市| 团风县| 武清区| 唐海县| 普陀区| 龙岩市| 开原市| 通化县| 隆林| 鹤壁市| 金川县| 来宾市| 达孜县|