垃圾邮件分类 – 机器学习

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

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

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

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

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

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


回答:

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

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

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

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

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

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

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

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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