-
當前位置:首頁 > 創(chuàng)意學院 > 技術 > 專題列表 > 正文
數(shù)據(jù)集劃分比例(數(shù)據(jù)集劃分比例對實驗結果的影響)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關于數(shù)據(jù)集劃分比例的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關鍵詞,就能返回你想要的內容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com。
創(chuàng)意嶺作為行業(yè)內優(yōu)秀的企業(yè),服務客戶遍布全球各地,如需了解SEO相關業(yè)務請撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、第二章 模型評估與選擇
上一章,簡略地介紹了機器學習,以及 數(shù)據(jù)集、數(shù)據(jù)集、測試集、假設空間、版本空間等等的相關概念 。這一章就開始講模型評估與選擇了,因為書上是以“學習器”來稱呼模型的,所以下面我也用學習器來進行說明總結。
什么是經(jīng)驗誤差?
在分類樣本時會出現(xiàn)分類錯誤,我們把分類錯誤的樣本數(shù)占樣本總數(shù)的比例稱為 “錯誤率” , 精度 即正確率,自然是1-錯誤率了。學習器的 實際預測輸出 與樣本 實際輸出 之間的 差異 就稱為 “誤差” ,于 訓練集 就是 “經(jīng)驗誤差” ,于 新樣本 就是 “泛化誤差” 。
什么是過擬合?
我們希望學習器能在新樣本的預測中有更好的效果,即泛化性能最大化。但 在學習過程中 ,往往會把訓練集中的樣本學得過多,使得泛化降低,就是說 學到了 訓練樣本個體的特點而不是總體樣本的特點,或者說學了這個訓練集的特殊點, 相對于所有潛在的樣本來說的特點 。這就是 “過擬合” ,那么與過擬合相對的就是 “欠擬合” ,反而思之,便是學得不到位,樣本的一般性質都掌握不了!
因為過擬合無法避免,所以我們想要去減少它的風險。 其實就是 對模型的泛化誤差進行評估,然后選擇泛化誤差最小那個。
對多種學習算法、參數(shù)配置進行選擇即模型選擇:
一個學習算法→不同參數(shù)配置→不同模型
在實驗測試中,只有數(shù)據(jù)集可用,為了對學習器的泛化誤差進行評估,只能 從數(shù)據(jù)集(驗證集)中分離出訓練集與測試集 ,測試集用于測試學習器對新樣本的判別能力, 將測試集上的“測試誤差”作為泛化誤差的近似 。故 測試集要盡可能與訓練集互斥 。
直接將數(shù)據(jù)集劃分兩個互斥的集合,一個作訓練集,一個作測試集。訓練集、測試集的劃分要盡可能保持數(shù)據(jù)分布一致性。即 保持訓練集和測試集中樣本類別比例相差不大,否則會產(chǎn)生偏差 。一般確定訓練集與測試集的樣本比例之后,對于數(shù)據(jù)集的樣本劃分的方法也有很多, 不同劃分方法造成模型評估結果也不同,所以就要進行多次留出法,隨機劃分重復評估再取平均值作為評估結果 。對于留出法,其劃分樣本于訓練集與測試集的比例要適當,若是訓練集含有大多數(shù)樣本,那么其模型結果便與數(shù)據(jù)集訓練出來的模型接近,但是由于測試集樣本過少,其評估結果就不那么準確,反之也是一樣的道理。 故常常采取2/3~4/5的樣本作為訓練集,其余作為測試集。
將數(shù)據(jù)集劃分為k個大小相似的互斥子集,即互不包含。 每個子集盡可能保持數(shù)據(jù)分布的一致性,即通過 分層采樣 得到。 這k個子集又分出k-1個作為訓練集,剩下一個作為測試集,可以分k次,進行k次訓練和測試 ,最終也是求其 結果的均值 。同留出法, 交叉驗證法要隨機使用不同的劃分重復多次 ,最終結果是多次k折交叉驗證結果的均值。比如“10次10折交叉驗證”就會有100次訓練,有100個訓練結果(模型)。
交叉驗證法有一個特例,其名為 留一法 ,就是數(shù)據(jù)集 有多少個樣本,就劃分成多少個子集 ,即每個子集一個樣本,于是隨機劃分只會產(chǎn)生一種結果, 所以這種方法被實際評估的模型與期望評估的用數(shù)據(jù)集訓練出來的模型很相似。 其缺點是當數(shù)據(jù)集很大的時候,用它就需要龐大的計算量(還未考慮調參)。
上面兩種方法是需要將數(shù)據(jù)集劃分的,這樣自然會讓 用訓練集訓練出的模型 與 用數(shù)據(jù)集訓練出來的模型 有一定的 估計偏差 。如此,自助法以自助采樣法為基礎,簡單地講就是重復隨機抽樣, 從數(shù)據(jù)集D中進行重復隨機抽樣m次,便會得到一個含有m個樣本的數(shù)據(jù)集D 1 ,這就是自助采樣的結果。
對于 樣本在m次不被采集到 的概率:
這說明了,D中大概有36.8%的樣本沒有出現(xiàn)在D 1 中。于是我們可以 把D 1 作為訓練集 ,把那約 36.8%的樣本作為測試集 。其優(yōu)點是對于 數(shù)據(jù)集較小、難以有效劃分訓練 時很有用,其缺點就是改變了初始數(shù)據(jù)集的劃分,這可能會引入估計偏差。
什么是調參?
上面粗略地提到過參數(shù)的調整,我們 在進行模型的評估和選擇時,不僅要對學習算法進行選擇,還要對算法參數(shù)進行設定 ,這便是調參。
梳理一下:
參閱自: 機器學習為什么需要訓練,訓練出來的模型具體又是什么?
回到調參,對于每種參數(shù)都訓練出模型是不現(xiàn)實的,我們應 對每個參數(shù)選定一個范圍和步長 ,選出的參數(shù)即為 候選參數(shù)值(一般10個以內) ,最終從這些候選參數(shù)值中產(chǎn)生 選定值 。這是一種折中的結果,是為了使學習過程成為可能。
然鵝,盡管我們得到了這個模型,但這不是最終提交給用戶的模型,我們 需要對數(shù)據(jù)集重新訓練 ,使用全部樣本以訓練出的模型,才是最終模型。
習得模型在實際遇到的數(shù)據(jù)稱為測試數(shù)據(jù);模型評估與選擇中用于評估測試的數(shù)據(jù)稱為"驗證集"。 例如:在研究對比不同算法的泛化性能時,用測試集上的判別效果來評估模型在實際使用中的泛化性能,而把訓練數(shù)據(jù)分為訓練集和驗證集,基于驗證集上的性能來進行模型選擇和調參。
是衡量模型泛化能力的評價標準。 其反映了 任務需求 。對于給定的樣例集D={(x 1 ,y 1 ),(x 2 ,y 2 ),...,(x m ,y m )},其中的y是x的真實標記,現(xiàn)在要評估學習器f的性能,于是把f的結果與y進行比較。
回歸任務——性能度量——“均方誤差” :
一般的,對于數(shù)據(jù)分布 和概率密度函數(shù)p(·),均方誤差可以表示為:
下面主要介紹 分類任務中常用的性能度量 。
上面這兩種就是分類任務中常用的性能度量啦!對于樣例集D,分類錯誤率定義如下:
【注:Ⅱ(·)是指示函數(shù)。若·( 即對括號內進行邏輯判斷 )為 真 則取值為 1 , 假 則取 0 】
精度定義:
一般的:
對于真實類別與學習器預測類別的異同,我們可以分為真正例、假反例、假正例、真反例,分別稱為TP、FN、FP、TN(T=True,F(xiàn)=False,P=Positive,N=Negative)。這里的 真假是針對學習器預測結果 來說的。
于是查準率P與查全率R定義如下:
這 兩個性能度量是矛盾的,呈負相關 。
我們常常根據(jù)學習器的預測結果對樣例進行排序, 把“最可能”是正例的放在前面 。按這個順序,逐個把樣本作為正例進行預測,每次都可以計算出當前的查準率與查全率,然后以查準率為縱軸,查全率為橫軸,作P-R圖如西瓜書p 31 。
若一個學習器的P-R圖完全包含了另一個,則說明前者性能更優(yōu)于后者。
但往往會出現(xiàn)不完全包含, 出現(xiàn)交叉的情況 ,那么我們 一般用F1 來對比衡量。
在說F1度量之前,先說一下平衡點。
平衡點(BEF) 是綜合考慮查準率與查全率的性能度量。是 “查準率 = 查全率” 時的取值。是一種簡單的度量。
F1度量:
一般形式:
其中 >0 度量了查全率對查準率的 相對重要性 。 >1時,查全率有更大的影響, <1時,查準率有更大的影響。
上面提及到的性能度量的 平均值 (在各 混淆矩陣 (其實就是上面真假正反例的矩陣)上分別計算出查準率與查全率,再計算平均值)稱為 “宏查準率”(macro—P)、“宏查全率”(macro—R)以及"宏F1"(macro—F1) ,前兩個均值就是算術平均的計算方式,相加除以n,最后一個則是根據(jù)前兩個計算得來,參考上面F1的定義。
上面是一種做法,也可以把混淆矩陣的真假正反例進行平均,則有 、 、 、 ,于是可求出 “微查準率”(micro—P)、“微查全率”、“微F1”。 然后你懂的,參考上面寫的相關公式,代入即可。
ROC全稱是“受試者工作特征曲線”,根據(jù)預測結果對樣例進行排序,然后按順序逐個把樣本作為正例進行預測,以每次計算出的“真正例率”(TPR)作為縱軸,“假正例率”(FPR)作為橫軸。兩者定義如下:
ROC曲線下的面積即為AUC ,是用來比較當兩個學習器的ROC曲線相交不完全包含,要進行性能比較時,則使用AUC。 AUC的估算 :
其與排序誤差有緊密聯(lián)系,于是給定 個反例, 個正例,令 和 分別表示反例、正例的集合。則 排序損失 定義為:
對應的是 ROC曲線之上的面積 ,由此有: .
為何引入代價?
因為.......你這樣做是要付出代價的!即為所造成結果的超額處理。引入代價是為了 衡量不同類型錯誤所造成不同的損失 ,可為錯誤賦予 “非均等代價” .
代價矩陣 :
其中 表示將第i類樣本預測為第j類樣本的代價。 例如上矩陣中,損失程度相差越大, 與 值的差別越大,比較一般是以 代價比值 而非絕對值。(即倍數(shù)關系)
從前面提到的性能度量, 均是在假設均等代價前提下 進行計算的,如今引入了非均等代價,便要對其考慮在內。
于是將上面代價矩陣中的第0類作正例,第1類作反例,而 與 分別表示正例子集和反例子集,則以錯誤率為例子,“代價敏感”錯誤率為:
除此之外,若令 中的 不限取0和1,則可定義出多分類任務的代價敏感性能度量。
那么在非均等代價下,ROC曲線無法直接反映學習器的期望總代價,于是我們引入“代價曲線”,其橫軸是取值為[0,1]的正例概率代價:
其中p是樣例為正例的概率,縱軸是取值為[0,1]的 歸一化 代價:
其中FNR=1-TRP。ROC曲線上的每一點對應代價平面上的一條線段,若ROC曲線上一點為(FPR,TPR)則對應一條從(0,F(xiàn)PR)到(1,F(xiàn)NR)的線段,于是 所有線段的下界圍成的面積即為在所有條件下學習器的期望總體代價。
有了實驗評估方法和性能度量之后,便是對學習器的泛化性能進行比較。此時為了對學習器進行適當?shù)谋容^,統(tǒng)計假設檢驗為我們進行學習器性能比較提供了重要依據(jù)。該節(jié)默認以錯誤率為性能度量。
1. 二項檢驗
2. t檢驗
二、機器學習中常用的數(shù)據(jù)集處理方法
機器學習中常用的數(shù)據(jù)集處理方法
1.離散值的處理: 因為離散值的差值是沒有實際意義的。比如如果用0,1,2代表紅黃藍,1-0的差值代表黃-紅,是沒有意義的。因此,我們往往會把擁有d個取值的離散值變?yōu)閐個取值為0,1的離散值或者將
其映射為多維向量。
2.屬性歸一化: 歸一化的目標是把各位屬性的取值范圍放縮到差不多的區(qū)間,例如[-0.5,0.5]。這里我們使用一種很常見的操作方法:減掉均值,然
后除以原取值范圍。 做歸一化至少有以下3個理由: - 過大或過小的數(shù)值范圍會導致計算時的浮點上溢或下溢。 - 不同的數(shù)值范圍會導致不同屬性對模型的重要性不同(至少在訓練的初始階段如此),而這個隱含的假設常常是不合理的。這會對優(yōu)化的過程造成困難,使訓練時間大大的加長。 - 很多的機器學習技巧/模型(例如L1,L2正則項,向量空間模型-Vector Space Model)都基于這樣的假設:所有的屬性取值都差不多是以0為均值
且取值范圍相近的
。 3.分割數(shù)據(jù)集 一般把數(shù)據(jù)集分為兩部分,一部分為訓練集,用于訓練數(shù)據(jù),一部分為測試集,用于測試訓練的數(shù)據(jù),測試集不應過多或過少,數(shù)據(jù)較少時訓練集:測試集可以為8:2,較多時比
例可以達到9:1 。
三、分析數(shù)據(jù)集{20,6,1,9,11,15,26,32},哪些指標可以測度數(shù)據(jù)的集中趨勢。
可以使用下面幾種指標來測度數(shù)據(jù)集的集中趨勢:
均值(mean): 將所有數(shù)據(jù)的總和除以數(shù)據(jù)的個數(shù), 即可得到均值
中位數(shù)(median): 一個數(shù)據(jù)集中的中間值,將數(shù)據(jù)集按照大小排序后的中間值
眾數(shù)(mode): 一個數(shù)據(jù)集中出現(xiàn)次數(shù)最多的數(shù)值
四分位數(shù)(quartile): 將數(shù)據(jù)集劃分為四個部分, 每一部分的最大值或最小值稱為四分位數(shù)
四分位差(Interquartile range):Q3-Q1
標準差(standard deviation): 衡量數(shù)據(jù)集分散程度的一種指標, 越小說明數(shù)據(jù)越集中
變異系數(shù)(coefficient of variation):衡量數(shù)據(jù)集離散程度的指標,值越小說明數(shù)據(jù)越集中。
注意:中位數(shù)和四分位數(shù)對異常值魯棒性較好。
四、10折交叉驗證后取哪個模型
先直接回答:首先要知道在在一個10折交叉驗證中,在一個10折交叉驗證中,所有模型的超參數(shù)(注意這里是超參數(shù))是一致的,但是由于每個模型用到的訓練數(shù)據(jù)有差異,所以每個模型訓練出來的結果是不一樣的,所以是不同的模型(每個模型訓練出來的參數(shù)是不一樣的)。
注意的是,需要區(qū)分清楚超參數(shù)和參數(shù)。上面說的超參數(shù)是指可以是不同的模型算法(例如svm,C5.0),也可以是某個模型算法的不同超參數(shù),例如svm中的懲罰因子)。
回答這個問題后,如果想明確理解交叉驗證,我們可以分為3個維度去闡述這個問題:
(1)訓練集、驗證集以及測試集的區(qū)分
(2)交叉驗證:直接用于模型評估
(3)交叉驗證:用于超參數(shù)選擇
如果關于模型評估,希望有更深入的認識可以看之前的這個文章:
張浩彬:機器學習中模型評估的詳細剖析(擬合問題、交叉驗證,評估指標)
1訓練集、驗證集及測試集
綜合來說,為了能準確評估模型性能,我們可以把整個數(shù)據(jù)集集分成兩個部分,一部分用于訓練模型,得到估計參數(shù)(訓練集);另一部分用于評估模型誤差,得到準確率(測試集)
更進一步,在有些實踐當中,如在分類問題上,我們往往在事先不知道那種算法是最優(yōu)的,并且不同的算法里面也包含大量的需要人為設定的超參數(shù)。在這些情況下,我們往往需要再劃分多一個驗證集,用于選擇具體超參數(shù),因此也可以把數(shù)據(jù)集劃分為訓練集,驗證集以及測試集。
只有訓練集和測試機的情況比較簡單,這里不再累述,我們討論有訓練集、驗證集以及測試機的情況:
步驟:
(1)首先按照一定比例劃分為廣義訓練集A以及測試集T;
(2)由于我們還需要一個驗證集,所以我們再從廣義訓練集A再按比例劃分訓練集S以及驗證集V;
(3)我們在訓練集S上分別采用不同的算法/參數(shù)得出模型,再利用驗證集V評估各個模型的性能。經(jīng)過這一步,我們已經(jīng)得到了最優(yōu)的算法/參數(shù)配置;
(4)根據(jù)得到的最優(yōu)配置,我們在廣義訓練集A上(即S+V)重新構建模型,得到最終模型;
(5)把最終模型用于測試集T檢驗結果,進行評估測試。
綜合來說,為了能準確評估模型性能,我們可以把整個數(shù)據(jù)集集分成兩個部分,一部分用于訓練模型,得到估計參數(shù)(訓練集);另一部分用于評估模型誤差,得到準確率(測試集)
這樣直接劃分訓練集、測試集的方法,我們稱之為留出法。
留出法的意思就是直接將總數(shù)據(jù)D劃分為兩個對立集
以上就是關于數(shù)據(jù)集劃分比例相關問題的回答。希望能幫到你,如有更多相關問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內容。
推薦閱讀:
個人大數(shù)據(jù)官網(wǎng)(個人大數(shù)據(jù)平臺)
抖音如何看數(shù)據(jù)分析(抖音數(shù)據(jù)從哪里看 怎么分析)
登帳號顯示數(shù)據(jù)解析異常什么意思(登帳號顯示數(shù)據(jù)解析異常什么意思呀)