當前位置:
首頁 > 知識 > 數據集如何確保開發集和測試集的數據分布一致?

數據集如何確保開發集和測試集的數據分布一致?

這裡是 AI 研習社,我們的問答版塊已經正式推出了!歡迎大家來多多交流~

https://club.leiphone.com/page/question


社長為你推薦來自 AI 研習社問答社區的精華問答。如有你也有問題,歡迎進社區提問。

話不多說,直接上題

問:數據集如何確保開發集和測試集的數據分布一致?

數據集如何確保開發集和測試集的數據分布一致。比如:某個數據集有A、B、C......F6個特徵。要確保數據分布一致,怎麼做?

來自社友的回答

@duxiaoyang

數據量足夠大,交叉驗證?

@吳正一BISTU

像圖像數據,我們採用的是統計每個類別的數據量,然後從各個類里按比例選取部分圖像作為測試集。

如果是有明確特徵列表的數據,我覺得可以先對特徵做個統計,手工結合代碼,對數據分布進行調整。

@沐沐mumu

從語音方面來說:

一般沒有專門去抽取,如果最嚴謹的方法是背景一致,內容一致區分;但是實際操作都是按照大類來進行,從聲學和語言上考慮是搭配的。

像是錄製的數據就好搞,但是線上的數據不太好搞成這樣。

比如錄製了一批數據,會記錄每批數據的屬性,比如性別,年齡,地區等,開發集和測試集按照比例分出來。

比如按照地域開發集是南北方各佔50%,測試集也搞成南北方各佔50%

(本答案來自好基友芳菲妹子解答~~~~么么噠~)

@MicoonZhang

不好意思,回答晚了。

相信很多人都會有這種疑惑,我們用標準數據來訓練,但是在真是的測試過程中,輸入數據的並不會是標準數據,導致了訓練與測試的兩個過程中數據分布的不一致。

首先要說,訓練集合與測試集合的分布完全一樣,這個不太現實,因為相對於有限的訓練集,測試集合理論上趨於無限大,所以無法窮盡。然而我們也不能為了單單去擬合我們手裡的測試集而調整模型。

那麼要了解業務場景,要知道你的產品需要到哪些場景中,人為的分析數據源,這樣收集到的數據可能會更好。

這裡假定你有個識別人臉的應用,你的數據集是來自某知名人臉資料庫(簡稱原資料庫),10w張左右,圖片清晰標註明確。而你的用戶是手機上傳圖像,圖像模糊且場景較複雜,1w張左右。那麼現在其實你應該關心的是1w張用戶數據,但是1w張樣本太少了(假設),那麼此時可以隨機劃分出一部分用戶圖像與原資料庫混合訓練,但是測試集合一定是用戶圖像而非你的原資料庫。那麼這樣的模型可能就會表現的更好一些(相對)。

還有就是做k折交叉驗證:

轉自:搜狐-機器學習研究會

首先可以將訓練數據分為10份,將其中的9份作為訓練集(如下藍色部分),其中的一份作為測試集(如下黃色部分)

通過這個訓練數據,訓練一個分詞和詞性標註器,然後對測試數據進行分詞和詞性標註。這個結果對黃色部分數據來說,就會與測試數據的分布接近,已經不是標準數據了。

然後還有其他9份數據,這個時候類似於K折交叉驗證的思想。我們再將其餘的9份數據依次作為測試數據。

比如下圖類似:

圖來自:K折交叉驗證 :

GitBookhttps://www.gitbook.com/book/suetming/k-fold-cross-validation/details

If you know the distribution of the verification collection, do you still need to plan your training set?

@唐娜·亞伯拉

一般評分卡的,基本是看PSI


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI研習社 的精彩文章:

SMP2018資料大禮包,一鍵下載
用 LDA和LSA 兩種方法來降維和做 Topic 建模

TAG:AI研習社 |