垃圾邮件分类 – 机器学习

我需要使用几个分类器(例如,朴素贝叶斯、支持向量机和另一个分类器)来开发一个垃圾邮件检测应用程序,并比较它们的效率,但不幸的是,我不知道具体应该怎么做。

这样做对吗:首先,我应该有垃圾邮件语料库,比如trec2005、spamassasin或enron-spam。然后,我进行文本预处理,如词干提取、去除停用词、分词等。

之后,我可以使用tf-idf来衡量垃圾邮件中特征/术语的权重。接下来,我去除那些频率非常低和非常高的特征。然后我就可以对邮件进行分类。对吗?

之后,我可以通过真阳性、假阳性等来衡量我的正确分类情况。

如果需要进行10折交叉验证,应该如何使用它?

你能告诉我这些电子邮件分类的步骤是否正确吗?如果不对,请解释垃圾邮件分类的正确步骤是什么。


回答:

以下是构建垃圾邮件分类器的大致步骤:

1- 输入:一个标记过的训练集,包含足够的垃圾邮件和合法邮件样本

2- 特征提取:将你的邮件文本转换为用于训练的有用特征,例如词干提取、去除停用词、词频统计。然后评估这些特征(即应用属性选择方法)以选择最重要的特征。

3- 如果你的数据集足够大,将其分为训练、验证和测试集。如果数据集不够大,你可以使用整个数据集进行训练,并通过交叉验证来评估分类器的性能

4- 训练你的分类器,并使用测试数据集来评估其性能,或者进行交叉验证

5- 使用训练好的模型来分类新邮件。完成。

交叉验证的使用是为了评估你的模型在新/未见数据上的性能。因此,如果你有一个独立的测试数据集,你可能根本不需要交叉验证,因为你可以在测试数据集上评估模型性能。然而,当你的数据集较小时,你可以将其分成子集(例如10折),然后重复训练10次,每次你只使用90%的数据,并在剩余的10%上进行测试,依此类推。

你最终会得到10个分类器错误的估计值,平均它们以获得均方误差或绝对误差

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注