Python 代码实现数据随机划分:训练集和测试集分割
这段代码实现了一个将数据随机划分成训练集和测试集的功能。首先,代码将样本数量除以类别数量,得到每个类别应该有的样本数量。然后,代码选择每个类别中70%的样本作为训练集,剩余的30%作为测试集。在选择训练集样本时,代码使用了一个计数器记录已选择的样本索引,并随机生成一个未被选择的索引。最终代码返回矩阵形式的训练集数据、训练集标签、测试集数据和测试集标签。\n\npython\nimport\ math\nimport\ random\nclasses\=\750\nsamples\=\data.shape[0]\nperClass\=\int(samples/classes)\nselected\=\int(perClass*0.7)\n\ntrainData,testData\=\[],[]\ntrainLabel,testLabel\=\[],[]\ncount1\=\[]\nfor\ i\ in\ range(classes):\n\tcount2,k\=\[],math.inf\n\tfor\ j\ in\ range(selected):\n\t count2.append(k)\n\t k\=\random.randint(0,perClass-1)\n\t while\ k\ in\ count2:\n\t k\=\random.randint(0,perClass-1)\n\t trainData.append(np.ravel(data[perClass*i+k]))\n\t trainLabel.append(np.ravel(label[perClass*i+k]))\n\t count1.append(11*i+k)\nfor\ i\ in\ range(samples):\n\tif\ i\ not\ in\ count1:\n\t testData.append(np.ravel(data[i]))\n\t testLabel.append(np.ravel(label[i]))\t\t\t\t#返回训练集、训练集标签、测试集、测试集标签\ntrainData\=\np.matrix(trainData)\ntrainLabel\=\np.matrix(trainLabel)\ntestData\=\np.matrix(testData)\ntestLabel\=\np.matrix(testLabel)\nprint(count1)\n
原文地址: https://www.cveoy.top/t/topic/pN8w 著作权归作者所有。请勿转载和采集!