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


Python sklearn SVR用法及代碼示例


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

用法:

class sklearn.svm.SVR(*, kernel='rbf', degree=3, gamma='scale', coef0=0.0, tol=0.001, C=1.0, epsilon=0.1, shrinking=True, cache_size=200, verbose=False, max_iter=- 1)

Epsilon-Support 向量回歸。

模型中的自由參數是 C 和 epsilon。

該實現基於 libsvm。擬合時間複雜度超過樣本數量的二次方,這使得很難擴展到具有超過 10000 個樣本的數據集。對於大型數據集,可以考慮使用 LinearSVR SGDRegressor ,可能在 Nystroem 轉換器之後。

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

參數

kernel{‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’} 或可調用,默認='rbf'

指定要在算法中使用的內核類型。如果沒有給出,將使用‘rbf’。如果給定了可調用對象,則它用於預先計算內核矩陣。

degree整數,默認=3

多項式核函數的度數 (‘poly’)。被所有其他內核忽略。

gamma{‘scale’, ‘auto’} 或浮點數,默認='scale'

‘rbf’, ‘poly’ 和 ‘sigmoid’ 的核係數。

  • 如果gamma='scale'(默認)被傳遞,那麽它使用 1 /(n_features * X.var()) 作為伽瑪值,
  • 如果‘auto’,使用 1 /n_features。
coef0浮點數,默認=0.0

核函數中的獨立項。僅在‘poly’和‘sigmoid’中有意義。

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

停止標準的容差。

C浮點數,默認=1.0

正則化參數。正則化的強度與 C 成反比。必須嚴格為正。罰分是平方 l2 罰分。

epsilon浮點數,默認=0.1

epsilon-SVR 模型中的 Epsilon。它指定了epsilon-tube,在該epsilon-tube 中,訓練損失函數中沒有懲罰與在距離實際值ε 距離內預測的點相關聯。

shrinking布爾,默認=真

是否使用收縮啟發式。請參閱用戶指南。

cache_size浮點數,默認=200

指定內核緩存的大小(以 MB 為單位)。

verbose布爾,默認=假

啟用詳細輸出。請注意,此設置利用了 libsvm 中的 per-process 運行時設置,如果啟用,該設置可能無法在多線程上下文中正常工作。

max_iter整數,默認=-1

求解器內迭代的硬限製,或 -1 表示無限製。

屬性

class_weight_ndarray 形狀 (n_classes,)

每個類的參數 C 的乘數。根據class_weight 參數計算。

coef_ndarray 形狀 (1, n_features)

kernel="linear" 時分配給特征的權重。

dual_coef_ndarray 形狀 (1, n_SV)

決策函數中支持向量的係數。

fit_status_int

如果正確安裝,則為 0,否則為 1(將發出警告)

intercept_ndarray 形狀 (1,)

決策函數中的常數。

n_features_in_int

擬合期間看到的特征數。

feature_names_in_ndarray 形狀(n_features_in_,)

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

n_support_ndarray 形狀 (n_classes,), dtype=int32

每個類的支持向量數。

shape_fit_int 形狀的元組 (n_dimensions_of_X,)

訓練向量 X 的數組維度。

support_ndarray 形狀 (n_SV,)

支持向量的索引。

support_vectors_ndarray 形狀(n_SV,n_features)

支持向量。

參考

1

LIBSVM:支持向量機庫

2

普拉特,約翰 (1999)。 “支持向量機的概率輸出以及與正則化似然方法的比較。”

例子

>>> from sklearn.svm import SVR
>>> from sklearn.pipeline import make_pipeline
>>> from sklearn.preprocessing import StandardScaler
>>> import numpy as np
>>> n_samples, n_features = 10, 5
>>> rng = np.random.RandomState(0)
>>> y = rng.randn(n_samples)
>>> X = rng.randn(n_samples, n_features)
>>> regr = make_pipeline(StandardScaler(), SVR(C=1.0, epsilon=0.2))
>>> regr.fit(X, y)
Pipeline(steps=[('standardscaler', StandardScaler()),
                ('svr', SVR(epsilon=0.2))])

相關用法


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