本文簡要介紹python語言中 sklearn.svm.LinearSVC
的用法。
用法:
class sklearn.svm.LinearSVC(penalty='l2', loss='squared_hinge', *, dual=True, tol=0.0001, C=1.0, multi_class='ovr', fit_intercept=True, intercept_scaling=1, class_weight=None, verbose=0, random_state=None, max_iter=1000)
線性支持向量分類。
與參數 kernel='linear' 的 SVC 類似,但根據 liblinear 而不是 libsvm 實現,因此它在選擇懲罰和損失函數方掩碼有更大的靈活性,並且應該更好地擴展到大量樣本。
此類支持密集和稀疏輸入,並且多類支持根據one-vs-the-rest 方案處理。
在用戶指南中閱讀更多信息。
- penalty:{‘l1’, ‘l2’},默認='l2'
指定懲罰中使用的規範。 ‘l2’ 懲罰是 SVC 中使用的標準。 ‘l1’ 導致稀疏的
coef_
向量。- loss:{‘hinge’, ‘squared_hinge’},默認='squared_hinge'
指定損失函數。 ‘hinge’ 是標準 SVM 損失(例如由 SVC 類使用),而 ‘squared_hinge’ 是鉸鏈損失的平方。不支持
penalty='l1'
和loss='hinge'
的組合。- dual:布爾,默認=真
選擇算法來解決對偶或原始優化問題。當 n_samples > n_features 時首選 dual=False。
- tol:浮點數,默認=1e-4
停止標準的公差。
- C:浮點數,默認=1.0
正則化參數。正則化的強度與 C 成反比。必須嚴格為正。
- multi_class:{‘ovr’, ‘crammer_singer’},默認='ovr'
如果
y
包含兩個以上類,則確定多類策略。"ovr"
訓練 n_classes one-vs-rest 分類器,而"crammer_singer"
優化所有類的聯合目標。雖然crammer_singer
從理論角度來看很有趣,因為它是一致的,但在實踐中很少使用它,因為它很少會帶來更好的準確性並且計算成本更高。如果選擇"crammer_singer"
,則選項loss、penalty和dual將被忽略。- fit_intercept:布爾,默認=真
是否計算此模型的截距。如果設置為 false,則不會在計算中使用截距(即數據預計已經居中)。
- intercept_scaling:浮點數,默認=1
當 self.fit_intercept 為 True 時,實例向量 x 變為
[x, self.intercept_scaling]
,即將具有等於 intercept_scaling 的常數值的 “synthetic” 特征附加到實例向量。截距變為intercept_scaling * 合成特征權重 注意!合成特征權重像所有其他特征一樣受到 l1/l2 正則化。為了減少正則化對合成特征權重(以及因此對截距)的影響,必須增加intercept_scaling。- class_weight:dict或‘balanced’,默認=無
對於 SVC,將第 i 類的參數 C 設置為
class_weight[i]*C
。如果沒有給出,所有的類都應該有一個權重。 “balanced” 模式使用 y 的值自動調整與輸入數據中的類頻率成反比的權重,如n_samples / (n_classes * np.bincount(y))
。- verbose:整數,默認=0
啟用詳細輸出。請注意,此設置利用了 liblinear 中的 per-process 運行時設置,如果啟用,該設置可能無法在多線程上下文中正常工作。
- random_state:int、RandomState 實例或無,默認=無
控製偽隨機數生成,以混洗雙坐標下降的數據(如果
dual=True
)。當dual=False
時,LinearSVC
的底層實現不是隨機的,並且random_state
對結果沒有影響。傳遞 int 以在多個函數調用之間實現可重現的輸出。請參閱術語表。- max_iter:整數,默認=1000
要運行的最大迭代次數。
- coef_:ndarray of shape (1, n_features) if n_classes == 2 else (n_classes, n_features)
分配給特征的權重(原始問題中的係數)。
coef_
是從raw_coef_
派生的隻讀屬性,它遵循 liblinear 的內部存儲器布局。- intercept_:ndarray 形狀 (1,) if n_classes == 2 else (n_classes,)
決策函數中的常數。
- classes_:ndarray 形狀 (n_classes,)
唯一的類標簽。
- n_features_in_:int
擬合期間看到的特征數。
- feature_names_in_:ndarray 形狀(
n_features_in_
,) 擬合期間看到的特征名稱。僅當
X
具有全為字符串的函數名稱時才定義。- n_iter_:int
在所有類中運行的最大迭代次數。
參數:
屬性:
注意:
底層 C 實現使用隨機數生成器在擬合模型時選擇特征。因此,對於相同的輸入數據,結果略有不同的情況並不少見。如果發生這種情況,請嘗試使用較小的
tol
參數。底層實現,liblinear,對將導致內存複製的數據使用稀疏的內部表示。
在某些情況下,預測輸出可能與獨立 liblinear 的輸出不匹配。請參閱敘述文檔中與 liblinear 的區別。
參考:
例子:
>>> from sklearn.svm import LinearSVC >>> from sklearn.pipeline import make_pipeline >>> from sklearn.preprocessing import StandardScaler >>> from sklearn.datasets import make_classification >>> X, y = make_classification(n_features=4, random_state=0) >>> clf = make_pipeline(StandardScaler(), ... LinearSVC(random_state=0, tol=1e-5)) >>> clf.fit(X, y) Pipeline(steps=[('standardscaler', StandardScaler()), ('linearsvc', LinearSVC(random_state=0, tol=1e-05))])
>>> print(clf.named_steps['linearsvc'].coef_) [[0.141... 0.526... 0.679... 0.493...]]
>>> print(clf.named_steps['linearsvc'].intercept_) [0.1693...] >>> print(clf.predict([[0, 0, 0, 0]])) [1]
相關用法
- Python sklearn LinearSVR用法及代碼示例
- Python sklearn LinearDiscriminantAnalysis用法及代碼示例
- Python sklearn LinearRegression用法及代碼示例
- Python sklearn LarsCV用法及代碼示例
- Python sklearn Lars用法及代碼示例
- Python sklearn LocalOutlierFactor.kneighbors_graph用法及代碼示例
- Python sklearn LeavePOut用法及代碼示例
- Python sklearn Lasso用法及代碼示例
- Python sklearn LabelPropagation用法及代碼示例
- Python sklearn LassoLars用法及代碼示例
- Python sklearn LeaveOneOut用法及代碼示例
- Python sklearn LogisticRegression用法及代碼示例
- Python sklearn LassoLarsIC用法及代碼示例
- Python sklearn LocallyLinearEmbedding用法及代碼示例
- Python sklearn LedoitWolf用法及代碼示例
- Python sklearn LassoCV.path用法及代碼示例
- Python sklearn LogisticRegressionCV用法及代碼示例
- Python sklearn LassoCV用法及代碼示例
- Python sklearn LabelSpreading用法及代碼示例
- Python sklearn LabelEncoder用法及代碼示例
- Python sklearn LocalOutlierFactor.kneighbors用法及代碼示例
- Python sklearn LabelBinarizer用法及代碼示例
- Python sklearn LassoLarsCV用法及代碼示例
- Python sklearn LatentDirichletAllocation用法及代碼示例
- Python sklearn Lasso.path用法及代碼示例
注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.svm.LinearSVC。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。