1. 程式人生 > >python機器學習庫scikit-learn簡明教程之:SVM支援向量機

python機器學習庫scikit-learn簡明教程之:SVM支援向量機

1.獲得樣例資料

scikit-learn庫有一些標準的資料集,例如分類的數字集,波士頓房價迴歸資料集。

在下面,我們啟動Python直譯器,然後載入資料集。我們可以認為,美元符號後輸入python然後會啟動以> > >開頭的 Python直譯器,提示我們輸入python表達語句:

$ python
>>> from sklearn import datasets
>>> iris = datasets.load_iris()
>>> digits = datasets.load_digits()

例如,拿數字資料集這個事例來說,呼叫digits.data方法可以獲得數字樣本進行分類:
>>> print(digits.data)  
[[  0.   0.   5. ...,   0.   0.   0.]
 [  0.   0.   0. ...,  10.   0.   0.]
 [  0.   0.   0. ...,  16.   9.   0.]
 ...,
 [  0.   0.   1. ...,   6.   0.   0.]
 [  0.   0.   2. ...,  12.   0.   0.]
 [  0.   0.  10. ...,  12.   1.   0.]]
而digits.target對於每一個數據集來說就是它們的種類,對應每個數字影象,希望它被劃分的具體類別:
>>> digits.target
array([0, 1, 2, ..., 8, 9, 8])

資料集的維度:

資料集通常是一個二維陣列,格式是(n_samples,n_features),儘管原始的資料可能有不一致的維度。在數字化表示下,每個原始為形狀(8,8)的影象樣本可以表示為:

>>> digits.images[0]
array([[  0.,   0.,   5.,  13.,   9.,   1.,   0.,   0.],
       [  0.,   0.,  13.,  15.,  10.,  15.,   5.,   0.],
       [  0.,   3.,  15.,   2.,   0.,  11.,   8.,   0.],
       [  0.,   4.,  12.,   0.,   0.,   8.,   8.,   0.],
       [  0.,   5.,   8.,   0.,   0.,   9.,   8.,   0.],
       [  0.,   4.,  11.,   0.,   1.,  12.,   7.,   0.],
       [  0.,   2.,  14.,   5.,  10.,  12.,   0.,   0.],
       [  0.,   0.,   6.,  13.,  10.,   0.,   0.,   0.]])

2.訓練學習和預測

在給定資料集的情況下,我們的任務是預測,對於給定影象,其所屬的是哪個數字指代的種類。 我們手頭有10個可能的類(數字0到9)中的每一個的樣本,其中我們擬合預測器經過訓練後可以預測未知的樣本所屬的類。
在scikit-learn中,分類預測器是實現方法fit(X,y)<代表擬合>和predict(T)<代表預測>的Python物件。
預測器的一個示例是實現支援向量機模組的類sklearn.svm.SVC。 預測器的建構函式使用模型的引數作為引數,但暫時,我們將把估計器視為一個黑盒:

(譯者注:雖然scikit-learn庫擁有諸多預測模型,但介面尤其工整,全部以方法fit(X,y)<代表擬合>和predict(T)<代表預測>命名!

)

>>> from sklearn import svm
>>> clf = svm.SVC(gamma=0.001, C=100.)
擬合過程:
>>> clf.fit(digits.data[:-1], digits.target[:-1])  
SVC(C=100.0, cache_size=200, class_weight=None, coef0=0.0,
  decision_function_shape=None, degree=3, gamma=0.001, kernel='rbf',
  max_iter=-1, probability=False, random_state=None, shrinking=True,
  tol=0.001, verbose=False)
預測模型:
>>> clf.predict(digits.data[-1:])
array([8])
預測結果(分類結果):

../../_images/sphx_glr_plot_digits_last_image_001.png

3.擴充套件知識:持久化儲存你的預測模型:pickle模組

在scikit的特定例項下,使用joblib的pickle模組(joblib.dump&joblib.load)可能更有趣,這對大資料更有效,但只能轉化為pickle儲存在磁碟上而不是字串表達:

儲存:

>>> from sklearn.externals import joblib
>>> joblib.dump(clf, 'filename.pkl') 
載入:
>>> clf = joblib.load('filename.pkl') 



相關推薦

python機器學習scikit-learn簡明教程SVM支援向量

1.獲得樣例資料 scikit-learn庫有一些標準的資料集,例如分類的數字集,波士頓房價迴歸資料集。 在下面,我們啟動Python直譯器,然後載入資料集。我們可以認為,美元符號後輸入python然

python機器學習scikit-learn簡明教程隨機森林

1.scikit-learn中的隨機森林 sklearn.ensemble模組中包含兩種基於隨機決策樹的平均演算法:隨機森林演算法和ExtraTrees的方法。這兩種演算法都是專為決策樹設計的包含混合

python機器學習scikit-learn簡明教程AdaBoost演算法

1.AdaBoost簡介及原理 Adaboost是一種迭代演算法,其核心思想是針對同一個訓練集訓練不同的分類器(弱分類器),然後把這些弱分類器集合起來,構成一個更強的最終分類器(強分類器)。 Adab

Python機器學習scikit-learn實踐

.get new 安裝 gis 支持 兩個 clas mod 神經網絡 一、概述 機器學習算法在近幾年大數據點燃的熱火熏陶下已經變得被人所“熟知”,就算不懂得其中各算法理論,叫你喊上一兩個著名算法的名字,你也能昂首挺胸脫口而出。當然了,算法之林雖大,但能者還是

Python機器學習scikit-learn

概述 scikit-learn 是機器學習領域非常熱門的一個開源庫,基於Python 語言寫成。可以免費使用。 而且使用非常的簡單,文件感人,非常值得去學習。 下面是一張scikit-learn的圖譜: 我們可以看到,機器學習分為四大塊,分別是 cla

