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 的块状数据结构非常契合。备注
这个元估计器不适用于内存大于数据集的超参数优化。对于这种情况,请参见
IncrementalSearchCV
或HyperbandSearchCV
。请参阅 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.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输入进行块转换或分区转换。