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 中 nu 取代 C 不同,這裡 nu 取代了 epsilon-SVR 的參數 epsilon。

該實現基於 libsvm。

請在 使用者指南 中閱讀更多資訊。

參數:
nufloat,預設值為 0.5

訓練錯誤分數的上限和支持向量分數的下限。 應在區間 (0, 1] 內。 預設會取 0.5。

Cfloat,預設值為 1.0

誤差項的懲罰參數 C。 有關縮放正規化參數 C 的效果的直觀視覺化,請參閱縮放 SVC 的正規化參數

kernel{‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’} 或可呼叫對象,預設值為 ‘rbf’

指定演算法中要使用的核心類型。 如果未給定,將會使用 ‘rbf’。 如果給定一個可呼叫對象,則會用來預先計算核心矩陣。 有關不同核心類型的直觀視覺化,請參閱使用線性與非線性核心的支援向量迴歸 (SVR)

degreeint,預設值為 3

多項式核心函數 (‘poly’) 的次數。 必須是非負數。 其他所有核心都忽略此參數。

gamma{‘scale’, ‘auto’} 或 float,預設值為 ‘scale’

用於 ‘rbf’、‘poly’ 和 ‘sigmoid’ 的核心係數。

  • 如果傳遞 gamma='scale' (預設),則會使用 1 / (n_features * X.var()) 作為 gamma 的值,

  • 如果為 ‘auto’,則使用 1 / n_features

  • 如果為 float,則必須是非負數。

在 0.22 版中變更:gamma 的預設值從 ‘auto’ 變更為 ‘scale’。

coef0float,預設值為 0.0

核心函數中的獨立項。 它僅在 ‘poly’ 和 ‘sigmoid’ 中顯著。

shrinkingbool,預設值為 True

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

tolfloat,預設值為 1e-3

停止條件的容差。

cache_sizefloat,預設值為 200

指定核心快取的大小(以 MB 為單位)。

verbosebool,預設值為 False

啟用詳細輸出。 請注意,此設定利用 libsvm 中每個程序的執行時間設定,如果啟用,在多執行緒環境中可能無法正常工作。

max_iterint,預設值為 -1

求解器中反覆運算的硬性限制,或者 -1 表示沒有限制。

屬性:
coef_形狀為 (1, n_features) 的 ndarray

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

dual_coef_形狀為 (1, n_SV) 的 ndarray

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

fit_status_int

如果正確擬合則為 0,否則為 1(會引發警告)

intercept_形狀為 (1,) 的 ndarray

決策函數中的常數。

n_features_in_int

擬合期間看到的特徵數量。

在 0.24 版中新增。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

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

在 1.0 版中新增。

n_iter_int

最佳化例行程式執行以擬合模型的反覆運算次數。

在 1.1 版中新增。

n_support_形狀為 (1,)、dtype=int32 的 ndarray

每個類別的支持向量數量。

shape_fit_形狀為 (n_dimensions_of_X,) 的 int 元組

訓練向量 X 的陣列維度。

support_形狀為 (n_SV,) 的 ndarray

支持向量的索引。

support_vectors_形狀為 (n_SV, n_features) 的 ndarray

支持向量。

另請參閱

NuSVC

使用 libsvm 實作的用於分類的支援向量機,具有控制支持向量數量的參數。

SVR

使用 libsvm 實作的用於迴歸的 Epsilon 支援向量機。

參考文獻

範例

>>> from sklearn.svm import NuSVR
>>> from sklearn.pipeline import make_pipeline
>>> from sklearn.preprocessing import StandardScaler
>>> import numpy as np
>>> n_samples, n_features = 10, 5
>>> 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))])
property coef_#

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

傳回:
形狀為 (n_features, n_classes) 的 ndarray
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物件

已擬合的估算器。

注意事項

如果 X 和 y 不是 np.float64 的 C 順序且連續的陣列,且 X 不是 scipy.sparse.csr_matrix,則 X 和/或 y 可能會被複製。

如果 X 是密集陣列,則其他方法將不支援稀疏矩陣作為輸入。

get_metadata_routing()[原始碼]#

取得此物件的中繼資料路由。

請查看 使用者指南 了解路由機制如何運作。

傳回:
routing中繼資料請求

一個 MetadataRequest 封裝了路由資訊。

get_params(deep=True)[原始碼]#

取得此估算器的參數。

參數:
deepbool,預設值=True

如果為 True,則將返回此估算器的參數以及包含的子物件(這些子物件也是估算器)。

傳回:
paramsdict

參數名稱對應到它們的值。

property n_support_#

每個類別的支持向量數量。

predict(X)[原始碼]#

