【发布时间】:2016-01-10 21:06:00
【问题描述】:
如何根据给定的类\标签分布值对 pandas 数据框或 graphlab sframe 进行采样,例如:我想对具有标签\类列的数据框进行采样以选择行,以便平等地获取每个类标签,从而获得每个类标签的相似频率对应于类标签的均匀分布。或者最好是根据我们想要的类分布来获取样本。
+-----+-------+--------+ | col1 |克洛尔2 |班级 | +-----+-------+--------+ | 4 | 45 |一个 | +-----+-------+--------+ | 5 | 66 |乙| +-----+-------+--------+ | 5 | 6 | C | +-----+-------+--------+ | 4 | 6 | C | +-----+-------+--------+ | 321 | 1 |一个 | +-----+-------+--------+ | 32 |第432章乙| +-----+-------+--------+ | 5 | 3 |乙| +-----+-------+--------+ 给定一个像上面这样的巨大数据框和如下所需的频率分布: +-------+--------------+ |班级 |发味提取物| +-------+--------------+ |一个 | 2 | +-------+--------------+ |乙| 2 | +-------+--------------+ | C | 2 | +-------+--------------+以上内容应根据第二帧中的给定频率分布从第一个数据帧中提取行,其中频率计数值在 nostoextract 列中给出,以给出每个类最多出现 2 次的采样帧。如果找不到足够的类来满足所需的计数,则应忽略并继续。生成的数据框将用于基于决策树的分类器。
正如评论员所说,采样数据帧必须包含 nostoextract 相应类的不同实例?除非给定类没有足够的示例,在这种情况下,您只需获取所有可用的示例。
【问题讨论】:
-
你能添加一些你想要实现的例子吗?你看过
pandas.DataFrame.sample吗? (pandas.pydata.org/pandas-docs/stable/generated/…) -
@chris-sc 是的,它不允许基于类列进行采样
-
基本上我想对一个倾斜的数据框进行采样,以便尽可能充分地表示所有类标签。类标签位于“标签”列中。这被馈送到分类器。 @chris-sc
-
我想你想要
StratifiedKFold这返回迭代器,为每个类标签保留数据的统一拆分 -
抱歉,您能否发布示例代码和所需的输出,因为我不太了解您想要的内容
标签: python pandas graphlab sframe