通常做机器学习问题时,需要准备训练数据,通常会把样本数据和标签存放于2个list中,比如train_x = [x1,x2,…,xN][x1,x2,…,xN],train_y = [y1,y2,…,yN][y1,y2,…,yN]. 有时候是需要将数据shuffle后再做处理的(比如,批量梯度下降算法,需要数据是打乱的)。这时就需要以相同的顺序打乱两个list,那么在python中如何实现呢?可以通过设置相同的随机种子,再shuffle的方式来实现。代码如下:
import random
randnum = random.randint(0,100)
random.seed(randnum)
random.shuffle(train_x)
random.seed(randnum)
random.shuffle(train_y)
查找列表中某元素全部坐标:
Num_locastion = [i for i,x in enumerate(Y) if x == num]
通过映射有比例的减少数据集:
def Test(num):
sample = np.random.choice(range(70000),int(70000*num),replace=False)
for z in range(len(sample)):
X_data.append(X[sample[z]])
Y_data.append(Y[sample[z]])
X_train, X_test, y_train, y_test = train_test_split(X_data, Y_data, test_size=0.30)
score1,score2 = SVC_Kernel(X_train, X_test, y_