OrthogonalMatchingPursuitCV#
- class sklearn.linear_model.OrthogonalMatchingPursuitCV(*, copy=True, fit_intercept=True, max_iter=None, cv=None, n_jobs=None, verbose=False)[原始碼]#
交叉驗證正交匹配追蹤模型 (OMP)。
請參閱詞彙表中關於交叉驗證估計器的條目。
在使用者指南中閱讀更多內容。
- 參數:
- copybool,預設值為 True
演算法是否必須複製設計矩陣 X。只有當 X 已排序為 Fortran 順序時,此值才為 false,否則仍會進行複製。
- fit_interceptbool,預設值為 True
是否為此模型計算截距。若設定為 false,則計算中不會使用截距(即預期資料是置中的)。
- max_iterint,預設值為 None
要執行的最大迭代次數,因此是要包含的最大特徵數。若有的話,是
n_features
的 10%,但至少為 5。- cvint、交叉驗證產生器或可迭代物件,預設值為 None
決定交叉驗證分割策略。 cv 的可能輸入值為
None,使用預設的 5 折交叉驗證,
整數,指定折數。
一個可迭代物件,會產生 (訓練, 測試) 分割,作為索引陣列。
對於整數/None 輸入,會使用
KFold
。請參考 使用者指南,了解此處可以使用的各種交叉驗證策略。
在 0.22 版本中變更:如果為 None,
cv
的預設值從 3 折變更為 5 折。- n_jobsint,預設值為 None
在交叉驗證期間要使用的 CPU 數量。
None
表示 1,除非在joblib.parallel_backend
內容中。-1
表示使用所有處理器。請參閱詞彙表以了解更多詳細資訊。- verbosebool 或 int,預設值為 False
設定詳細資訊的數量。
- 屬性:
- intercept_float 或形狀為 (n_targets,) 的 ndarray
決策函式中的獨立項。
- coef_形狀為 (n_features,) 或 (n_targets, n_features) 的 ndarray
參數向量(問題公式中的 w)。
- n_nonzero_coefs_int
估計的非零係數數量,在交叉驗證折疊中給出最佳均方誤差。
- n_iter_int 或類陣列
在所有折疊中進行交叉驗證後,針對使用最佳超參數重新擬合的模型,每個目標的活動特徵數量。
- n_features_in_int
在fit期間看到的特徵數量。
在 0.24 版本中新增。
- feature_names_in_形狀為 (
n_features_in_
,) 的 ndarray 在fit期間看到的特徵名稱。僅當
X
具有都是字串的特徵名稱時,才定義此項。在 1.0 版本中新增。
另請參閱
orthogonal_mp
解決 n_targets 正交匹配追蹤問題。
orthogonal_mp_gram
僅使用格拉姆矩陣 X.T * X 和乘積 X.T * y 來解決 n_targets 正交匹配追蹤問題。
lars_path
使用 LARS 演算法計算最小角度迴歸或 Lasso 路徑。
Lars
最小角度迴歸模型,又稱 LAR。
LassoLars
使用最小角度迴歸擬合的 Lasso 模型,又稱 Lars。
OrthogonalMatchingPursuit
正交匹配追蹤模型 (OMP)。
LarsCV
交叉驗證最小角度迴歸模型。
LassoLarsCV
使用最小角度迴歸擬合的交叉驗證 Lasso 模型。
sklearn.decomposition.sparse_encode
一般稀疏編碼。結果的每一欄都是 Lasso 問題的解。
注意事項
在
fit
中,一旦透過交叉驗證找到非零係數的最佳數量,就會使用整個訓練集再次擬合模型。範例
>>> from sklearn.linear_model import OrthogonalMatchingPursuitCV >>> from sklearn.datasets import make_regression >>> X, y = make_regression(n_features=100, n_informative=10, ... noise=4, random_state=0) >>> reg = OrthogonalMatchingPursuitCV(cv=5).fit(X, y) >>> reg.score(X, y) 0.9991... >>> reg.n_nonzero_coefs_ np.int64(10) >>> reg.predict(X[:1,]) array([-78.3854...])
- fit(X, y, **fit_params)[原始碼]#
使用 X、y 作為訓練資料來擬合模型。
- 參數:
- X形狀為 (n_samples, n_features) 的類陣列
訓練資料。
- y形狀為 (n_samples,) 的類陣列
目標值。如果需要,會強制轉換為 X 的 dtype。
- **fit_paramsdict
要傳遞給底層分割器的參數。
在 1.4 版本中新增:只有在
enable_metadata_routing=True
時才可用,可以使用sklearn.set_config(enable_metadata_routing=True)
來設定。請參閱 中繼資料路由使用者指南,以了解更多詳細資訊。
- 傳回值:
- self物件
傳回 self 的執行個體。
- get_metadata_routing()[原始碼]#
取得此物件的中繼資料路由。
請查看 使用者指南,了解路由機制如何運作。
在 1.4 版本中新增。
- 傳回值:
- routingMetadataRouter
一個封裝路由資訊的
MetadataRouter
。
- get_params(deep=True)[原始碼]#
取得此估計器的參數。
- 參數:
- deepbool,預設值為 True
如果為 True,則會傳回此估計器和所包含子物件(是估計器)的參數。
- 傳回值:
- paramsdict
參數名稱對應到其值的字典。
- predict(X)[原始碼]#
使用線性模型進行預測。
- 參數:
- X類陣列或稀疏矩陣,形狀 (n_samples, n_features)
樣本。
- 傳回值:
- C陣列,形狀 (n_samples,)
傳回預測值。
- 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
樣本權重。
- 傳回值:
- score浮點數
self.predict(X)
相對於y
的 \(R^2\)。
注意事項
在回歸器上呼叫
score
時使用的 \(R^2\) 分數,從 0.23 版本開始使用multioutput='uniform_average'
,以與r2_score
的預設值保持一致。這會影響所有多輸出回歸器的score
方法(除了MultiOutputRegressor
)。
- set_params(**params)[原始碼]#
設定此估計器的參數。
此方法適用於簡單的估計器以及巢狀物件(例如
Pipeline
)。後者具有<component>__<parameter>
形式的參數,因此可以更新巢狀物件的每個元件。- 參數:
- **params字典
估計器參數。
- 傳回值:
- self估計器實例
估計器實例。
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') OrthogonalMatchingPursuitCV [原始碼]#
請求傳遞給
score
方法的中繼資料。請注意,只有在
enable_metadata_routing=True
時,此方法才相關(請參閱sklearn.set_config
)。請參閱關於路由機制如何運作的使用者指南。每個參數的選項是
True
:請求中繼資料,並在提供時傳遞給score
。如果未提供中繼資料,則會忽略請求。False
:不請求中繼資料,並且元估計器不會將其傳遞給score
。None
:不請求中繼資料,如果使用者提供中繼資料,則元估計器會引發錯誤。str
:中繼資料應使用此給定的別名而不是原始名稱傳遞給元估計器。
預設值 (
sklearn.utils.metadata_routing.UNCHANGED
) 會保留現有的請求。這允許您變更某些參數的請求,而不是其他參數的請求。在 1.3 版本中新增。
請注意
只有當此估計器用作元估計器的子估計器時,此方法才相關,例如在
Pipeline
中使用。否則,它沒有任何作用。- 參數:
- sample_weight字串、True、False 或 None,預設值為 sklearn.utils.metadata_routing.UNCHANGED
score
中sample_weight
參數的中繼資料路由。
- 傳回值:
- self物件
已更新的物件。