sklearn Pipeline 和 DataFrameMapper 有什么区别?
What's the difference between sklearn Pipeline and DataFrameMapper?
Sklearn 管道:http://scikit-learn.org/stable/modules/generated/sklearn.pipeline.Pipeline.html
DataFrameMapper: https://github.com/paulgb/sklearn-pandas
它们有什么区别?
在我看来,sklearn pipeline 的功能更多,但 DataFrameMapper 对我来说更干净。
编辑:请参阅关于可能更好的 ColumnTransformer
方法的评论讨论。可以找到可能感兴趣的比较 table Here。
基本上,DataFrameMapper
(以及整个 sklearn-pandas 包)旨在将 pandas DataFrame
对象的优点与 sklearn 机器的功能结合起来学习包。
sklearn.Pipeline
描述了对矩阵格式执行的转换的有序列表(由 numpy 和 scipy 包提供)。这些变换将依次在整个矩阵上执行,并将从头到尾对整个训练和预测过程进行编码。
管道转换(又名步骤)元组的第一部分是它的名称,它对过程没有实际影响,只是为了便于阅读。
另一方面,A DataFrameMapper
对 pandas 包创建的 DataFrame 对象进行操作,并且可以将转换应用于数据框的某些部分(不一定对整个数据集)。 DataFrame 类似于 numpy 和 scipy 矩阵,唯一明显的区别是跟踪行和列标签以及元数据。 DataFrames 操作将确保可以使用逻辑标识而不是索引来访问、操作和读取行和列。
DataFrameMapper
转换元组的第一部分描述了哪些列应该 运行 通过转换。
三大区别是:
- A
DataFrameMapper
是一个更灵活的工具,它可以让你对不同的列执行不同的转换,更面向转换复杂的数据结构,而sklearn.Pipeline
更面向执行机器在同类数据集上学习相关转换。
DataFrameMapper
将让您保留分配给 pandas DataFrame
对象的注释和标签,而 sklearn.Pipeline
将“减少”任何结果一个 numpy/scipy array/matrix.
sklearn.Pipeline
是更 stable 和众所周知的软件包的一部分,因此如果稳定性和维护等考虑因素很重要,则可能是“更安全”的选择。
Sklearn 管道:http://scikit-learn.org/stable/modules/generated/sklearn.pipeline.Pipeline.html
DataFrameMapper: https://github.com/paulgb/sklearn-pandas
它们有什么区别?
在我看来,sklearn pipeline 的功能更多,但 DataFrameMapper 对我来说更干净。
编辑:请参阅关于可能更好的 ColumnTransformer
方法的评论讨论。可以找到可能感兴趣的比较 table Here。
基本上,DataFrameMapper
(以及整个 sklearn-pandas 包)旨在将 pandas DataFrame
对象的优点与 sklearn 机器的功能结合起来学习包。
sklearn.Pipeline
描述了对矩阵格式执行的转换的有序列表(由 numpy 和 scipy 包提供)。这些变换将依次在整个矩阵上执行,并将从头到尾对整个训练和预测过程进行编码。
管道转换(又名步骤)元组的第一部分是它的名称,它对过程没有实际影响,只是为了便于阅读。
另一方面,A DataFrameMapper
对 pandas 包创建的 DataFrame 对象进行操作,并且可以将转换应用于数据框的某些部分(不一定对整个数据集)。 DataFrame 类似于 numpy 和 scipy 矩阵,唯一明显的区别是跟踪行和列标签以及元数据。 DataFrames 操作将确保可以使用逻辑标识而不是索引来访问、操作和读取行和列。
DataFrameMapper
转换元组的第一部分描述了哪些列应该 运行 通过转换。
三大区别是:
- A
DataFrameMapper
是一个更灵活的工具,它可以让你对不同的列执行不同的转换,更面向转换复杂的数据结构,而sklearn.Pipeline
更面向执行机器在同类数据集上学习相关转换。 DataFrameMapper
将让您保留分配给 pandasDataFrame
对象的注释和标签,而sklearn.Pipeline
将“减少”任何结果一个 numpy/scipy array/matrix.sklearn.Pipeline
是更 stable 和众所周知的软件包的一部分,因此如果稳定性和维护等考虑因素很重要,则可能是“更安全”的选择。