dask_ml.wrappers.Incremental

dask_ml.wrappers.Incremental

class dask_ml.wrappers.Incremental(estimator=None, scoring=None, shuffle_blocks=True, random_state=None, assume_equal_chunks=True, predict_meta=None, predict_proba_meta=None, transform_meta=None)

将 Dask 数组分块馈送给估计器的元估计器。

此包装器在 Dask 对象和实现 partial_fit API 的估计器之间提供了一个桥梁。这些增量学习器可以对批量数据进行训练。这与 Dask 的分块数据结构非常契合。

注意

此元估计器不适用于在超出内存的数据集上进行超参数优化。对于这种情况,请参见 IncrementalSearchCVHyperbandSearchCV

有关实现 partial_fit API 的估计器列表,请参阅 scikit-learn 文档中的 增量学习器列表。请注意,Incremental 不仅限于这些类,它将适用于任何实现 partial_fit 的估计器,包括 scikit-learn 本身之外定义的估计器。

使用 Dask 数组调用 Incremental.fit() 会将 Dask 数组的每个块或多个数组按顺序传递给 estimator.partial_fit

ParallelPostFit 类似,拟合后可用的方法(例如 Incremental.predict() 等)都是并行和延迟执行的。

estimator_ 属性是在调用 fit 期间实际拟合的 estimator 的一个克隆。所有在训练期间学习到的属性都可以直接在 Incremental 上访问。

参数
estimator估计器

任何支持 scikit-learn partial_fit API 的对象。

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

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

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

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

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

警告

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

random_stateint 或 numpy.random.RandomState,可选

决定如何打乱块的随机对象。

shuffle_blocksbool,默认为 True

确定是随机选择 Dask 数组的一个块(默认)调用 partial_fit,还是按顺序进行拟合。这不控制块之间的打乱或每个块内部的打乱。

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 一起工作是必需的。

属性
estimator_估计器

在调用 .fit 期间实际拟合的 estimator 的一个克隆。

示例

>>> from dask_ml.wrappers import Incremental
>>> from dask_ml.datasets import make_classification
>>> import sklearn.linear_model
>>> X, y = make_classification(chunks=25)
>>> est = sklearn.linear_model.SGDClassifier()
>>> clf = Incremental(est, scoring='accuracy')
>>> clf.fit(X, y, classes=[0, 1])

在网格搜索中使用时,在底层估计器的参数名前加上前缀 estimator__

>>> from sklearn.model_selection import GridSearchCV
>>> param_grid = {"estimator__alpha": [0.1, 1.0, 10.0]}
>>> gs = GridSearchCV(clf, param_grid)
>>> gs.fit(X, y, classes=[0, 1])

方法

fit(X[, y])

拟合底层估计器。

get_metadata_routing()

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

get_params([deep])

获取此估计器的参数。

partial_fit(X[, y])

拟合底层估计器。

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 输入进行块或分区转换。

__init__(estimator=None, scoring=None, shuffle_blocks=True, random_state=None, assume_equal_chunks=True, predict_meta=None, predict_proba_meta=None, transform_meta=None)