1、train_test_split
將數組或矩陣拆分為隨機訓練和測試子集
用法:
sklearn.model_selection.train_test_split(*arrays, **options)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)
參數:
* 具有相同長度/形狀的可索引數組的序列[0] 允許的輸入是列表,numpy數組,稀疏矩陣或熊貓數據框。 test_size 浮點數,整數或無,可選(默認值:無) 如果為float,則應在0.0到1.0之間,並且代表要包含在測試拆分中的數據集的比例。如果為int,則表示測試樣本的絕對數量。如果為None,則將值設置為火車尺寸的補碼。如果train_size也是,則將其設置為0.25。 train_size 浮點數,整數或無(默認值:無) 如果為float,則應在0.0到1.0之間,並表示要包含在火車分割中的數據集的比例。如果為int,則表示火車樣本的絕對數量。如果為“無”,則該值將自動設置為測試大小的補碼。 random_state int,RandomState實例或無,可選(默認值:無) 如果為int,則random_state是隨機數生成器使用的種子;否則為false。如果是RandomState實例,則random_state是隨機數生成器;如果為None,則隨機數生成器是所使用的RandomState實例np.random。 shuffle 布爾值,可選(默認= True) 拆分前是否對數據進行混洗。如果shuffle = False,則分層必須為None。 分層狀排列或無(默認=無) 如果不是None,則將數據用作類標簽以分層方式拆分。
2、cross_val_score
通過交叉驗證評估分數
用法:
sklearn.model_selection.cross_val_score(estimator,X,y = None,groups = None,scoring = None,cv = None,n_jobs = None,verbose = 0,fit_params = None,pre_dispatch ='2 * n_jobs',error_score = nan )
cross_val_score(lasso, X, y, cv=3)
交叉驗證的基本思想是:
將數據集進行一系列分割,生成一組不同的訓練測試集,然后分別訓練模型並計算測試准確率,最后對結果進行平均處理。這樣來有效降低測試准確率的差異。
我們在這之前還是需要train_test_split進行數據集划分
參數:
estimator 實現“擬合”的估計器估計器對象 用於擬合數據的對象。 X 要擬合的數據。可以是例如列表或數組。 y 類似於數組,可選,默認值:無 在監督學習的情況下要嘗試預測的目標變量。 groups組陣列狀,具有形狀(N_SAMPLES次,),可選 將數據集拆分為訓練/測試集時使用的樣本的標簽分組。僅與“ Group” cv 實例(例如GroupKFold)結合使用。 scoring 評分字符串,可調用或無,可選,默認:無 字符串(請參閱模型評估文檔)或帶有簽名的計分器可調用對象/函數, 它們應僅返回單個值。scorer(estimator, X, y) 與類似,cross_validate 但只允許使用一個指標。 如果為None,則使用估算器的默認計分器(如果有)。 cv int,交叉驗證生成器或可迭代的,可選的 確定交叉驗證拆分策略。簡歷的可能輸入是: 無,要使用默認的5倍交叉驗證, 整數,用於指定的折疊次數(Stratified)KFold, 簡歷分配器, 可迭代的屈服(訓練,測試)拆分為索引數組。 對於整數/無輸入,如果估計器是分類器,並且y是二進制或多類,StratifiedKFold則使用該估計器。在所有其他情況下,KFold均使用。 有關可以在此處使用的各種交叉驗證策略的信息,請參閱用戶指南。 在版本0.22中更改:cv如果“無”從3倍更改為5倍,則為默認值。 n_jobs int或None(可選)(默認為None) 用於執行計算的CPU數量。 None除非joblib.parallel_backend上下文中,否則表示1 。 -1表示使用所有處理器。有關 更多詳細信息,請參見詞匯表。 verbose詳細整數,可選 詳細程度。 fit_params dict,可選 傳遞給估算器的fit方法的參數。 pre_dispatch int或字符串,可選 控制在並行執行期間調度的作業數。當調度的作業超過CPU的處理能力時,減少此數目可能有助於避免內存消耗激增。該參數可以是: 無,在這種情況下,將立即創建並產生所有作業。使用它進行輕量級和快速運行的作業,以避免因按需生成作業而造成延遲 一個整數,給出所產生的總作業的確切數量 字符串,根據n_jobs給出表達式,如'2 * n_jobs' error_score '提高'或數字 如果估算器擬合出現錯誤,則分配給分數的值。如果設置為“ raise”,則會引發錯誤。如果給出數值,則引發FitFailedWarning。此參數不會影響重新安裝步驟,這將始終引發錯誤。
3、KFold
K折交叉驗證器
提供訓練/測試索引以將數據拆分為訓練/測試集。將數據集拆分為k個連續的折疊(默認情況下不進行混洗)。
然后將每個折疊用作一次驗證,而剩下的k-1個折疊形成訓練集。相當於無放回抽樣。
用法:
sklearn.model_selection.KFold(n_splits = 5,shuffle = False,random_state = None )
KFold(n_splits=2, random_state=None, shuffle=False)
返回交叉驗證器中的拆分迭代次數
get_n_splits(self[, X, y, groups])
參數:
n_splits int,默認= 5 折數。必須至少為2。 shuffle 布爾值,可選 在拆分成批次之前是否對數據進行混洗。 random_state int,RandomState實例或無,可選,默認=無 如果為int,則random_state是隨機數生成器使用的種子;否則為false。如果是RandomState實例,則random_state是隨機數生成器;如果為None,則隨機數生成器是所使用的RandomState實例np.random。僅當shuffle為True 時使用。如果shuffle為False,則應將其保留為None 。