当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。