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


Python sklearn LinearSVR用法及代碼示例


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

用法:

class sklearn.svm.LinearSVR(*, epsilon=0.0, tol=0.0001, C=1.0, loss='epsilon_insensitive', fit_intercept=True, intercept_scaling=1.0, dual=True, verbose=0, random_state=None, max_iter=1000)

線性支持向量回歸。

與參數 kernel='linear' 的 SVR 類似,但根據 liblinear 而不是 libsvm 實現,因此它在選擇懲罰和損失函數方掩碼有更大的靈活性,並且應該更好地擴展到大量樣本。

此類支持密集和稀疏輸入。

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

參數

epsilon浮點數,默認=0.0

epsilon-insensitive 損失函數中的 Epsilon 參數。請注意,此參數的值取決於目標變量 y 的規模。如果不確定,請設置 epsilon=0

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

停止標準的公差。

C浮點數,默認=1.0

正則化參數。正則化的強度與 C 成反比。必須嚴格為正。

loss{‘epsilon_insensitive’, ‘squared_epsilon_insensitive’},默認='epsilon_insensitive'

指定損失函數。 epsilon-insensitive 損失(標準 SVR)是 L1 損失,而平方 epsilon-insensitive 損失(‘squared_epsilon_insensitive’)是 L2 損失。

fit_intercept布爾,默認=真

是否計算此模型的截距。如果設置為 false,則不會在計算中使用截距(即數據預計已經居中)。

intercept_scaling浮點數,默認=1.0

當 self.fit_intercept 為 True 時,實例向量 x 變為 [x, self.intercept_scaling],即在實例向量上附加一個常數值等於 intercept_scaling 的 “synthetic” 特征。截距變為intercept_scaling * 合成特征權重 注意!合成特征權重像所有其他特征一樣受到 l1/l2 正則化。為了減少正則化對合成特征權重(因此對截距)的影響,必須增加intercept_scaling。

dual布爾,默認=真

選擇算法來解決對偶或原始優化問題。當 n_samples > n_features 時首選 dual=False。

verbose整數,默認=0

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

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

控製用於打亂數據的偽隨機數生成。傳遞 int 以在多個函數調用之間實現可重現的輸出。請參閱術語表。

max_iter整數,默認=1000

要運行的最大迭代次數。

屬性

coef_ndarray of shape (n_features) if n_classes == 2 else (n_classes, n_features)

分配給特征的權重(原始問題中的係數)。

coef_ 是從 raw_coef_ 派生的隻讀屬性,它遵循 liblinear 的內部存儲器布局。

intercept_ndarray of shape (1) if n_classes == 2 else (n_classes)

決策函數中的常數。

n_features_in_int

擬合期間看到的特征數。

feature_names_in_ndarray 形狀(n_features_in_,)

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

n_iter_int

在所有類中運行的最大迭代次數。

例子

>>> from sklearn.svm import LinearSVR
>>> from sklearn.pipeline import make_pipeline
>>> from sklearn.preprocessing import StandardScaler
>>> from sklearn.datasets import make_regression
>>> X, y = make_regression(n_features=4, random_state=0)
>>> regr = make_pipeline(StandardScaler(),
...                      LinearSVR(random_state=0, tol=1e-5))
>>> regr.fit(X, y)
Pipeline(steps=[('standardscaler', StandardScaler()),
                ('linearsvr', LinearSVR(random_state=0, tol=1e-05))])
>>> print(regr.named_steps['linearsvr'].coef_)
[18.582... 27.023... 44.357... 64.522...]
>>> print(regr.named_steps['linearsvr'].intercept_)
[-4...]
>>> print(regr.predict([[0, 0, 0, 0]]))
[-2.384...]

相關用法


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