1. 程式人生 > >python 支援向量機SVM例項解析

python 支援向量機SVM例項解析

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

'''載入資料'''
x1 = []
y1 = []
for i in range(0, 10):
    if (i <= 3 or i >= 8):
        x1.append([i, i])
        y1.append(0)
    else:
        x1.append([i, i])
        y1.append(1)

x = npy.array(x1)
y = npy.array(y1)
'''建立SVM'''
# 線性核函式 linear = svm.SVC(kernel='linear').fit(x, y) # 多項式核函式 poly = svm.SVC(kernel='poly', degree=4).fit(x, y) # 徑向基核函式 rbf = svm.SVC().fit(x, y) # sigmoid = svm.SVC(kernel='sigmoid').fit(x, y) a = 1 x21, x22 = npy.meshgrid(npy.arange(x[:, 0].min(), x[:, 0].max(), 0.01), npy.arange(x[:, 1].min(), x[:, 0
].max(), 0.01)) for i in [linear, poly, rbf, sigmoid]: rst = i.predict(npy.c_[x21.ravel(), x22.ravel()]) # plt.subplot(橫向劃分,縱向劃分, 定位) plt.subplot(2, 2, a) # contourf 等高線 plt.contourf(x21, x22, rst.reshape(x21.shape)) # yk 設定不同顏色 # 訓練資料的點也繪製出來 for j in range(0, len(y1)): if
(int(y1[j]) == 0): plt.plot(x[j:j + 1, 0], x[j:j + 1, 1], 'yo') else: plt.plot(x[j:j + 1, 0], x[j:j + 1, 1], 'ko') a += 1 plt.show()

相關推薦

python 支援向量SVM例項解析

import numpy as npy from sklearn import svm import matplotlib.pyplot as plt '''載入資料''' x1 = [] y1 =

基於libsvm庫的python支援向量(SVM)簡明乾貨

最近專案在搞模式識別,通過支援向量機的方法來進行分類,網上看到了python程式碼,但是,只能做到二維分類。 維數上去之後,沒有辦法有效識別,這個svm的程式碼有序有時間的話,我會寫好一份多維特徵量判別的程式碼發上來。 話題開始,先簡單說說支援向量機: 支援向量機SVM,是

