我有一个.csv
格式的数据集,其中包含一些声学特征,我将用于性别语音识别以根据数据集预测其性别。
我的问题是我有25 samples of females
和152 samples of males
的数据集。总计:177 samples (or rows)
。
当我使用算法训练数据时,这会给我带来麻烦。
我的问题是,如何平衡男女比例?我该如何ignore
或减少152 to 25
中男性样本的数量,以使男性与女性之间的比例可以是1:1
?这样我有25位女性样本和25位男性样本。
我可以使用任何方法吗?
我的csv文件示例:
> 1 - female
>
> .
>
> 25 - female
>
> 26 - male
>
> .
>
> .
>
> .
>
> 177 - male
代码在python
中。
答案 0 :(得分:0)
pandas.DataFrame.sample
。如果您已经使用熊猫加载了文件,那么您将遇到以下情况:
示例:
# 177 samples = 177 rows, with females in rows 1 to 25
df.shape
(177,1)
# define a subset containg all the males data
males_all = df.loc[26:,:]
# randomly sample this and get 25 samples of MALES
sampled_males = males_all.sample(n = 25, random_state=0)
print(sampled_males.shape)
(25, 1)
答案 1 :(得分:-1)
如何创建一个男性声音的数据帧,然后使用df.Sample获得25个样本。
或更妙的是,如果创建两个数据帧,males_DF和females_DF,则可以执行以下操作:
sample_size = min(len(males_DF),len(females_DF))
male_sample_DF = males_DF.sample(sample_size)
female_sample_DF = females_DF.sample(sample_size)
(未经测试,可能需要更改)