如何解决Spark 权威指南:第 25 章 - 预处理和特征工程
我不明白什么时候同时使用“fit”和“transform”,而什么时候只使用“transform”。
以下转换器同时使用 fit 和 transform:
- 公式
- QuantileDiscretizer
- 标准缩放器
- MinMaxScaler
- MaxAbsScaler
- 字符串索引器
- 矢量索引器
- CountVectorizer
- PCA
- ChiSqSelector
以下转换器仅使用转换:
- SQL 转换器
- 矢量汇编器
- 分桶器
- ElementWiseProduct
- 标准化器
- IndexToString
- OneHotEncoder
- 分词器
- RegexTokenizer
- StopWordsRemover
- NGram
我无法直观地理解何时同时使用拟合和变换以及何时仅使用变换。
请解释一下。谢谢。
解决方法
最终,所有这些组件都可以“转换”数据、索引/缩放/存储桶化等。其中一些组件不需要了解有关数据的任何信息即可完成其工作。例如,StopWordsRemover 只应用要删除的停用词列表,而不管数据如何。
某些组件确实需要了解它们正在操作的数据才能正确转换数据。例如 MinMaxScaler 需要知道数据的最小值/最大值才能执行缩放。
所以,所有这些都公开了一个 transform() 方法,但只有一些需要先对数据进行 fit() 。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。