在大数据集上训练模型
实时笔记本
您可以在 live session 中运行此笔记本,或查看 Github 上的内容。
在大数据集上训练模型¶
scikit-learn 中的大多数估计器都是设计用于处理 NumPy 数组或 scipy 稀疏矩阵的。这些数据结构必须适合单台机器的 RAM。
Dask-ML 中实现的估计器与 Dask 数组和数据帧配合良好。这可以比单台机器的 RAM 大得多。它们可以在集群的机器内存中分布。
[ ]:
%matplotlib inline
[ ]:
from dask.distributed import Client
# Scale up: connect to your own cluster with more resources
# see http://dask.pydata.org/en/latest/setup.html
client = Client(processes=False, threads_per_worker=4,
n_workers=1, memory_limit='2GB')
client
[ ]:
import dask_ml.datasets
import dask_ml.cluster
import matplotlib.pyplot as plt
在这个例子中,我们将使用 dask_ml.datasets.make_blobs
来生成一些随机的 dask 数组。
[ ]:
# Scale up: increase n_samples or n_features
X, y = dask_ml.datasets.make_blobs(n_samples=1000000,
chunks=100000,
random_state=0,
centers=3)
X = X.persist()
X
我们将使用 Dask-ML 中实现的 k-means 来对点进行聚类。它使用 k-means||``(读作:“k-means 并行”)初始化算法,该算法比 ``k-means++
具有更好的扩展性。所有的计算,无论是在初始化期间还是之后,都可以并行进行。
[ ]:
km = dask_ml.cluster.KMeans(n_clusters=3, init_max_iter=2, oversampling_factor=10)
km.fit(X)
我们将绘制一组点,这些点根据其所属的簇进行着色。
[ ]:
fig, ax = plt.subplots()
ax.scatter(X[::1000, 0], X[::1000, 1], marker='.', c=km.labels_[::1000],
cmap='viridis', alpha=0.25);
有关 Dask-ML 中实现的所有估计器,请参阅 API 文档。