我有一个包含:(“wordsList”和“classList”文件)的数据集。wordsList 文件包含 72 封预处理的电子邮件。每行都是从每封电子邮件中提取的单词列表。classList 文件包含指示电子邮件是普通电子邮件还是广告的类标签(0 表示普通电子邮件,1 表示广告)。我的任务是开发一个朴素贝叶斯分类器作为Python中的电子邮件过滤器。也就是说,分类器预测电子邮件是普通电子邮件还是广告。为了开发这个,我需要使用分层采样从72行中选择66行进行训练,其余6行用于测试。然后返回这 6 条记录的分类概率。但对我来说坏消息是,我不能使用任何机器学习库,只能使用NumPy和SciPy。有没有办法实现这一点?如果是这样,是否有任何从头开始实现此方法的示例代码?提前感谢您!
1 回答
一只名叫tom的猫
TA贡献1906条经验 获得超3个赞
最简单的解决方案是使用 pandas 的方法,然后应用采样,在你的情况下从 72 行中得到 66 行:groupby
frac=0.91
cL2=cL.groupby(['classList']).apply(lambda x: x.sample(frac=0.91))
这将创建一个 MultiIndex 数据帧,该数据帧通过重置索引、删除与该方法关联的列'classList',并选择性地删除一个额外的数据帧(此处参照分组变量的数量命名):将其转换为普通数据帧:groupby
level_1
cL3=cL2.drop(columns=['classList']).reset_index().drop(columns=['level_1'])
添加回答
举报
0/150
提交
取消