广义线性模型
目录
实时 Notebook
您可以在 实时会话 中运行此 Notebook 或 在 Github 上 查看。
广义线性模型¶
本 Notebook 介绍了 Dask-GLM 中用于广义线性模型的算法。
启动 Dask Client 以获取仪表盘¶
启动 Dask Client 是可选的。它将提供一个仪表盘,有助于深入了解计算过程。
创建 Client 后,仪表盘链接将可见。建议您一边屏幕打开仪表盘,另一边屏幕使用 Notebook。这可能需要一些努力来安排窗口,但在学习时同时查看两者非常有用。
[1]:
from dask.distributed import Client, progress
client = Client(processes=False, threads_per_worker=4,
n_workers=1, memory_limit='2GB')
client
[1]:
Client
Client-5b571f45-0de1-11ed-a361-000d3a8f7959
连接方法: Cluster 对象 | 集群类型: distributed.LocalCluster |
仪表盘: http://10.1.1.64:8787/status |
集群信息
LocalCluster
94f79b63
仪表盘: http://10.1.1.64:8787/status | Worker 1 |
总线程数 4 | 总内存: 1.86 GiB |
状态: 运行中 | 使用进程: False |
调度器信息
调度器
Scheduler-079365e3-ef5b-4539-84b1-973599540812
通信: inproc://10.1.1.64/9057/1 | Worker 1 |
仪表盘: http://10.1.1.64:8787/status | 总线程数 4 |
启动时间: 刚刚 | 总内存: 1.86 GiB |
Worker
Worker: 0
通信: inproc://10.1.1.64/9057/4 | 总线程数 4 |
仪表盘: http://10.1.1.64:39345/status | 内存: 1.86 GiB |
Nanny: None | |
本地目录: /home/runner/work/dask-examples/dask-examples/machine-learning/dask-worker-space/worker-ptl8ho2_ |
创建随机数据集¶
[2]:
from dask_glm.datasets import make_regression
X, y = make_regression(n_samples=200000, n_features=100, n_informative=5, chunksize=10000)
X
[2]:
|
[3]:
import dask
X, y = dask.persist(X, y)
使用 GLM 算法求解¶
如果可用,还建议在执行期间查看“图”仪表盘
[4]:
import dask_glm.algorithms
b = dask_glm.algorithms.admm(X, y, max_iter=5)
使用不同的 GLM 算法求解¶
[5]:
b = dask_glm.algorithms.proximal_grad(X, y, max_iter=5)
/usr/share/miniconda3/envs/dask-examples/lib/python3.9/site-packages/dask/core.py:119: RuntimeWarning: overflow encountered in exp
return func(*(_execute_task(a, cache) for a in args))
可使用不同的族和正则化器进行定制¶
Dask-GLM 项目模块化良好,允许使用不同的 GLM 族和正则化器,包括实现自定义的相对直接的接口。
[6]:
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,
)
/usr/share/miniconda3/envs/dask-examples/lib/python3.9/site-packages/dask/core.py:119: RuntimeWarning: overflow encountered in exp
return func(*(_execute_task(a, cache) for a in args))
/usr/share/miniconda3/envs/dask-examples/lib/python3.9/site-packages/dask/core.py:119: RuntimeWarning: overflow encountered in exp
return func(*(_execute_task(a, cache) for a in args))
[7]:
dask_glm.families.Poisson??
[8]:
dask_glm.regularizers.ElasticNet??