我目前正在尝试构建一个分类模型,我正在使用this数据集进行培训和测试。它从TIMIT数据库中提取,包含五种不同音素类别的数字化频率。频率在标记为“x.1”-“x.256”的256列之下,而phoneme类本身被标记为“g”。此外,还有一个“演讲者”专栏,指明不同的发言者。在
我的问题是,考虑到演讲者专栏,是否有可能将这个数据集分成训练和测试数据的50:50比例?事实上,我想划分数据,使任何说话人都不在这两个集合中,这样我就不会用包含训练数据中相同说话人的测试数据来验证训练过的模型。在
我的方法是使用NumPy从原始数据集中提取所有说话人,并使用train_test_split
的stratify
参数:
X_train, X_test, y_train, y_test = train_test_split(input_data, phonemes, random_state=42, test_size=0.5, stratify=speakers)
但这很可能不是解决办法。如果您能帮我解决这个问题,我将不胜感激!在
嗨,您可以使用python的pandas库将csv加载到dataframe中,方法是使用
import pandas as pd
df = pd.read_csv(path_to_csv)
然后可以使用
arrayOfSpeaker = df['speaker'].unique()
现在,您可以轻松地使用arrayOfSpeaker将数据拆分为训练集和测试集。 另外,我建议在对数组进行切片之前,首先将arrayOfSpeaker随机化。在
我通常把数据分成70:20:10的比例列车:验证:测试。我没有得到50:50的分数!在
相关问题 更多 >
编程相关推荐