我的数据集特征形状为(80102, 2592),标签形状为(80102, 2)。由于训练CNN模型需要很长时间,我希望只考虑少量行进行训练。如何在Python中分割数据集,并仅使用少量行进行训练和测试?
回答:
如果你的数据是以数组形式存在的,让X为包含数据的数组,y为包含标签的数组。你可以使用sklearn的train_test_split函数来创建数据的新样本,代码如下:
from sklearn.model_selection import train_test_split
percent=.1 # 指定你想要使用的百分比数据,在本例中为10%
X_data, X_dummy, y_labels, y_dummy=train_test_split(X,y,train_size=percent,random_state=123, shuffle=True)
X_data将包含原始数据的10%,并会被打乱,y_labels将包含相应标签的10%。如果你想具体设置样本数量,可以将train_size设置为整数值。如果你需要更多信息,文档位于这里。如果你的数据是一个pandas数据框,你可以使用pandas函数pandas.DataFrame.sample。该函数的文档位于这里。假设你的数据框名为data。下面的代码将生成一个新的数据框,其中包含原始行的指定百分比:
percent=.1
new_data=pandas.data.sample(n=None, frac=percent, replace=False, weights=None, random_state=123, axis=0)