Python .csv中的不平衡数据集

Python .csv中的不平衡数据集,python,python-3.x,csv,Python,Python 3.x,Csv,我有一个.csv格式的数据集,其中包含声学特征,我将用于性别语音识别,以预测它基于数据集的性别 我的问题是,我的数据集有25个女性样本和152个男性样本。总计:177个样本(或行) 当我使用算法对数据进行训练时,这会给我带来问题 我的问题是,我如何平衡男女比例?我如何忽略或将男性样本的数量从152减少到25,从而使男性和女性之间的比例可以达到1:1?所以我有25个女性样本和25个男性样本 有什么方法我可以用吗 我的csv文件示例: > 1 - female > > . >

我有一个
.csv
格式的数据集,其中包含声学特征,我将用于性别语音识别,以预测它基于数据集的性别

我的问题是,我的数据集有
25个女性样本
152个男性样本
。总计:
177个样本(或行)

当我使用算法对数据进行训练时,这会给我带来问题

我的问题是,我如何平衡男女比例?我如何忽略或将男性样本的数量从152减少到25,从而使男性和女性之间的比例可以达到
1:1
?所以我有25个女性样本和25个男性样本

有什么方法我可以用吗

我的csv文件示例:

> 1 - female
> 
> .
> 
> 25 - female 
> 
> 26 - male
> 
> .
> 
> .
> 
> .
> 
> 177 - male
代码位于
python

使用
pandas.DataFrame.sample
。 如果您使用pandas加载了文件,则会出现如下情况:

示例:

# 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)

创建一个男声数据帧,然后用它来获取25个样本,怎么样

或者更好的是,如果您创建两个数据帧,男性和女性,您可以执行以下操作:

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)

(未测试,可能需要一些更改)

您为什么不随机选择25个雄性样本,然后对25个雄性和25个雌性样本进行分析?我怎么做?你有什么办法可以给我看或解释吗?:)是的,但我需要更多关于你档案的信息。雌性总是在第1排到第26排?只有一个文件?您是否使用
pandas
读取
csv
文件?是正确的,我使用pandas。从第1排到第26排总是只有雌性。请注意,我在文件中也有标题好的,我现在正在写一个答案,我收到一个错误,说“tuple object is not callable”,代码的哪一部分给出了这个错误?你能上传
csv
文件吗?还是它的样本?