當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python sklearn SGDOneClassSVM用法及代碼示例


本文簡要介紹python語言中 sklearn.linear_model.SGDOneClassSVM 的用法。

用法:

class sklearn.linear_model.SGDOneClassSVM(nu=0.5, fit_intercept=True, max_iter=1000, tol=0.001, shuffle=True, verbose=0, random_state=None, learning_rate='optimal', eta0=0.0, power_t=0.5, warm_start=False, average=False)

使用隨機梯度下降求解線性One-Class SVM。

此實現旨在與內核近似技術(例如 sklearn.kernel_approximation.Nystroem )一起使用,以獲得類似於默認使用高斯內核的 sklearn.svm.OneClassSVM 的結果。

在用戶指南中閱讀更多信息。

參數

nu浮點數,默認=0.5

One Class SVM 的 nu 參數:訓練誤差分數的上限和支持向量分數的下限。應該在 (0, 1] 區間內。默認取 0.5。

fit_intercept布爾,默認=真

是否應該估計截距。默認為真。

max_iter整數,默認=1000

訓練數據的最大傳遞次數(又名 epochs)。它隻影響 fit 方法中的行為,而不影響 partial_fit 。默認為 1000。

tol浮點數或無,默認=1e-3

停止標準。如果不是 None,迭代將在 (loss > previous_loss - tol) 時停止。默認為 1e-3。

shuffle布爾,默認=真

是否應該在每個 epoch 之後對訓練數據進行洗牌。默認為真。

verbose整數,默認=0

詳細程度。

random_stateint、RandomState 實例或無,默認=無

混洗數據時使用的偽隨機數生成器的種子。如果是int,random_state是隨機數生成器使用的種子;如果RandomState實例,random_state是隨機數生成器;如果為 None,則隨機數生成器是 np.random 使用的 RandomState 實例。

learning_rate{‘constant’, ‘optimal’, ‘invscaling’, ‘adaptive’},默認='最佳'

fit 一起使用的學習率計劃。 (如果使用 partial_fit ,必須直接控製學習率)。

  • ‘constant’:eta = eta0
  • ‘optimal’:eta = 1.0 / (alpha * (t + t0)) 其中 t0 由 Leon Bottou 提出的啟發式方法選擇。
  • ‘invscaling’:eta = eta0 / pow(t, power_t)
  • ‘adaptive’:eta = eta0,隻要訓練不斷減少。如果 early_stopping 為 True,則每次 n_iter_no_change 個連續 epoch 未能將訓練損失減少 tol 或未能將驗證分數增加 tol,則當前學習率除以 5。
eta0浮點數,默認=0.0

‘constant’, ‘invscaling’ 或 ‘adaptive’ 計劃的初始學習率。默認值為 0.0,因為默認計劃 ‘optimal’ 不使用 eta0。

power_t浮點數,默認=0.5

逆縮放學習率的 index [默認 0.5]。

warm_start布爾,默認=假

當設置為 True 時,重用之前調用的解決方案作為初始化,否則,隻需擦除之前的解決方案。請參閱詞匯表。

當 warm_start 為 True 時重複調用 fit 或 partial_fit 可能會導致與單次調用 fit 時不同的解決方案,因為數據被打亂的方式。如果使用動態學習率,則根據已經看到的樣本數量調整學習率。調用fit 重置此計數器,而partial_fit 將導致增加現有計數器。

averagebool 或 int,默認 = False

設置為 True 時,計算平均 SGD 權重並將結果存儲在 coef_ 屬性中。如果設置為大於 1 的 int,則一旦看到的樣本總數達到平均值,就會開始求平均值。因此average=10 將在看到 10 個樣本後開始求平均值。

屬性

coef_ndarray 形狀 (1, n_features)

分配給特征的權重。

offset_ndarray 形狀 (1,)

用於從原始分數定義決策函數的偏移量。我們有關係:decision_function = score_samples - 偏移量。

n_iter_int

達到停止標準的實際迭代次數。

t_int

訓練期間執行的權重更新次數。與 (n_iter_ * n_samples) 相同。

loss_function_具體LossFunction
n_features_in_int

擬合期間看到的特征數。

feature_names_in_ndarray 形狀(n_features_in_,)

擬合期間看到的特征名稱。僅當 X 具有全為字符串的函數名稱時才定義。

注意

該估計器在訓練樣本數量上具有線性複雜性,因此比 sklearn.svm.OneClassSVM 實現更適合具有大量訓練樣本(例如 > 10,000)的數據集。

例子

>>> import numpy as np
>>> from sklearn import linear_model
>>> X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])
>>> clf = linear_model.SGDOneClassSVM(random_state=42)
>>> clf.fit(X)
SGDOneClassSVM(random_state=42)
>>> print(clf.predict([[4, 4]]))
[1]

相關用法


注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.linear_model.SGDOneClassSVM。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。