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


Python cuml.ElasticNet用法及代码示例


用法:

class cuml.ElasticNet(*, alpha=1.0, l1_ratio=0.5, fit_intercept=True, normalize=False, max_iter=1000, tol=0.001, selection='cyclic', handle=None, output_type=None, verbose=False)

ElasticNet 使用 X 中预测变量的线性组合预测响应 y 时对系数进行 L1 和 L2 正则化组合扩展 LinearRegression。它可以减少预测变量的方差,强制一些系数变小,并改善条件的问题。

cuML 的 ElasticNet 和 array-like 对象或 cuDF DataFrame 使用坐标下降来拟合线性模型。

参数

alpha浮点数(默认 = 1.0)

乘以 L1 项的常数。 alpha = 0 相当于普通的最小二乘,由LinearRegression 对象解决。出于数字原因,不建议对 Lasso 对象使用 alpha = 0。鉴于此,您应该使用LinearRegression 对象。

l1_ratio: float (default = 0.5)

ElasticNet 混合参数,0 <= l1_ratio <= 1。对于 l1_ratio = 0,惩罚是 L2 惩罚。对于 l1_ratio = 1,这是 L1 惩罚。对于 0 < l1_ratio < 1,惩罚是 L1 和 L2 的组合。

fit_intercept布尔值(默认 = True)

如果为 True,Lasso 会尝试校正 y 的全局平均值。如果为 False,则模型预计您已将数据居中。

normalize布尔值(默认 = False)

如果为 True,X 中的预测变量将通过除以它的 L2 范数来归一化。如果为 False,则不会进行缩放。

max_iterint(默认值 = 1000)

最大迭代次数

tol浮点数(默认 = 1e-3)

优化的容差:如果更新小于 tol,则优化代码检查对偶间隙的最优性并继续直到它小于 tol。

selection{‘cyclic’, ‘random’}(默认='循环')

如果设置为‘random’,则每次迭代都会更新随机系数,而不是默认情况下按顺序循环特征。这(设置为‘random’)通常会导致收敛速度显著加快,尤其是当 tol 高于 1e-4 时。

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_* 之一。有关详细信息,请参阅详细级别。

注意

有关其他文档,请参阅 scikitlearn’s ElasticNet

例子

import numpy as np
import cudf
from cuml.linear_model import ElasticNet

enet = ElasticNet(alpha = 0.1, l1_ratio=0.5)

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

y = cudf.Series( np.array([0.0, 1.0, 2.0], dtype = np.float32) )

result_enet = enet.fit(X, y)
print("Coefficients:")
print(result_enet.coef_)
print("intercept:")
print(result_enet.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_enet.predict(X_new)

print(preds)

输出:

Coefficients:

            0 0.448408
            1 0.443341

Intercept:
            0.1082506

Preds:

            0 3.67018
            1 3.22177

属性

coef_数组,形状(n_features)

线性回归模型的估计系数。

intercept_数组

独立术语。如果 fit_intercept 为 False,则为 0。

相关用法


注:本文由纯净天空筛选整理自rapids.ai大神的英文原创作品 cuml.ElasticNet。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。