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


Python cuml.Ridge用法及代碼示例

用法:

class cuml.Ridge(*, alpha=1.0, solver='eig', fit_intercept=True, normalize=False, handle=None, output_type=None, verbose=False)

Ridge 擴展了LinearRegression,在使用 X 中的預測變量線性組合預測響應 y 時,通過對係數提供 L2 正則化。它可以減少預測變量的方差,並改善問題的條件。

除了 cuDF 對象之外,cuML 的 Ridge 還可以在主機中作為 NumPy 數組或在設備中(作為 Numba 或 __cuda_array_interface__ 兼容)獲取 array-like 對象。它提供了 3 種算法:SVD、Eig 和 CD 來擬合線性模型。一般來說,SVD 使用顯著更多的內存並且比 Eig 慢。如果使用 CUDA 10.1,內存差異甚至比其他支持的 CUDA 版本更大。但是,SVD 比 Eig(默認)更穩定。 CD 使用坐標下降法,當數據量大時可以更快。

參數

alpha浮點數(默認 = 1.0)

正則化強度 - 必須是正浮點數。較大的值指定更強的正則化。稍後將支持數組輸入。

solver{‘eig’, ‘svd’, ‘cd’}(默認 = ‘eig’)

Eig 使用協方差矩陣的特征分解,並且速度更快。 SVD 速度較慢,但保證穩定。 CD 或 Coordinate Descent 非常快,適用於大型問題。

fit_intercept布爾值(默認 = True)

如果為 True,Ridge 會嘗試校正 y 的全局平均值。如果為 False,則模型預計您已將數據居中。

normalize布爾值(默認 = False)

如果為 True,X 中的預測變量將通過除以它的 L2 範數來歸一化。如果為 False,則不會進行縮放。

handlecuml.Handle

指定 cuml.handle 保存用於此模型中計算的內部 CUDA 狀態。最重要的是,這指定了將用於模型計算的 CUDA 流,因此用戶可以通過在多個流中創建句柄在不同的流中同時運行不同的模型。如果為 None,則創建一個新的。

output_type{‘input’, ‘cudf’, ‘cupy’, ‘numpy’, ‘numba’},默認=無

用於控製估計器的結果和屬性的輸出類型的變量。如果為 None,它將繼承在模塊級別設置的輸出類型 cuml.global_settings.output_type 。有關詳細信息,請參閱輸出數據類型配置。

verboseint 或布爾值,默認=False

設置日誌記錄級別。它必須是 cuml.common.logger.level_* 之一。有關詳細信息,請參閱詳細級別。

注意

Ridge 提供 L2 正則化。這意味著係數可以縮小到非常小,但不是零。這可能會導致係數的可解釋性問題。考慮使用 Lasso,或將小係數閾值化為零。

嶺的應用

嶺回歸的使用方式與LinearRegression 相同,但不受多重共線性問題的影響。 Ridge 用於保險費預測、股票市場分析等等。

有關其他文檔,請參閱 Scikit-learn’s Ridge Regression

例子

import numpy as np
import cudf

# Both import methods supported
from cuml import Ridge
from cuml.linear_model import Ridge

alpha = np.array([1e-5])
ridge = Ridge(alpha = alpha, fit_intercept = True, normalize = False,
              solver = "eig")

X = cudf.DataFrame()
X['col1'] = np.array([1,1,2,2], dtype = np.float32)
X['col2'] = np.array([1,2,2,3], dtype = np.float32)

y = cudf.Series( np.array([6.0, 8.0, 9.0, 11.0], dtype = np.float32) )

result_ridge = ridge.fit(X, y)
print("Coefficients:")
print(result_ridge.coef_)
print("Intercept:")
print(result_ridge.intercept_)

X_new = cudf.DataFrame()
X_new['col1'] = np.array([3,2], dtype = np.float32)
X_new['col2'] = np.array([5,5], dtype = np.float32)
preds = result_ridge.predict(X_new)

print("Predictions:")
print(preds)

輸出:

Coefficients:

            0 1.0000001
            1 1.9999998

Intercept:
            3.0

Preds:

            0 15.999999
            1 14.999999

屬性

coef_數組,形狀(n_features)

線性回歸模型的估計係數。

intercept_數組

獨立術語。如果 fit_intercept 為 False,則為 0。

相關用法


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