日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

svm多分类代码_监督学习——分类算法I

發(fā)布時間:2023/12/10 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 svm多分类代码_监督学习——分类算法I 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
本文是監(jiān)督學習分類算法的第一部分,簡單介紹對樣本進行分類的算法,包括
  • 判別分析(DA)
  • 支持向量機(SVM)
  • 隨機梯度下降分類(SGD)
  • K近鄰分類(KNN)
  • 樸素貝葉斯分類(NaiveBayes)

判別分析(Discriminant Analysis)

判別分析是基于條件概率的分類方法,可以分為線性判別分析(LDA)和二次型判別分析(QDA)。不同數(shù)據(jù)下的線性和二次型判別分析

算法介紹

判別分析的基礎是貝葉斯公式,它根據(jù)已有數(shù)據(jù)中的先驗概率(可以通過樣本得到)推斷后驗概率: 對于訓練集,

我們選擇令值較大的那個k作為預測結果。

算法求解

假設條件隨機變量服從多元正態(tài)分布,那么先驗概率應為

其中,為標記為k的樣本數(shù)據(jù)均值,為標記為k的樣本協(xié)方差矩陣。

代入貝葉斯公式得到對數(shù)后驗概率:

其中,是分子的對數(shù)常數(shù),是已知樣本中各分類的比例。

QDA算法就是得到能夠使對數(shù)后驗概率最大的k值。如果在QDA模型中假設特征之間相互獨立,即只包含對角線元素,那么QDA分類器等效于高斯樸素貝葉斯分類器naive_bayes.GaussianNB。LDA算法是QDA算法的特例,即假設所有類別的y都具有相同的協(xié)方差矩陣,那么對數(shù)后驗概率可以寫作其中為樣本與均值之間的馬氏距離。因此,LDA也可以認為是在先驗概率條件下采用馬氏距離進行分類的方法。上式也被稱為判別函數(shù)

算法實例

假設,,即只分兩類且概率相等時,判別函數(shù)得到

對比兩式

  • 當上式大于0時說明的概率大于,則應該屬于第1類,否則屬于第二類。
  • 當上式等于0時可以得到?jīng)Q策邊界
  • 同樣可以推導3個以上類別的決策邊界。
  • QDA算法由于考慮了不同的協(xié)方差矩陣,可以得到二次型的決策邊界。

代碼

判別函數(shù)可以改寫為線性形式

其中的擬合數(shù)據(jù)保存在屬性中,保存在屬性中。

from?sklearn.discriminant_analysis?import?LinearDiscriminantAnalysis
clf2?=?LinearDiscriminantAnalysis(solver='lsqr',?shrinkage=None).fit(X,?y)
從代碼中可以看出也要確定判別分析的算法器solver,也可以通過shrinkage進行正則化。

支持向量機(Support Vector Machines)

支持向量機SVM在高維或無限維空間中構建一個超平面或一組超平面,該超平面與任何類別的最近訓練數(shù)據(jù)點之間的距離最大(所謂的功能邊界),所以可以實現(xiàn)良好的分離,可用于分類、回歸或其他任務。因為通常邊界越大,分類器的泛化誤差越低。下圖顯示了線性可分離問題的決策函數(shù),在邊界上有三個樣本,稱為“支持向量”:支持向量機原理圖

支持向量機也是既可以用來進行分類也可以進行回歸的模型,其分類器在Scikit-learn中包括SVC,NuSVC和LinearSVC等類。

算法

給定訓練集分為兩個類,研究目標是找到滿足優(yōu)化問題的解.SVC的目標是

式子第二項也可以看做是正則化項,是控制參數(shù)。上面優(yōu)化問題的對偶問題是

其中是全1向量,是半正定階矩陣,且,其中是核(Kernel)

通過調整核函數(shù)可以對不同的數(shù)據(jù)進行分類:核SVM算法估計鳶尾花數(shù)據(jù)

NuSVC、LinearSVC和其他相關的支持向量機算法都采用了近似的目標函數(shù)。

代碼

參數(shù)存儲在屬性中,支持向量機數(shù)據(jù)保存在屬性中,參數(shù)保存在屬性中。from?sklearn.svm?import?SVC
linear_svc?=?svm.SVC(kernel='linear')
linear_svc?=?svm.SVC(kernel='rbf')

RBF是Radial Basis Function的縮寫,可以進行非線性劃分,效果如下:

隨機梯度下降分類(SGD)

隨機梯度下降分類器近似等效于線性SVMfrom?sklearn.linear_model?import?SGDClassifier
clf?=?SGDClassifier(loss="hinge",?penalty="l2",?max_iter=5).fit(X,?y)
可以通過參數(shù)設置具體的損失函數(shù)。SGDClassifier支持以下?lián)p失功能:
  • :(軟邊距)線性支持向量機;
  • :平滑的鉸鏈損失;
  • :邏輯回歸, 等。
可以通過penalty參數(shù)設置具體的正則項類型。SGD支持以下處罰:
  • :參數(shù)的標準正則項;
  • :參數(shù)的標準正則項;
  • :和的凸組合。
默認設置為。L1懲罰導致解決方案稀疏,將大多數(shù)系數(shù)驅動為零。當存在高度相關的屬性時,ElasticNet解決了損失的一些不足。該參數(shù)控制和懲罰的凸組合。

K近鄰分類(KNN)

KNN算法已經(jīng)介紹過了,這里給出用KNN分類器的代碼from?sklearn.neighbors?import?KNeighborsClassifier
knn?=?KNeighborsClassifier(n_neighbors=1).fit(X_train,y_train)
效果如下:

樸素貝葉斯分類(NaiveBayes)

本文開頭指出,QDA在特征相互獨立的情況下等價于高斯NaiveBayes,這里的“Naive(樸素)”指的就是這種特征數(shù)據(jù)相互獨立的假設。

算法

給定樣本屬于的類別數(shù)據(jù),由貝葉斯公式可以得到關系:

在“Naive”條件下,上式可以簡化為

由于是根據(jù)樣本計算的常數(shù),所以

所以

在假設了之后就可以進行估計。

類別和特點

  • scikit-learn 中實現(xiàn)了三種樸素貝葉斯分類器:GaussianNB、BernoulliNB 和MultinomialNB。
  • GaussianNB 可應用于任意連續(xù)數(shù)據(jù);
  • BernoulliNB 假定輸入數(shù)據(jù)為二分類數(shù)據(jù);
  • MultinomialNB 假定輸入數(shù)據(jù)為計數(shù)數(shù)據(jù)(即每個特征代表某個對象的整數(shù)計數(shù),比如一個單詞在句子里出現(xiàn)的次數(shù))。
  • BernoulliNB 和MultinomialNB 主要用于文本數(shù)據(jù)分類。
  • 代碼

    from?sklearn.datasets?import?load_iris
    from?sklearn.model_selection?import?train_test_split
    from?sklearn.naive_bayes?import?GaussianNB
    X,?y?=?load_iris(return_X_y=True)
    X_train,?X_test,?y_train,?y_test?=?train_test_split(X,?y,?test_size=0.5,?random_state=0)
    gnb?=?GaussianNB()
    y_pred?=?gnb.fit(X_train,?y_train).predict(X_test)

    總結

    以上是生活随笔為你收集整理的svm多分类代码_监督学习——分类算法I的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。