python/numpy隨機選取訓練集/測試集索引


在訓練模型中, 往往需要對數據集進行處理,從數據集中隨機選取部分數據作為訓練集,而另一部分數據作為測試集,一個常用的方法是隨機選取索引,下面介紹兩種從0~n中隨機選取x個不重復索引的方法。
注意下述兩種方法選出來的都是整數。

方法一、用python的random

import random
def getRandomIndex(n, x):
	# 索引范圍為[0, n), 隨機選x個不重復
    index = random.sample(range(n), x)
    return index

方法二、用numpy.random.choice

import numpy as np
def getRandomIndex(n, x):
	# 索引范圍為[0, n),隨機選x個不重復,注意replace=False才是不重復,replace=True則有可能重復
    index = np.random.choice(np.arange(n), size=x, replace=False)
    return index

那么到這兒已經獲取到測試集的索引了,那么得將其余的索引單獨做一個數組作為訓練集的索引,做法如下

import numpy as np
# 先根據上面的函數獲取test_index
test_index = np.array(getRandomIndex(n, x))
# 再講test_index從總的index中減去就得到了train_index
train_index = np.delete(np.arange(n), test_index)


免責聲明!

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



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