加载垃圾邮件与非垃圾邮件数据
逻辑回归是用于预测分类响应的常用方法。其中一个最常见的应用就是短信或电子邮件的垃圾邮件分类。在这个包含 3 个部分的练习中,您将使用 Spark MLlib 的逻辑回归来创建一个电子邮件垃圾邮件分类器。构建垃圾邮件分类器的大致步骤如下:
- 创建表示电子邮件的字符串 RDD。
- 运行 MLlib 的特征提取算法,将文本转换为向量 RDD。
- 在向量 RDD 上调用分类算法,返回一个模型对象,用于对新样本进行分类。
- 使用 MLlib 的评估函数之一在测试数据集上评估模型。
在练习的第一部分,您将把"spam"(垃圾邮件)和"ham"(非垃圾邮件)文件加载到 RDD 中,将每封邮件拆分成独立的单词,并查看每个 RDD 的第一个元素。
请记住,您的工作区中已提供 SparkContext sc。变量 file_path_spam("spam" 文件的路径)和 file_path_non_spam("non-spam" 文件的路径)也已可用。
本练习是课程的一部分
使用 PySpark 的大数据基础
练习说明
- 创建两个 RDD,分别用于"spam"和"non-spam(ham)"。
- 将"spam"和"non-spam"这两个 RDD 中的每封邮件拆分为单词。
- 打印"spam"和"non-spam"这两个拆分后 RDD 的第一个元素。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Load the datasets into RDDs
spam_rdd = sc.____(file_path_spam)
non_spam_rdd = sc.____(file_path_non_spam)
# Split the email messages into words
spam_words = spam_rdd.____(lambda email: email.split(' '))
non_spam_words = non_spam_rdd.____(lambda email: ____.____(' '))
# Print the first element in the split RDD
print("The first element in spam_words is", spam_words.____())
print("The first element in non_spam_words is", ____.____())