sklearn.svm.NuSVR?

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

Nu支持向量回歸。

與NuSVC相似,對于回歸,使用參數nu來控制支持向量的數量。但是,與NuSVC不同的是,在NuSVC中nu替換了C,而在這里nu替換了參數epsilon of epsilon- svr。

該實現基于libsvm。

更多信息請參閱 用戶指南.

參數 說明
nu 浮點數,默認=0.5
訓練誤差分數的上界和支持向量分數的下界。應該在區間(0,1)內。默認情況下取0.5。
C 浮點數,默認=1.0
誤差項的懲罰系數C。
kernel {‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’}, 默認=’rbf’
指定算法中使用的內核類型。它必須是“linear”,“poly”,“rbf”,“sigmoid”,“precomputed”或者“callable”中的一個。如果沒有給出,將使用“rbf”。如果給定了一個可調用函數,則用它來預先計算核矩陣。
degree 整數型,默認=3
多項式內核函數的階數(“ poly”)。將被所有其他內核忽略。
gamma 浮點數或者{‘scale’, ‘auto’} , 默認=’scale’
系數包含‘rbf’, ‘poly’ 和‘sigmoid’ ,如果gamma='scale'(默認),則它使用1 / (n_features * X.var())作為gamma的值, 如果是auto,則使用1 / n_features。 在0.22版本有改動:默認的gamma從“auto”改為“scale”。
coef0 浮點數,默認=0.0
核函數中的獨立項。它只在' poly '和' sigmoid '中有意義。
shrinking 布爾值,默認=True
是否使用縮小啟發式,參見使用指南.
tol 浮點數,默認=1e-3
殘差收斂條件。
cache_size 浮點數,默認=200
指定內核緩存的大小(以MB為單位)。
verbose 布爾值,默認=False
是否啟用詳細輸出。請注意,此參數針對liblinear中運行每個進程時設置,如果啟用,則可能無法在多線程上下文中正常工作。
max_iter 整數型,默認=-1
對求解器內的迭代進行硬性限制,或者為-1(無限制時)。
屬性 說明
support_ 形如(n_SV,)的數組
支持向量的指標。
support_vectors_ 形如(n_SV, n_features)的數組
支持向量
dual_coef_ 形如(n_class-1, n_SV)的數組
決策函數中支持向量的系數。
coef_ 形如(1, n_features)的數組
分配給特征的權重(原始問題的系數),僅在線性內核的情況下可用。coef_是一個繼承自raw_coef_的只讀屬性,它遵循liblinear的內部存儲器布局。
intercept_ 形如(n_class * (n_class-1) / 2,)的數組
決策函數中的常量。

另見:

NuSVC

支持向量機,用于通過libsvm進行分類,并帶有一個參數來控制支持向量的數量。

SVC

支持向量機使用libsvm進行分類。

參考文獻:

LIBSVM: A Library for Support Vector Machines

示例:

>>> from sklearn.svm import NuSVR
>>> from sklearn.pipeline import make_pipeline
>>> from sklearn.preprocessing import StandardScaler
>>> import numpy as np
>>> n_samples, n_features = 105
>>> np.random.seed(0)
>>> y = np.random.randn(n_samples)
>>> X = np.random.randn(n_samples, n_features)
>>> regr = make_pipeline(StandardScaler(), NuSVR(C=1.0, nu=0.1))
>>> regr.fit(X, y)
Pipeline(steps=[('standardscaler', StandardScaler()),
                ('nusvr', NuSVR(nu=0.1))])

方法:

fit(X, y[, sample_weight]) 根據給定的訓練數據擬合支持向量機模型。
get_params([deep]) 獲取這個估計器的參數。
predict(X) 在X中對樣本進行分類
score(X, y[, sample_weight]) 返回給定測試數據和標簽的平均精度。
set_params(**params) 設置這個估計器的參數。
__init__(*, nu=0.5, C=1.0, kernel='rbf', degree=3, gamma='scale', coef0=0.0, shrinking=True, tol=0.001, cache_size=200, verbose=False, max_iter=-1)

源碼

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

fit(X, y, sample_weight=None)

源碼

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

參數 說明
X 形如(n_samples, n_features) 或者 (n_samples, n_samples)的數組或者稀疏矩陣
訓練向量,其中n_samples為樣本數量,n_features為特征數量。對于kernel= " precomputed ", X的期望形狀為(n_samples, n_samples)。
y 形如(n_samples,)的數組
目標值(分類中的類標簽,回歸中的實數)
sample_weight 形如(n_samples,)的數組,默認=None
樣本的權重。每個樣品重新定標C。較高的權重將使分類器更加注重這些樣本點。
返回值 說明
self object

注:

如果X和y不是C-ordered,并且np.float64和X的連續數組不是scipy.sparse.csr_matrix,則可以復制X或y。

如果X是一個連續數組,則其他方法將不支持將稀疏矩陣作為輸入。

get_params(deep=True)

源碼

獲取這個估計器的參數。

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

源碼

對X中的樣本執行分類。

對于返回值為+1或-1的one-class模型

參數 說明
X 形如(n_samples, n_features) 或者 (n_samples_test, n_samples_train)的數組或者稀疏矩陣
對于內核=“precomputed”,X的預期形狀為(n_samples_test,n_samples_train)。
返回值 說明
y_pred 形如(n_sample, )的數組
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 估算器實例

sklearn.svm.NuSVR使用示例?