在scikit中pipeline和make_pipeline有什么区别
一般来说,机器学习管道是一系列步骤,按顺序执行,以自动化机器学习工作流。一系列步骤包括训练、分离和部署模型。
Pipeline
它用于按顺序执行流程,并执行步骤,转换器或评估器都是手动命名的。变压器和估计器是拟合模型和调整模型精度的参数。
语法: class sklearn.pipeline.Pipeline(steps, *, memory=None, verbose=False)
注意: 在上述语法中,步骤(可以用数组表示)被表示为在完成任务时要执行的函数序列。
示例:
这里我们将使用pipeline()方法创建一个管道。
# import required modules
import numpy as np
from sklearn.svm import SVC
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
# declare X, used as a feature with
# nested array
X = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])
# declare y as target variable
y = np.array([9, 10, 11, 12])
# pipeline is created using Pipeline()
pipe = Pipeline([('std_sc', StandardScaler()),
('svc_', SVC(gamma='auto'))])
pipe.fit(X, y)
输出:
make_pipeline
Make_pipleine是scikit learn中的一种高级方法,它可以自动命名估计器或变压器。
语法: sklearn.pipeline.make_pipeline(*steps, memory=None, verbose=False)
示例:
这里我们将使用make_pipeline()方法创建管道。
# import required modules
import numpy as np
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
# declare X, used as a feature with
# nested array
X = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])
# declare y as target variable
y = np.array([9, 10, 11, 12])
# pipeline is created using make_pipeline()
mp = make_pipeline(StandardScaler(),
SVC(gamma='auto'))
mp.fit(X, y)
输出:
scikit中pipeline和make_pipeline的区别
pipeline | make_pipeline |
---|---|
管道需要手动命名步骤。 | Make_pipeline会自动命名这些步骤。 |
名称是显式定义的,没有规则。 | 名称是使用一个简单的规则(估计器的小写)自动生成的。 |
不能根据使用的转换器或估计器更改名称。 | 名称是可读的、简短的、容易理解的,并且可以根据所使用的估计器进行更改。 |