對 X 中的樣本執行迴歸。

對於單類別模型,返回 +1(內點)或 -1(離群點)。

參數:
X形狀為 (n_samples, n_features) 的 {類陣列, 稀疏矩陣}

對於 kernel=”precomputed”,X 的預期形狀為 (n_samples_test, n_samples_train)。

傳回:
y_pred形狀為 (n_samples,) 的 ndarray

預測值。

score(X, y, sample_weight=None)[原始碼]#

返回預測的決定係數。

決定係數 \(R^2\) 定義為 \((1 - \frac{u}{v})\),其中 \(u\) 是殘差平方和 ((y_true - y_pred)** 2).sum(),而 \(v\) 是總平方和 ((y_true - y_true.mean()) ** 2).sum()。最佳可能分數為 1.0,並且可能是負數(因為模型可能任意差)。一個始終預測 y 的期望值,而忽略輸入特徵的常數模型,將獲得 0.0 的 \(R^2\) 分數。

參數:
X形狀為 (n_samples, n_features) 的類陣列

測試樣本。對於某些估算器,這可能是一個預先計算的核心矩陣或一個通用物件列表,其形狀為 (n_samples, n_samples_fitted),其中 n_samples_fitted 是估算器擬合中使用的樣本數。

y形狀為 (n_samples,) 或 (n_samples, n_outputs) 的類陣列

X 的真實值。

sample_weight形狀為 (n_samples,) 的類陣列物件,預設值為 None

樣本權重。

傳回:
scorefloat

self.predict(X) 相對於 y\(R^2\)

注意事項

在迴歸器上呼叫 score 時使用的 \(R^2\) 分數使用 0.23 版本以來的 multioutput='uniform_average',以與 r2_score 的預設值保持一致。這會影響所有多輸出迴歸器(除了 MultiOutputRegressor 之外)的 score 方法。

set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') NuSVR[原始碼]#

請求傳遞給 fit 方法的中繼資料。

請注意,只有在 enable_metadata_routing=True 時此方法才相關(請參閱 sklearn.set_config)。請參閱 使用者指南,了解路由機制如何運作。

每個參數的選項是

  • True:請求中繼資料,並在提供時傳遞給 fit。如果未提供中繼資料,則會忽略請求。

  • False:不請求中繼資料,並且中繼估算器不會將其傳遞給 fit

  • None:不請求中繼資料,如果使用者提供中繼資料,則中繼估算器會引發錯誤。

  • str:中繼資料應使用給定的別名而不是原始名稱傳遞給中繼估算器。

預設值 (sklearn.utils.metadata_routing.UNCHANGED) 保留現有的請求。這允許您變更某些參數的請求,而不變更其他參數的請求。

新增於 1.3 版。

注意

僅當此估算器用作中繼估算器的子估算器時,此方法才相關,例如在 Pipeline 內使用。否則,它沒有任何作用。

參數:
sample_weightstr、True、False 或 None,預設值為 sklearn.utils.metadata_routing.UNCHANGED

fitsample_weight 參數的中繼資料路由。

傳回:
self物件

已更新的物件。

set_params(**params)[原始碼]#

設定此估算器的參數。

此方法適用於簡單的估算器以及巢狀物件(例如 Pipeline)。後者具有 <component>__<parameter> 形式的參數,因此可以更新巢狀物件的每個元件。

參數:
**paramsdict

估算器參數。

傳回:
self估算器實例

估算器實例。

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') NuSVR[原始碼]#

請求傳遞給 score 方法的中繼資料。

請注意,只有在 enable_metadata_routing=True 時此方法才相關(請參閱 sklearn.set_config)。請參閱 使用者指南,了解路由機制如何運作。

每個參數的選項是

  • True:請求中繼資料,並在提供時傳遞給 score。如果未提供中繼資料,則會忽略請求。

  • False:不請求中繼資料,並且中繼估算器不會將其傳遞給 score

  • None:不請求中繼資料,如果使用者提供中繼資料,則中繼估算器會引發錯誤。

  • str:中繼資料應使用給定的別名而不是原始名稱傳遞給中繼估算器。

預設值 (sklearn.utils.metadata_routing.UNCHANGED) 保留現有的請求。這允許您變更某些參數的請求,而不變更其他參數的請求。

新增於 1.3 版。

注意

僅當此估算器用作中繼估算器的子估算器時,此方法才相關,例如在 Pipeline 內使用。否則,它沒有任何作用。

參數:
sample_weightstr、True、False 或 None,預設值為 sklearn.utils.metadata_routing.UNCHANGED

scoresample_weight 參數的中繼資料路由。

傳回:
self物件

已更新的物件。