短信垃圾分类流水线
您已经有一段时间没有查看短信数据了。上次我们完成了以下步骤:
- 将文本切分为词元(tokens)
- 移除停用词
- 应用哈希技巧(hashing trick)
- 将计数转换为 IDF,并且
- 训练了一个逻辑回归模型。
这些步骤都是分别完成的。这正是使用流水线(pipeline)的好场景!
Pipeline 和 LogisticRegression 类已经导入,您无需再处理导入问题!
本练习是课程的一部分
使用 PySpark 进行机器学习
练习说明
- 创建一个对象用于将文本切分为词元。
- 创建一个对象用于移除停用词。无需显式提供输入列名,直接对上一个对象调用
getOutputCol()方法。 - 创建对象以应用哈希技巧并将数据转换为 TF-IDF。这里同样使用
getOutputCol()方法串联。 - 创建一个流水线,将以上所有步骤与用于构建逻辑回归模型的对象一起封装起来。
交互式实操练习
通过完成这段示例代码来试试这个练习。
from pyspark.ml.feature import Tokenizer, StopWordsRemover, HashingTF, IDF
# Break text into tokens at non-word characters
tokenizer = ____(inputCol='text', outputCol='words')
# Remove stop words
remover = ____(inputCol=____, outputCol='terms')
# Apply the hashing trick and transform to TF-IDF
hasher = ____(inputCol=____, outputCol="hash")
idf = ____(inputCol=____, outputCol="features")
# Create a logistic regression object and add everything to a pipeline
logistic = LogisticRegression()
pipeline = Pipeline(stages=[____, ____, ____, ____, logistic])