Python中的支援向量SVM的使用(有例項

轉載自https://www.cnblogs.com/luyaoblog/p/6775342.html。謝謝作者整理,若侵權告知即刪。 除了在Matlab中使用PRTools工具箱中的svm演算法,Python中一樣可以使用支援向量機做分類。因為Python中的sklearn庫也集成了SVM演算

Python支援向量SVM例項

SVM(Support Vector Machine)指的是支援向量機,是常見的一種判別方法。在機器學習領域,是一個有監督的學習模型,通常用來進行模式識別、分類以及迴歸分析。 Matlab中有林智仁編寫的libsvm工具包可以很好地進行進行SVM訓練。Pyth

Python實現支援向量(SVM) MNIST資料集

Python實現支援向量機(SVM) MNIST資料集 SVM的原理這裡不講,大家自己可以查閱相關資料。 下面是利用sklearn庫進行svm訓練MNIST資料集,準確率可以達到90%以上。 from sklearn import svm import numpy as np

支援向量SVM】 演算法原理 公式推導 python程式設計實現

1.前言     如圖,對於一個給定的資料集,通過直線A或直線B(多維座標系中為平面A或平面B)可以較好的將紅點與藍點分類。那麼線A與線B那個更優呢?                   在SVM演算法中,我們認為線A是優於線B的。因為A的‘分類間隔’大於B。

Python中使用支援向量(SVM)實踐

 在機器學習領域,支援向量機SVM(Support Vector Machine)是一個有監督的學習模型,通常用來進行模式識別、分類(異常值檢測)以及迴歸分析。    其具有以下特徵:    (1)SVM可以表示為凸優化問題,因此可以利用已知的有效演算法發現目標函式的

支援向量SVM:使用sklearn+python

程式碼 這個例子主要是演示3種不同的核函式(線性核,高斯核和多項式核)的用法。 使用的資料是自動生成的,生成資料的介面是make_blobs。 from sklearn import svm from sklearn.datasets import

支援向量SVM通俗理解(python程式碼實現)

這是第三次來“複習”SVM了,第一次是使用SVM包,呼叫包並嘗試調節引數。聽聞了“流弊”SVM的演算法。第二次學習理論,看了李航的《統計學習方法》以及網上的部落格。看完後感覺,滿滿的公式。。。記不住啊。第三次,也就是這次通過python程式碼手動來實現SVM,才

【機器學習】支援向量SVM例項應用

【機器學習】支援向量機1.分類超平面與最大間隔2.對偶問題與拉格朗日乘子法3.核函式4.軟間隔與正則化    準備:            資料集        匯入SVM模組    步驟:1.讀取資料集        2.劃分訓練樣本與測試樣本        3.訓練SVM

支援向量SVM演算法應用【Python實現】

from __future__ import print_function from time import time import logging import matplotlib.pyplot as plt from sklearn.cross_validation import train_te

python機器學習庫sklearn——支援向量svm

支援向量機的優勢在於: 在高維空間中非常高效.即使在資料維度比樣本數量大的情況下仍然有效. 在決策函式(稱為支援向量)中使用訓練集的子集,因此它也是高效利用記憶體的. 通用性: 不同的核函式與特定的決策函式一一對應.常見的 kernel 已經提供,也

機器學習-python通過使用sklearn編寫支援向量SVM

程式碼及資料集下載:SVM 線性支援向量機 import numpy as np from sklearn import svm from matplotlib import pyplot as p

Python-ML】SKlearn庫支援向量(SVM) 使用

# -*- coding: utf-8 -*- ''' Created on 2018年1月15日 @author: Jason.F @summary: Scikit-Learn庫支援向量機分類演算法 ''' from sklearn import datasets im

[白話解析] 深入淺出支援向量(SVM)之核函式

[白話解析] 深入淺出支援向量機(SVM)之核函式 0x00 摘要 本文在少用數學公式的情況下,儘量僅依靠感性直覺的思考來講解支援向量機中的核函式概念,並且給大家虛構了一個水滸傳的例子來做進一步的通俗解釋。 0x01 問題 在學習核函式的時候,我一直有幾個很好奇的問題。 Why 為什麼線性可分很重要? Wh

機器學習實戰(五)支援向量SVM(Support Vector Machine)

目錄 0. 前言 1. 尋找最大間隔 2. 拉格朗日乘子法和KKT條件 3. 鬆弛變數 4. 帶鬆弛變數的拉格朗日乘子法和KKT條件 5. 序列最小優化SMO(Sequential Minimal Optimiz

吳恩達機器學習(第十三章)---支援向量SVM

一、優化目標 邏輯迴歸中的代價函式:  畫出兩種情況下的函式影象可得: y=1: 我們找一條折線來近似表示這個函式影象 y=0:    我們用這兩條折線來近似表示原來的曲線函式可得新的代價函式(假設-log(h(x))為,-log(1

演算法學習——支援向量SVM

SVM現在的公式推導很多,都是現成的,而且寫的也很好,我會提供相關資源,這篇博文主要從思想理解的方面做一個簡單介紹。 1、SVM 是如何工作的? 支援向量機的基礎概念可以通過一個簡單的例子來解釋。讓我們想象兩個類別:紅色和藍色,我們的資料有兩個特徵:x 和 y。我們想要一個分類器,給定一

吳恩達機器學習 - 支援向量(SVM) 吳恩達機器學習 - 支援向量(SVM)

原 吳恩達機器學習 - 支援向量機(SVM) 2018年06月24日 14:40:42 離殤灬孤狼 閱讀數:218 更多

機器學習-支援向量SVM

簡介: 支援向量機(SVM)是一種二分類的監督學習模型,他的基本模型是定義在特徵空間上的間隔最大的線性模型。他與感知機的區別是,感知機只要找到可以將資料正確劃分的超平面即可,而SVM需要找到間隔最大的超平面將資料劃分開。所以感知機的超平面可以有無數個,但是SVM的超平面只有一個。此外,SVM在引入核函式之後