dask_ml.wrappers.ParallelPostFit

dask_ml.wrappers.ParallelPostFit

class dask_ml.wrappers.ParallelPostFit(estimator=None, scoring=None, predict_meta=None, predict_proba_meta=None, transform_meta=None)[源代码]

用于并行预测和转换的元估计器。

参数
估计器估计器

被拟合的基础估计器。

评分字符串或可调用对象,可选

一个单一的字符串(参见 The scoring parameter: defining model evaluation rules)或一个可调用的对象(参见 Defining your scoring strategy from metric functions),用于评估测试集上的预测。

对于评估多个指标,可以提供一个字符串列表(唯一)或一个字典,其中键为名称,值为可调用对象。

注意,当使用自定义评分器时,每个评分器应返回一个单一值。返回值列表/数组的度量函数可以包装成多个评分器,每个评分器返回一个值。

参见 Specifying multiple metrics for evaluation 示例。

警告

如果为 None,则使用估计器的默认评分器(如果可用)。大多数 scikit-learn 估计器会将大型 Dask 数组转换为单个 NumPy 数组,这可能会耗尽工作节点的内存。您可能希望始终指定 scoring

predict_meta: pd.Series, pd.DataFrame, np.array 默认: None(推断)

一个空的 pd.Seriespd.DataFramenp.array,与估计器的 predict 调用的输出类型匹配。这对于某些估计器与 dask.dataframedask.array 一起工作是必要的。

predict_proba_meta: pd.Series, pd.DataFrame, np.array 默认: None(推断)

一个空的 pd.Seriespd.DataFramenp.array,与估计器的 predict_proba 调用的输出类型匹配。对于某些估计器与 dask.dataframedask.array 一起工作,此元数据是必要的。

transform_meta: pd.Series, pd.DataFrame, np.array 默认: None(推断)

一个空的 pd.Seriespd.DataFramenp.array,与估计器的 transform 调用的输出类型匹配。这对于某些估计器与 dask.dataframedask.array 一起工作是必要的。

参见

Incremental
dask_ml.model_selection.IncrementalSearch

注释

警告

此类不适合在大数据集上进行并行或分布式 训练 。为此,请参阅 Incremental ,它提供了分布式(但顺序)训练。如果您正在进行分布式超参数优化处理内存无法容纳的数据集,请参阅 dask_ml.model_selection.IncrementalSearch

这个估计器不并行化训练步骤。它只是调用底层估计器的 fit 方法,并在之后将学习到的属性复制到 self

在训练数据集相对较小(适合单机)但需要预测或转换更大数据集的情况下,这非常有用。predictpredict_probatransform 将以并行方式进行(如果已连接到 dask.distributed.Client,则可能是分布式的)。

请注意,许多 scikit-learn 估计器已经支持并行预测和转换。在数据集大于内存的情况下,这个元估计器仍然可能有用,因为分布式调度器将确保数据不会一次性全部读入内存。

示例

>>> from sklearn.ensemble import GradientBoostingClassifier
>>> import sklearn.datasets
>>> import dask_ml.datasets

制作一个小型的1,000样本2训练数据集,并正常拟合。

>>> X, y = sklearn.datasets.make_classification(n_samples=1000,
...                                             random_state=0)
>>> clf = ParallelPostFit(estimator=GradientBoostingClassifier(),
...                       scoring='accuracy')
>>> clf.fit(X, y)
ParallelPostFit(estimator=GradientBoostingClassifier(...))
>>> clf.classes_
array([0, 1])

转换和预测对于dask输入返回dask输出。

>>> X_big, y_big = dask_ml.datasets.make_classification(n_samples=100000,
                                                        random_state=0)
>>> clf.predict(X)
dask.array<predict, shape=(10000,), dtype=int64, chunksize=(1000,)>

可以并行计算的内容。

>>> clf.predict_proba(X).compute()
array([[0.99141094, 0.00858906],
       [0.93178389, 0.06821611],
       [0.99129105, 0.00870895],
       ...,
       [0.97996652, 0.02003348],
       [0.98087444, 0.01912556],
       [0.99407016, 0.00592984]])

方法

fit(X[, y])

拟合底层估计器。

get_metadata_routing()

获取此对象的元数据路由。

get_params([deep])

获取此估计器的参数。

predict(X)

预测 X。

predict_log_proba(X)

概率估计的日志。

predict_proba(X)

概率估计。

score(X, y[, compute])

返回给定数据的分数。

set_params(**params)

设置此估计器的参数。

set_score_request(*[, compute])

传递给 score 方法的请求元数据。

transform(X)

对dask输入进行块转换或分区转换。

partial_fit

__init__(estimator=None, scoring=None, predict_meta=None, predict_proba_meta=None, transform_meta=None)[源代码]