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


Python cuml.LinearRegression用法及代碼示例


用法:

class cuml.LinearRegression(*, algorithm='eig', fit_intercept=True, normalize=False, handle=None, verbose=False, output_type=None)

LinearRegression 是一個簡單的機器學習模型,其中響應 y 由 X 中的預測變量的線性組合建模。

cuML 的 LinearRegression 需要 cuDF DataFrame 或 NumPy 矩陣,並提供 2 種算法 SVD 和 Eig 來擬合線性模型。 SVD 更穩定,但 Eig(默認)要快得多。

參數

algorithm{‘svd’, ‘eig’、qr、‘svd-qr’、‘svd-jacobi’},(默認 = ‘eig’)

選擇算法:

  • ‘svd’ - svd-jacobi 的別名;

  • ‘eig’ - 使用協方差矩陣的特征分解;

  • ‘qr’ - 使用 QR 分解算法並求解 Rx = Q^T y

  • ‘svd-qr’ - 使用 QR 算法計算 SVD 分解

  • 'svd-jacobi' - 使用 Jacobi 迭代計算 SVD 分解。

在這些算法中,隻有‘svd-jacobi’支持特征個數大於樣本量的情況;在這種情況下,該算法自動為force-selected。

對於廣泛的輸入範圍,‘eig’ 和 qr 通常是最快的,其次是“svd-jacobi”,然後是“svd-qr”。理論上,基於 SVD 的算法更穩定。

fit_intercept布爾值(默認 = True)

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

normalize布爾值(默認 = False)

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

handlecuml.Handle

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

verboseint 或布爾值,默認=False

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

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

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

注意

LinearRegression 遭受多重共線性(當列相互關聯時)和異常值的方差爆炸。考慮使用嶺回歸來解決多重共線性問題,並考慮可能首先使用 DBSCAN 去除異常值,或者使用統計分析過濾可能的異常值。

LinearRegression的應用

LinearRegression 用於想要預測銷售或房價的回歸任務。它還用於外推或時間序列任務、動態係統建模和許多其他機器學習任務。如果機器學習問題是回歸任務(預測連續變量),則應首先嘗試此模型。

有關其他信息,請參閱scikitlearn’s OLS documentation

有關其他示例,請參見 the OLS notebook

例子

import numpy as np
import cudf

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

lr = LinearRegression(fit_intercept = True, normalize = False,
                      algorithm = "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) )

reg = lr.fit(X,y)
print("Coefficients:")
print(reg.coef_)
print("Intercept:")
print(reg.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 = lr.predict(X_new)

print("Predictions:")
print(preds)

輸出:

Coefficients:

            0 1.0000001
            1 1.9999998

Intercept:
            3.0

Predictions:

            0 15.999999
            1 14.999999

屬性

coef_數組,形狀(n_features)

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

intercept_數組

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

相關用法


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