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.Series
、pd.DataFrame
、np.array
,与估计器的predict
调用的输出类型匹配。这对于某些估计器与dask.dataframe
和dask.array
一起工作是必要的。- predict_proba_meta: pd.Series, pd.DataFrame, np.array 默认: None(推断)
一个空的
pd.Series
、pd.DataFrame
、np.array
,与估计器的predict_proba
调用的输出类型匹配。对于某些估计器与dask.dataframe
和dask.array
一起工作,此元数据是必要的。- transform_meta: pd.Series, pd.DataFrame, np.array 默认: None(推断)
一个空的
pd.Series
、pd.DataFrame
、np.array
,与估计器的transform
调用的输出类型匹配。这对于某些估计器与dask.dataframe
和dask.array
一起工作是必要的。
参见
Incremental
dask_ml.model_selection.IncrementalSearch
注释
警告
此类不适合在大数据集上进行并行或分布式 训练 。为此,请参阅
Incremental
,它提供了分布式(但顺序)训练。如果您正在进行分布式超参数优化处理内存无法容纳的数据集,请参阅dask_ml.model_selection.IncrementalSearch
。这个估计器不并行化训练步骤。它只是调用底层估计器的
fit
方法,并在之后将学习到的属性复制到self
。在训练数据集相对较小(适合单机)但需要预测或转换更大数据集的情况下,这非常有用。
predict
、predict_proba
和transform
将以并行方式进行(如果已连接到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