Dask-ML
目录
Dask-ML¶
Dask-ML 使用 Dask 以及 Scikit-Learn、XGBoost 等流行机器学习库,在 Python 中提供可扩展的机器学习能力。
您可以通过点击以下按钮在小型云实例上试用 Dask-ML
扩展维度¶
人们可能会在几个维度上遇到扩展挑战,Dask-ML 提供了解决这些挑战的工具。
挑战 1:模型大小扩展¶
第一种扩展挑战来自模型变得非常大或复杂,影响了您的工作流程(如上图所示的垂直轴所示)。在这种扩展挑战下,模型训练、预测或评估等任务(最终)会完成,但只是花费太长时间。您的计算能力已成为瓶颈。
为了解决这些挑战,您可以继续使用您熟悉和喜爱的集合(例如 NumPy ndarray
、pandas DataFrame
或 XGBoost DMatrix
),并使用 Dask 集群在多台机器上并行化工作负载。并行化可以通过我们的集成之一实现(例如 Dask 的 joblib 后端 直接并行化 Scikit-Learn),或者通过 Dask-ML 的估计器之一实现(例如我们的超参数优化器)。
挑战 2:数据大小扩展¶
人们面临的第二种扩展挑战是数据集变得大于内存(如上图所示的水平轴所示)。在这种扩展挑战下,即使将数据加载到 NumPy 或 pandas 中也变得不可能。
为了解决这些挑战,您可以使用 Dask 的 高级集合 之一(例如 Dask Array、Dask DataFrame 或 Dask Bag),并结合 Dask-ML 中设计用于处理 Dask 集合的估计器之一。例如,您可以使用 Dask Array 和 dask_ml.preprocessing
中的预处理估计器之一,或者 dask_ml.ensemble
中的集成方法之一。
Scikit-Learn API¶
在所有情况下,Dask-ML 都致力于围绕熟悉的 NumPy、Pandas 和 Scikit-Learn API 提供统一的接口。熟悉 Scikit-Learn 的用户应该会发现 Dask-ML 用起来很顺手。
与其他分布式库合作¶
像 XGBoost 这样的其他机器学习库已经有了运行良好的分布式解决方案。Dask-ML 并未尝试重新实现这些系统。相反,Dask-ML 使使用常规 Dask 工作流程准备和设置数据变得容易,然后它在 Dask 旁边部署 XGBoost,并将数据移交过去。
from dask_ml.xgboost import XGBRegressor
est = XGBRegressor(...)
est.fit(train, train_labels)
有关更多信息,请参阅Dask-ML + XGBoost。