模拟抽样分布的分层抽样

问题描述 投票:2回答:1

我是R的新手,我最近在火车和测试拆分中使用了分层抽样,以确保目标标签在这两者之间均等比例。现在,我想对训练数据进行下采样,以使人口分布/火车分布与新的下采样分布。

我想进行下采样的原因是因为我有一千一百万行有56列,通过网格/随机/贝叶斯搜索进行参数调整将需要几天的时间

我正在使用XGboost,这是一个二进制分类问题

如果有人可以帮助我,我将非常感激。

下面是我的代码

    train_rows = sample.split(df$ModelLabel, SplitRatio=0.7) ## Stratiefied sampling 
    train = df[ train_rows,]
    test  = df[!train_rows,]`enter code here`
r machine-learning random sampling downsampling
1个回答
0
投票
最简单的方法是计算两个类别之间的比率。假设1100万中有300万个0和800万个1。因此,您的0:1比率是3:8。现在,假设您要将其降采样为100万行,则可以随机选择100万行以保持相同的比例,即3:8。因此,从数学上讲,它大约有27万(0级)样本和73万(1级)样本。您可以自己计算出确切的数字。现在,您可以使用Dataframe.sample()函数获取降采样的数据。我正在写同样的python代码。
© www.soinside.com 2019 - 2024. All rights reserved.