gpt4 book ai didi

python - 在 Python 中进行分层采样,无需使用任何机器学习

转载 作者:行者123 更新时间:2023-12-01 06:23:52 27 4
gpt4 key购买 nike

我有一个数据集,其中包含:(“wordsList”和“classList”文件)。

wordsList 文件包含 72 封预处理过的电子邮件。每一行都是从每封电子邮件中提取的单词列表。

classList 文件包含指示电子邮件是普通电子邮件还是广告电子邮件的类标签(0 表示普通电子邮件,1 表示广告电子邮件)。

我的任务是用 Python 开发一个朴素贝叶斯分类器作为电子邮件过滤器。即,分类器预测电子邮件是普通电子邮件还是广告。

为了开发此功能,我需要使用分层抽样从 72 行中选择 66 行进行训练,其余 6 行进行测试。然后返回这6条记录的分类概率。但对我来说坏消息是我不能使用任何机器学习库,只能使用 NumPy 和 SciPy。

有什么办法可以实现吗?如果是的话,是否有任何示例代码可以从头开始实现此方法?预先感谢您!

classList file

wordsList file

最佳答案

最简单的解决方案是使用 pandas 的 groupby 方法,然后使用 frac=0.91 应用采样,以在您的情况下从 72 行中获取 66 行:

cL2=cL.groupby(['classList']).apply(lambda x: x.sample(frac=0.91)) 

这会创建一个 MultiIndex 数据帧,通过重置索引、删除与 groupby 方法关联的列“classList”,并可选择删除一个额外的数据帧(根据分组变量的数量,level_1 此处):

cL3=cL2.drop(columns=['classList']).reset_index().drop(columns=['level_1'])

关于python - 在 Python 中进行分层采样,无需使用任何机器学习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60261183/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com