利用sklearn 實現SVM分類

scv  函數
class sklearn.svm.SVC(C=1.0, kernel='rbf', degree=3, gamma='auto', coef0=0.0, shrinking=True, probability=False, tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=-1, decision_function_shape=None, random_state=None)


該函數的時間複雜度超過了O(N^2)對於較大的數據集(10000樣本以上)不建議使用
多分類方法是基於1VS1的SVM結構


參數說明:


C:浮點數 默認爲1.0 錯誤項的懲罰參數C


kernel:核函數 默認爲rbf型,其他可選的有linear,poly,sigmoid,precomputed,以及可調用自定義形式callable。如果給出了一個可調用函數,則用於從數據矩陣預先計算核心矩陣; 該矩陣應該是一個數組其形式爲(n_samples,n_samples)。


degree:整數形,默認爲3。用於多項式核函數的度數('poly')。 被所有其他內核忽略。


gamma:浮點,可選默認爲’auto’。該參數是'rbf','poly'和'sigmoid'的內核係數。 如果gamma是'auto',那麼將會使用1 / n_features。


Coef0: 浮點型,默認爲0.0. 核函數的獨立特徵,僅僅在’poly’和‘sigmoid’核函數中有意義


probability:布爾型,可選,默認爲False。是否啓用概率估計,必須在調用fit之前啓用,啓用後會降低算法效率


shrinking:布爾型,可選默認爲True。是否使用縮減啓發式。


Tot :  浮點型 默認爲3.0。停止標準的公差


cache_size:浮點型,可選。指定內核緩存的大小(以MB爲單位)。


Class_weight:{‘dict’,’balanced’ }, 可選。
將類i的參數C設置爲SVC的class_weight[I]*C。如果沒有給出,所有類的weight 爲1.‘balanced’模式使用y 值自動調整權重,調整方式是與輸入數據中類頻率成反比。如n_samples / (n_classes * np.bincount(y))


verbose: 布爾型,默認爲False。啓用詳細輸出。 請注意,此設置利用libsvm中的每個進程運行時設置,如果啓用,可能無法在多線程環境中正常工作。
 
Max—iter:整型,可選默認-1。求解器中迭代的極限,或無限制的-1。


decision—function—shape:‘ovo’,’ovr’或者默認 none。是否將一對多’ovr’的決策函數其形式爲(n_samples, n_classes),返回爲其他的分類器。或者返回原始的一對一’ovo’決策函數其形式爲,(n_samples, n_classes * (n_classes - 1) / 2)。默認值“None”目前表現爲“ovo”,用於向後兼容,並引發棄用警告,但會將更改爲“ovr”在0.19版本。


random_state:int 種子,隨機狀態實例或無(默認)
僞隨機數發生器的種子在混洗數據時用於概率估計。


方法
decision_function(X)樣本X與分離超平面的距離。
fit(X,y [,sample_weight])根據給定的訓練數據擬合SVM模型。
get_params([deep])獲取此估計器的參數。
Predict(X)對X中的樣本進行分類
score(X,y [,sample_weight])返回給定測試數據和標籤的平均精度。
set_params(\ * \ * params)設置此估計器的參數。


decision_function(X)[source]
樣品X與分離超平面的距離。
參數:
X:數組式,形式(n_samples,n_features)
返回值:
X:array-like,shape(n_samples,n_classes *(n_classes-1)/ 2)
返回模型中每個類的樣本的決策函數。 如果decision_function_shape ='ovr',則形式爲(n_samples,n_classes)


fit(X,y,sample_weight = None)[來源]
根據給定的訓練數據擬合SVM模型。
參數:
X:{array-like,sparse matrix},shape(n_samples,n_features)
訓練向量,其中n_samples是樣本數,n_feature是特徵數。 對於kernel =“預計算”,X的預期形狀爲(n_samples,n_samples)。
y:array-like,shape(n_samples,)
目標值(分類中的類標籤,迴歸中的實數)
sample_weight:array-like,shape(n_samples,)
每樣品權重 每個樣品重新調整C。 較高的權重會使分類器更加強調這些要點。
返回值:
self:對象
返回自我。
如果X和Y不是C順序的,並且np.float64和X的連續數組不是scipy.sparse.csr_matrix,則可以複製X和/或y。
如果X是密集數組,則其他方法將不支持稀疏矩陣作爲輸入。


get_params(deep=True)
獲得估計器的參數.
如果爲True,將返回此估計器的參數,幷包含作爲估計量的子對象。


predict(X)[source]
對X中的樣本進行分類。
對於一個類的模型,返回+1或-1。
參數:
X:{array-like,sparse matrix},shape(n_samples,n_features)
對於kernel =“precomputed”,X的預期形式爲[n_samples_test,n_samples_train]
返回:
y_pred:array,shape(n_samples,)
X中樣本的類標籤


score(X, y, sample_weight=None)[source]
返回給定測試數據和標籤的平均精度。
在多標籤分類中,這是一個苛刻度量的子集精度。
參數:
X:array-like,shape =(n_samples,n_features)
測試樣品。
y:array-like,shape =(n_samples)或(n_samples,n_outputs)
X的真標籤
sample_weight:array-like,shape = [n_samples],可選
樣品權重
返回:
分數:浮點
self.predict(X) wrt. y.的平均精度
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章