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)

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

参数
estimatorEstimator

用于训练的底层估计器。

scoring字符串或可调用对象,可选

单个字符串(参见 评分参数:定义模型评估规则)或可调用对象(参见 scoring),用于评估测试集上的预测结果。

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

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

有关示例,请参阅 指定多个评估指标

警告

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

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

一个空的 pd.Series, pd.DataFrame, np.array,其类型与估计器的 predict 调用输出类型匹配。此元信息对于某些估计器与 dask.dataframedask.array 协同工作是必需的。

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

一个空的 pd.Series, pd.DataFrame, np.array,其类型与估计器的 predict_proba 调用输出类型匹配。此元信息对于某些估计器与 dask.dataframedask.array 协同工作是必需的。

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

一个空的 pd.Series, pd.DataFrame, np.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)