实时笔记本

您可以在 live session Binder 中运行此笔记本,或查看 Github 上的内容。

广义线性模型

本笔记本介绍了 Dask-GLM 中用于 广义线性模型 的算法。

启动 Dask 客户端以使用仪表板

启动 Dask 客户端是可选的。它将提供一个仪表板,这对于深入了解计算非常有用。

当你在下方创建客户端后,仪表板的链接将会变得可见。我们建议在使用笔记本的另一侧屏幕上打开它。虽然安排窗口可能需要一些努力,但在学习时同时看到两者非常有用。

[ ]:
from dask.distributed import Client, progress
client = Client(processes=False, threads_per_worker=4,
                n_workers=1, memory_limit='2GB')
client

生成一个随机数据集

[ ]:
from dask_glm.datasets import make_regression
X, y = make_regression(n_samples=200000, n_features=100, n_informative=5, chunksize=10000)
X
[ ]:
import dask
X, y = dask.persist(X, y)

使用GLM算法求解

如果在执行过程中可用,我们还建议查看“图形”仪表板

[ ]:
import dask_glm.algorithms

b = dask_glm.algorithms.admm(X, y, max_iter=5)

使用差异 GLM 算法求解

[ ]:
b = dask_glm.algorithms.proximal_grad(X, y, max_iter=5)

可使用不同的族和正则化器进行定制

Dask-GLM 项目模块化良好,允许使用不同的 GLM 族和正则化器,包括实现自定义正则化器的相对直接的接口。

[ ]:
import dask_glm.families
import dask_glm.regularizers

family = dask_glm.families.Poisson()
regularizer = dask_glm.regularizers.ElasticNet()

b = dask_glm.algorithms.proximal_grad(
    X, y,
    max_iter=5,
    family=family,
    regularizer=regularizer,
)
[ ]:
dask_glm.families.Poisson??
[ ]:
dask_glm.regularizers.ElasticNet??