为了账号安全,请及时绑定邮箱和手机立即绑定

Python中的分层采样,不使用任何机器学习

Python中的分层采样,不使用任何机器学习

jeck猫 2022-08-02 16:13:09
我有一个包含:(“wordsList”和“classList”文件)的数据集。wordsList 文件包含 72 封预处理的电子邮件。每行都是从每封电子邮件中提取的单词列表。classList 文件包含指示电子邮件是普通电子邮件还是广告的类标签(0 表示普通电子邮件,1 表示广告)。我的任务是开发一个朴素贝叶斯分类器作为Python中的电子邮件过滤器。也就是说,分类器预测电子邮件是普通电子邮件还是广告。为了开发这个,我需要使用分层采样从72行中选择66行进行训练,其余6行用于测试。然后返回这 6 条记录的分类概率。但对我来说坏消息是,我不能使用任何机器学习库,只能使用NumPy和SciPy。有没有办法实现这一点?如果是这样,是否有任何从头开始实现此方法的示例代码?提前感谢您!
查看完整描述

1 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

最简单的解决方案是使用 pandas 的方法,然后应用采样,在你的情况下从 72 行中得到 66 行:groupbyfrac=0.91

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

这将创建一个 MultiIndex 数据帧,该数据帧通过重置索引、删除与该方法关联的列'classList',并选择性地删除一个额外的数据帧(此处参照分组变量的数量命名):将其转换为普通数据帧:groupbylevel_1

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


查看完整回答
反对 回复 2022-08-02
  • 1 回答
  • 0 关注
  • 132 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信