dask_ml.wrappers.增量

dask_ml.wrappers.增量

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

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

调用 Incremental.fit() 时使用 Dask 数组,将会将 Dask 数组或数组的每个块 依次 传递给 estimator.partial_fit

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

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

参数
估计器估计器

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

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

一个单一的字符串(参见 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

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)[源代码]