支持向量機(SVM)利用網格搜索和交叉驗證進行參數選擇


上一回有個讀者問我:回歸模型與分類模型的區別在哪?有什么不同,我在這里給他回答一下 : : : : 

回歸問題通常是用來預測一個值,如預測房價、未來的天氣情況等等,例如一個產品的實際價格為500元,通過回歸分析預測值為499元,我們認為這是一個比較好的回歸分析。
 
分類問題是用於將事物打上一個標簽。分類有多個特征,一個標簽  .例如判斷一幅圖片上的動物是一只貓還是一只狗,分類通常是建立在回歸之上,分類的最后一層通常要使用softmax函數進行判斷其所屬類別。分類並沒有逼近的概念,最終正確結果只有一個,錯誤的就是錯誤的,不會有相近的概念。

 

 

這篇的知識點: 1,支持向量機    2 置信度    3網格搜索   

 

支持向量機

支持向量機 : 是一種按照監督學習的方式對數據進行二元分類, SVM是(支持向量機) . 可以用來做分類和回歸

SVC是SVM的一種Type,是用來的做分類的                SVR是SVM的另一種Type,是用來的做回歸的

SVM里有兩個參數 C 和 gamma:
C是    C是懲罰系數,就是說你對誤差的寬容度,這個值越高,說明你越不能容忍出現誤差

gamma是   gamma是你選擇徑向基函數作為kernel后,該函數自帶的一個參數。隱含地決定了數據映射到新的特征空間后的分布  

有人會問:徑向基 是什么?    徑向基又叫做 : 高斯核函數/他是一個核函數

 

classifier =SVC(kernel='rbf',probability=True)   #此處是徑向基核函數
classifier=SVC(kernel='linear') # 構建線性分類器
svc(分類)    poly(多項式)    rbf(徑向基)  linear(線性分類器)
 
 

置信度

置信度  可理解為:  類別概率值 //或者可以理解為可信度 //可以理解為一個人的信譽度為1,而這個1分為了80%和20%,你可以信他80%,這就叫做置信度

y_pred_proba =classifier.predict_proba(train_X)    #獲取預測數據的置信度置信度
#####  predict_proba 是獲取置信度

print(y_pred_proba ) #打印出這組參數的置信度

網格搜索(Grid Search)

網格搜索(Grid Search)名字非常大氣,但是用簡答的話來說就是你手動的給出一個模型中你想要改動的所用的參數,程序自動的幫你把所用的參數都運行一遍
用 GridSearch  來搜索最佳參數組合的方法  :試出來最優的,最好的那組參數

SVM利用網格搜索和交叉驗證進行參數選擇 ,GridSearchCV是網格搜索,param_grid,是SVM,  cv = 2是折疊次數

gride =GridSearchCV(classifier,param_grid,cv=2)

kerenl是鍵linear是他的值,線性分類器,C是他的懲罰系數,
param_grid =[{'kerenl':['linear'],'C':[1,10,100,300]}]

 

網格(gride)參數:
cv_results_ : 將鍵作為列標題和值作為列的字典
splits 有分離,切割的意思,拆分的意思
n_splits  :只能拆分整數,交叉驗證拆分的數量(折疊/迭代)。
best最好的,score得分   estimate 估計
best_score_ :  float;
best_estimator  的平均交叉驗證分數,對於多度量評估.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM