开始使用免费开始使用

特征哈希与 LabelPoint

将邮件拆分为单词后,原始数据集 'spam' 和 'non-spam' 目前由单行消息组成。为了对这些消息进行分类,需要把文本转换为特征。

在本练习的第二部分,您将先创建一个 HashingTF() 实例,把文本映射为包含 200 个特征的向量。然后,对 'spam' 和 'non-spam' 文件中的每条消息进行分词,并将每个单词映射到一个特征上。这些特征将用于判断一条消息是 'spam' 还是 'non-spam'。接着,您将为特征创建标签:对于有效消息,标签为 0(即该消息不是垃圾邮件);对于 'spam' 消息,标签为 1(即该消息是垃圾邮件)。最后,您将合并这两个带标签的数据集。

请注意,您的工作区中已提供 SparkContext sc。变量 spam_wordsnon_spam_words 也已在工作区中可用。

本练习是课程的一部分

使用 PySpark 的大数据基础

查看课程

练习说明

  • 创建一个 HashingTF() 实例,将邮件文本映射为包含 200 个特征的向量。
  • 将 'spam' 和 'non-spam' 数据集中的每条消息拆分为单词,并将每个单词映射为一个特征。
  • 为特征打标签:垃圾邮件为 1,非垃圾邮件为 0。
  • 将垃圾邮件与非垃圾邮件样本合并为一个数据集。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Create a HashingTF instance with 200 features
tf = ____(numFeatures=200)

# Map each word to one feature
spam_features = tf.____(spam_words)
non_spam_features = tf.____(____)

# Label the features: 1 for spam, 0 for non-spam
spam_samples = spam_features.map(lambda features:LabeledPoint(____, features))
non_spam_samples = non_spam_features.map(lambda features:_____(____, features))

# Combine the two datasets
samples = spam_samples.____(non_spam_samples)
编辑并运行代码