sklearn之數據划分


 

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 。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM