gpt4 book ai didi

machine-learning - 带 make_pipeline 的 StandardScaler

转载 作者:行者123 更新时间:2023-11-30 08:53:42 24 4
gpt4 key购买 nike

如果我使用make_pipeline,我是否还需要使用fittransform函数来适应我的模型和转换,否则它将执行这些本身的功能?
另外,StandardScaler 是否也执行标准化或仅执行缩放?
解释代码:我想应用 PCA,然后使用 svm 应用归一化。

pca = PCA(n_components=4).fit(X) 
X = pca.transform(X)

# training a linear SVM classifier 5-fold
from sklearn.svm import SVC
from sklearn.model_selection import cross_val_score

clf = make_pipeline(preprocessing.StandardScaler(), SVC(kernel = 'linear'))
scores = cross_val_score(clf, X, y, cv=5)

如果我在下面的代码中不使用 fit 函数,也有点困惑会发生什么:

from sklearn.svm import SVC
from sklearn.model_selection import cross_val_score

clf = SVC(kernel = 'linear', C = 1)
scores = cross_val_score(clf, X, y, cv=5)

最佳答案

StandardScaler 同时进行标准化和缩放。

cross_val_score() 将为您适合(转换)您的数据集,因此您无需显式调用它。

一种更常见的方法是将所有步骤(StandardScale、PCA、SVC)放在一个管道中,并使用 GridSearchCV 来调整超参数并选择最佳参数(估计器)。

演示:

pipe = Pipeline([
('scale, StandardScaler()),
('reduce_dims', PCA(n_components=4)),
('clf', SVC(kernel = 'linear', C = 1))
])

param_grid = dict(reduce_dims__n_components=[4,6,8],
clf__C=np.logspace(-4, 1, 6),
clf__kernel=['rbf','linear'])

grid = GridSearchCV(pipe, param_grid=param_grid, cv=3, n_jobs=1, verbose=2)
grid.fit(X_train, y_train)
print(grid.score(X_test, y_test))

关于machine-learning - 带 make_pipeline 的 StandardScaler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49955951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com