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 的分块数据结构非常契合。注意
此元估计器不适用于在超出内存的数据集上进行超参数优化。对于这种情况,请参见
IncrementalSearchCV
或HyperbandSearchCV
。有关实现
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.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
一起工作是必需的。
- 属性
- 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)¶