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.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
- __init__(estimator=None, scoring=None, predict_meta=None, predict_proba_meta=None, transform_meta=None)¶