在機器學習或者深度學習中,我們常常碰到一個問題是數據集的切分。比如在一個比賽中,舉辦方給我們的只是一個帶標注的訓練集和不帶標注的測試集。其中訓練集是用于訓練,而測試集用于已訓練模型上跑出一個結果,然后提交,然后舉辦方驗證結果給出一個分數。但是我們在訓練過程中,可能會出現過擬合等問題,會面臨著算法和模型的選擇,此時,驗證集就顯得很重要。通常,如果數據量充足,我們會從訓練集中劃分出一定比例的數據來作為驗證集。
每次劃分數據集都手動寫一個腳本,重復性太高,因此將此簡單的腳本放到自己的博客。代碼如下:
import random def split(full_list,shuffle=False,ratio=0.2): n_total = len(full_list) offset = int(n_total * ratio) if n_total==0 or offset<1: return [],full_list if shuffle: random.shuffle(full_list) sublist_1 = full_list[:offset] sublist_2 = full_list[offset:] return sublist_1,sublist_2 if __name__ == "__main__": li = range(5) sublist_1,sublist_2 = split(li,shuffle=True,ratio=0.2) print sublist_1,len(sublist_1) print sublist_2,len(sublist_2)
其中,main為測試代碼。假如訓練集給出的是一個文件,我們先將文件讀到列表中,然后再調用split。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
