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


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