用法:
class dask_ml.model_selection.IncrementalSearchCV(estimator, parameters, n_initial_parameters=10, decay_rate=<object object>, test_size=None, patience=False, tol=0.001, fits_per_score=1, max_iter=100, random_state=None, scoring=None, verbose=False, prefix='', scores_per_fit=None, predict_meta=None, predict_proba_meta=None, transform_meta=None)在支持partial_fit的模型上逐步搜索hyper-parameters
這個增量hyper-parameter 優化類開始在少量數據上對許多hyper-parameters 模型進行訓練,然後隻繼續訓練那些似乎表現良好的模型。
有關更多信息,請參閱用戶指南。
- estimator:估計器對象。
為每個初始超參數組合實例化該類型的對象。假設這實現了scikit-learn 估計器接口。估計器需要提供
score`函數,或者必須傳遞scoring。估計器必須實現partial_fit,set_params,並與clone一起工作。- parameters:dict
以參數名稱(字符串)作為鍵和分布或要嘗試的參數列表的字典。發行版必須提供
rvs抽樣方法(例如來自 scipy.stats.distributions 的抽樣方法)。如果給出一個列表,則對其進行均勻采樣。- n_initial_parameters:整數,默認=10
采樣的參數設置數。這權衡了運行時間與解決方案的質量。
或者,您可以將其設置為
"grid"以進行完整的網格搜索。- decay_rate:浮點數,默認 1.0
減少部分未來適合調用的數量的速度。
- patience:整數,默認為假
如果指定,則在
patience調用partial_fit後分數沒有增加tol時訓練停止。默認關閉。- fits_per_score:整數,可選,默認=1
如果使用
patience,則score調用之間的最大partial_fit調用數。- scores_per_fit:整數,默認 1
如果使用
patience,則score調用之間的最大partial_fit調用數。- tol:浮點數,默認 0.001
考慮停止對該模型的訓練所需的改進水平。最近的分數最多隻能比該模型之前的所有
patience分數高tol。增加tol將傾向於減少訓練時間,但代價是模型更差。- max_iter:整數,默認 100
每個模型的最大部分擬合調用數。
- test_size:浮點數
用於計算測試分數的數據集的一部分。默認為輸入訓練集的單個分區的大小
注意
訓練數據集應該適合單台機器的內存。根據需要調整
test_size參數以實現此目的。- random_state:int,RandomState 實例或無,可選,默認值:無
如果是int,random_state是隨機數生成器使用的種子;如果是RandomState實例,random_state是隨機數生成器;如果沒有,隨機數生成器是
np.random使用的 RandomState 實例。- scoring:字符串,可調用,列表/元組,字典或無,默認值:無
單個字符串(參見評分參數:定義模型評估規則)或可調用的(見從度量函數定義你的評分策略) 來評估對測試集的預測。
為了評估多個指標,或者給出一個(唯一的)字符串列表,或者給出一個名稱作為鍵、可調用對象作為值的字典。
請注意,使用自定義記分器時,每個記分器應返回一個值。返回值列表/數組的度量函數可以包裝到多個記分器中,每個記分器返回一個值。
有關示例,請參閱指定多個指標進行評估。
如果沒有,則使用估計器的默認記分器(如果可用)。
- verbose:bool,float,int,可選,默認值:False
如果為 False(默認),則不打印日誌(或將它們通過管道傳輸到標準輸出)。但是,仍將使用標準日誌記錄。
如果為 True,則打印日誌並使用標準日誌記錄。
如果浮點數,打印/記錄大約
verbose部分時間。- prefix:str,可選,默認=””
記錄時,將
prefix添加到每條消息。- predict_meta: pd.Series, pd.DataFrame, np.array deafult: None(infer):
與估計器
predict調用的輸出類型匹配的空pd.Series,pd.DataFrame,np.array。對於某些估算器使用dask.dataframe和dask.array而言,此元是必需的- predict_proba_meta: pd.Series, pd.DataFrame, np.array deafult: None(infer):
與估計器
predict_proba調用的輸出類型匹配的空pd.Series,pd.DataFrame,np.array。對於某些估算器使用dask.dataframe和dask.array而言,此元是必需的- transform_meta: pd.Series, pd.DataFrame, np.array deafult: None(infer):
與估計器
transform調用的輸出類型匹配的空pd.Series,pd.DataFrame,np.array。對於某些估算器使用dask.dataframe和dask.array而言,此元是必需的
- cv_results_:np.ndarrays 的字典
這本字典有鍵
mean_partial_fit_timemean_score_timestd_partial_fit_timestd_score_timetest_scorerank_test_scoremodel_idpartial_fit_callsparamsparam_{key},其中key是params中的每個鍵。
test_score鍵中的值對應於模型在保留數據集上收到的最後一個分數。鍵model_id對應於history_。這個字典可以導入到 Pandas 中。- model_history_:字典列表的字典
每個模型曆史的字典。這是
history_的重組:存在相同的信息,但按模型組織。該數據具有
{model_id: hist}結構,其中hist是history_的子集,model_id是模型標識符。- history_:字典列表
每次
partial_fit調用後有關每個模型的信息。每個 dict 鍵partial_fit_timescore_timescoremodel_idparamspartial_fit_callselapsed_wall_time
鍵
model_id對應於cv_results_中的model_id。這個字典列表可以導入到 Pandas 中。- best_estimator_:基估計器
“inverse decay”算法保留的所有模型中驗證分數最高的模型。
- best_score_:浮點數
最終調用
partial_fit後,best_estimator_在驗證集上獲得的分數。- best_index_:int
指示
cv_results_中哪個估計器對應於最高分數的索引。- best_params_:dict
hold-out 數據中找到的最佳參數字典。
- scorer_ :
用於對模型進行評分的函數,其調用簽名為
scorer_(estimator, X, y)。- n_splits_:int
交叉驗證拆分的數量。
- multimetric_:bool
此交叉驗證搜索是否使用多個指標。
參數:
屬性:
例子:
連接到客戶端並創建數據
>>> from dask.distributed import Client >>> client = Client() >>> import numpy as np >>> from dask_ml.datasets import make_classification >>> X, y = make_classification(n_samples=5000000, n_features=20, ... chunks=100000, random_state=0)我們的基礎估計器是一個 SGDClassifier。我們為估計器的每個克隆指定了一些共同的參數。
>>> from sklearn.linear_model import SGDClassifier >>> model = SGDClassifier(tol=1e-3, penalty='elasticnet', random_state=0)我們將從中采樣的參數分布。
>>> params = {'alpha': np.logspace(-2, 1, num=1000), ... 'l1_ratio': np.linspace(0, 1, num=1000), ... 'average': [True, False]}>>> search = IncrementalSearchCV(model, params, random_state=0) >>> search.fit(X, y, classes=[0, 1]) IncrementalSearchCV(...)或者,您可以提供以更多 hyper-parameters 開頭的關鍵字,但停止使用更多數據似乎沒有改善的關鍵字。
>>> search = IncrementalSearchCV(model, params, random_state=0, ... n_initial_parameters=1000, ... patience=20, max_iter=100)通常,額外的訓練在訓練結束時會導致很少或根本沒有分數增長。在這些情況下,停止訓練是有益的,因為更多的訓練沒有任何好處,並且需要更少的計算。兩個參數控製檢測“增益很小或沒有增益”:
patience和tol。如果在最近對model.partial_fit的patience調用中至少一個分數高於其他分數tol,則訓練繼續。例如,設置
tol=0和patience=2意味著訓練將在連續兩次調用model.partial_fit後停止,或者在達到max_iter總調用model.partial_fit時停止。
相關用法
- Python dask_ml.model_selection.GridSearchCV用法及代碼示例
- Python dask_ml.model_selection.train_test_split用法及代碼示例
- Python dask_ml.model_selection.HyperbandSearchCV用法及代碼示例
- Python dask_ml.model_selection.RandomizedSearchCV用法及代碼示例
- Python dask_ml.metrics.mean_squared_log_error用法及代碼示例
- Python dask_ml.metrics.r2_score用法及代碼示例
- Python dask_ml.metrics.mean_squared_error用法及代碼示例
- Python dask_ml.metrics.accuracy_score用法及代碼示例
- Python dask_ml.metrics.mean_absolute_error用法及代碼示例
- Python dask_ml.metrics.log_loss用法及代碼示例
- Python dask_ml.wrappers.ParallelPostFit用法及代碼示例
- Python dask_ml.feature_extraction.text.CountVectorizer用法及代碼示例
- Python dask_ml.preprocessing.MinMaxScaler用法及代碼示例
- Python dask_ml.preprocessing.Categorizer用法及代碼示例
- Python dask_ml.linear_model.LinearRegression用法及代碼示例
- Python dask_ml.wrappers.Incremental用法及代碼示例
- Python dask_ml.preprocessing.OrdinalEncoder用法及代碼示例
- Python dask_ml.feature_extraction.text.FeatureHasher用法及代碼示例
- Python dask_ml.preprocessing.LabelEncoder用法及代碼示例
- Python dask_ml.ensemble.BlockwiseVotingClassifier用法及代碼示例
注:本文由純淨天空篩選整理自dask.org大神的英文原創作品 dask_ml.model_selection.IncrementalSearchCV。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