Python機器學習scikit-learn、繪相簿Matplotlib的安裝

在windows環境下安裝scipy和sklearn是一件比較麻煩的事情。由於sklearn依賴於numpy和scipy,所以安裝sklearn之前需要先安裝numpy和scipy庫,然而使用pip安裝安裝時,pip install numpy 可以安裝成功,但是使用命令p

Python開始機器學習(8SVM支援向量

SVM支援向量機是建立於統計學習理論上的一種分類演算法,適合與處理具備高維特徵的資料集。SVM演算法的數學原理相對比較複雜,好在由於SVM演算法的研究與應用如此火爆,CSDN部落格裡也有大量的好文章對此進行分析,下面給出幾個本人認為講解的相當不錯的:支援向量機通俗導論(理解S

吳恩達機器學習作業Python實現(六)SVM支援向量

1 Support Vector Machines 1.1 Example Dataset 1 %matplotlib inline import numpy as np import pandas as pd import matplotlib.pyplot

機器學習7SVM(支援向量)

支援向量機 優化目標 大間距分類器 數學原理 核函式一 核函式二 使用 優化目標 對於邏輯迴歸的假設函式而言,在y=1的情況下,我們希望假設函式約等於1,且z遠大於0;在y=0的情況下,我們希望假設函式約等於

機器學習實戰系列(五)SVM支援向量

課程的所有資料和程式碼在我的Github:Machine learning in Action,目前剛開始做,有不對的歡迎指正,也歡迎大家star。除了 版本差異,程式碼裡的部分函式以及程式碼正規化也和原書不一樣(因為作者的程式碼實在讓人看的彆扭,我改過後看起來舒服多了)

機器學習總結(三)SVM支援向量(面試必考)

基本思想:試圖尋找一個超平面來對樣本分割,把樣本中的正例和反例用超平面分開,並儘可能的使正例和反例之間的間隔最大。 演算法推導過程: (1)代價函式:假設正類樣本y =wTx+ b>=+1,負

機器學習】演算法原理詳細推導與實現(四):支援向量(上)

【機器學習】演算法原理詳細推導與實現(四):支援向量機(上) 在之前的文章中,包括線性迴歸和邏輯迴歸,都是以線性分界線進行分割劃分種類的。而本次介紹一種很強的分類器【支援向量機】,它適用於線性和非線性分界線的分類方法。 函式間隔概念 為了更好的理解非線性分界線,區別兩種分界線對於分類的直觀理解,第一種直觀理解

機器學習】演算法原理詳細推導與實現(五):支援向量(下)

【機器學習】演算法原理詳細推導與實現(五):支援向量機(下) 上一章節介紹了支援向量機的生成和求解方式,能夠根據訓練集依次得出\(\omega\)、\(b\)的計算方式,但是如何求解需要用到核函式,將在這一章詳細推導實現。 核函式 在講核函式之前,要對上一章節得到的結果列舉出來。之前需要優化的凸函式為: \[

Python/scikit-learn機器學習(SVM支援向量)

SVM SVM用於分類、迴歸、異常檢測。 優點: 高維空間有效。 維度小於樣本數時依然有效。 樣本少時表現不好。 分類 多分類: SVC、NuSVC、LinearSVC。SVMs決策函式依賴於訓練資料中一部分,這些向量稱為支援向量。 NuSVC

機器學習利器——Scikit-learn的安裝

c++ 找到 ear html 實驗室 簡單的 安裝 網站 .com 機器學習利器——Scikit-learn的安裝  由於筆者最近在進行畢業論文的準備,且畢業論文中需要用到Python版本的機器學習庫——scikit-learn。所以最近三天一直在Windows上部署這個

2018年最受歡迎Python機器學習介紹

Python Python開發 Python全棧 機器學習庫 Python是一種面向對象的解釋型計算機程序設計語言,具有豐富和強大的庫,再加上其簡單、易學、速度快、開源免費、可移植性、可擴展性以及面向對象的特點,Python成為2017年最受歡迎的最受歡迎的編程語言! 人工智能是當前最

比較好的Python機器學習有哪些?

Python是一種面向物件的解釋型計算機程式設計語言,具有豐富和強大的庫,再加上其簡單、易學、速度快、開源免費、可移植性、可擴充套件性以及面向物件的特點,Python成為2017年最受歡迎的最受歡迎的程式語言! 人工智慧是當前最熱門話題之一,機器學習技術是人工智慧實現必備技能,Python程式語

python機器學習——結巴中文分詞

結巴中文分詞 安裝: pip install jieba1 特點: 支援三種分詞模式: 精確模式,試圖將句子最精確地切開,適合文字分析; 全模式,把句子中所有的可以成詞的詞語都掃描出來, 速度非常快,但是不能解決歧義; 搜尋引擎模式,在精確

阿里雲機器學習平臺PAI使用簡明教程

概述 阿里雲機器學習平臺是構建在阿里雲MaxCompute(原ODPS)計算平臺之上,集資料處理、建模、離線預測、線上預測為一體的機器學習平臺。很多使用者在初次使用PAI過程中因為對平臺比較陌生,總是會遇到這樣或那樣的困惑。本文以通用的機器學習流程為指導,結合PAI平臺逐一介紹資料準備、模型搭建與訓練

python機器學習的使用

常見機器學習演算法名單 1.線性迴歸 線性迴歸通常用於根據連續變數估計實際數值(房價、呼叫次數、總銷售額等)。我們通過擬合最佳直線來建立自變數和因變數的關係。這條最佳直線叫做迴歸線,並且用 Y= a *X + b 這條線性等式來表示。 理解線性迴歸的最好辦法是回顧一下童年。