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來實現的,因此它在選擇懲罰函數和損失函數時具有更大的靈活性,能夠更好的適應大量的樣本。

這個類同時支持連續數據和離散數據。

用戶指南中閱讀更多內容。

版本0.16中的新功能。

參數 說明
epsilon 浮點數, 默認= 0.0
Epsilon參數作用于對ε不敏感的損失函數中。注意,該參數的值取決于目標變量y的尺度,如果不確定,請設置epsilon=0
tol 浮點數,默認= 1e-4
殘差收斂條件。
C 浮點數,默認= 1.0
正則化參數。正則化的強度與C成反比。必須嚴格為正。
loss {'epsilon_insensitive','squared_epsilon_insensitive'},默認='epsilon_insensitive'
指定損失函數。對ε不敏感的損失函數(標準SVR)為L1損失,而對ε不敏感的平方損失函數(“ squared_epsilon_insensitive”)為L2損失。
fit_intercept 布爾值,默認=True
是否計算該模型的截距項。如果設置為false,則在計算中將不使用截距項(也就是說數據應已居中)。
intercept_scaling 浮點數,默認=1
當self.fit_intercept為True時,實例向量x變為[x,self.intercept_scaling],即在實例向量上附加一個定值為intercept_scaling的“合成”特征。請注意,截距項將變為intercept_scaling*綜合特征權重
與所有其他特征一樣,合成特征權重也要經過l1 / l2正則化。為了減輕正則化對合成特征權重(同時也對對截距項)的影響,必須增加intercept_scaling。
dual 布爾值,默認= True
選擇使用什么算法來解決對偶或原始優化問題。當n_samples> n_features時,首選dual = False。
verbose 整數型,默認值= 0
是否啟用詳細輸出。請注意,此參數針對liblinear中運行每個進程時設置,如果啟用,則可能無法在多線程上下文中正常工作。
random_state 整數型或RandomState的實例,默認=None
控制用于數據抽取時的偽隨機數生成。在多個函數調用之間傳遞可重復輸出的整數值。請參閱詞匯表
max_iter 整數值,默認= 1000
要運行的最大迭代次數。
屬性 說明
coef_ 當n_classes == 2時是形狀為(n_features)的數組,否則是形狀為(n_classes,n_features)的數組
分配給特征的權重(原始問題的系數),僅在線性內核的情況下可用。coef_是一個繼承自raw_coef_的只讀屬性,它遵循liblinear的內部存儲器布局。
intercept_ 當n_classes == 2時為(1)的數組,否則為(n_classes)的數組
決策函數中的常量。
n_iter_ 整數型
所有類的最大迭代次數。

另見:

  • LinearSVC

    使用與該類相同的庫實現支持向量機分類器(liblinear)。

  • SVR

    使用libsvm實現支持向量機回歸:內核可以是非線性的,但是它的SMO算法不能像LinearSVC那樣擴展到大量樣本。

  • sklearn.linear_model.SGDRegressor

    SGDRegressor可以通過調整懲罰和損失參數來優化與LinearSVR相同的成本函數。另外,它需要更少的內存,允許增量(在線)學習,并實現各種損失函數和正則化機制。

示例:

>>> 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([[0000]]))
[-2.384...]

方法

方法 說明
fit(X,y [,sample_weight]) 根據給定的訓練數據擬合模型
get_params([deep]) 獲取當前估計量的參數
predict(X) 使用線性模型進行預測
score(X,y [,sample_weight]) 返回預測的決定系數R ^ 2
set_params(**params) 設置當前估計量的參數。
__init__(*, 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

源碼

初始化self。請參閱help(type(self)獲取準確的說明。

fit(X, y, sample_weight=None)

源碼

根據給定的訓練數據擬合模型。

參數: 說明
X 形如(n_samples, n_features)的數組或者稀疏矩陣
訓練向量,其中樣本數量中的n_samples和n_features為feature的數量
y 形如 (n_samples,)的數組
相對于X的目標向量
sample_weight 形如(n_samples,)的數組, 默認=None
分配給單個樣本的權重數組。如果沒有提供,則每個樣品都給予單位權重。
新版本0.18
返回值 說明
self object
估計器的一個實例。
get_params(deep=True)

獲取當前估計量的參數

參數 說明
deep bool, default = True
如果為真,則將返回此估計器和其所包含子對象的參數
返回值 說明
params mapping of string to any
參數名被映射至他們的值
predict(X)

[源碼]

使用線性模型進行預測。

參數 說明
X 形如(n_samples, n_features)的數組或者稀疏矩陣
樣本
返回值 說明
C 形如(n_samples,)的數組
返回預測的值
score(X, y, sample_weight=None)

[源碼]

返回預測的決定系數R^2。

定義決定系數R^2為(1 - u/v),其中u為(y_true - y_pred) ** 2).sum()的殘差平方和,v為(y_true - y_true.mean()) ** 2).sum()的平方和。最好的分數可能是1.0,同時它可能是負的(因為模型可以任意地更糟)。一個常數模型總是預測y的期望值,而不考慮輸入特征,得到的R^2值為0.0。

參數 說明
X 形如 (n_samples, n_features)的數組
測試樣本。對于某些估計器,這可能是一個預先計算的內核矩陣或一列通用對象,而不是形狀為(n_samples, n_samples_fitting)的數組,其中n_samples_fitting是用于擬合估計器的樣本數量。
y 形如(n_samples,) 或者 (n_samples, n_outputs)的數組
X中結果為真的標簽
sample_weight 形如(n_samples,)的數組,默認=None
樣本的權重
返回值 說明
score 浮點數
self.predict(X) wrt. y的R^2

注:

調用回歸變量上的score時,使用的R2 score(0.23版本)中的multioutput='uniform_average'來保持與r2_score的默認值一致。這影響了所有多輸出回歸的score方法(除了 MultiOutputRegressor)。

set_params(**params)

該方法適用于簡單估計器和嵌套對象(如管道)。后者具有形式為 <component>__<parameter>的參數,這樣就可以更新嵌套對象的每個組件。

參數 說明
params 字典
估算器參數
返回值 說明
self object
估算器實例