【发布时间】:2021-09-17 21:29:14
【问题描述】:
当我使用管道对象时,
-
当我使用
.fit()方法时,管道对象是否适合和转换训练数据?还是应该使用.fit_transform()方法?两者有什么区别? -
当我对测试数据使用
.predict()方法时,管道对象是否转换测试数据然后才预测它?也就是说,我应该使用@987654324转换测试数据吗? @方法之前我使用.predict()方法?
这是我的代码:
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.feature_selection import SelectKBest, f_classif
from sklearn.decomposition import PCA
from sklearn.tree import DecisionTreeClassifier
#creating some data
X, y = np.ones((50, 1)), np.hstack(([0] * 45, [1] * 5))
#creating the pipeline
steps = [('scaler', StandardScaler()), ('SelectKBest', SelectKBest(f_classif, k=3)), ('pca', PCA(n_components=2)), ('DT', DecisionTreeClassifier(random_state=0))]
model = Pipeline(steps=steps)
#splitting the data
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.33, random_state=42)
model.fit(X_train,y_train)
model.predict(X_test)
【问题讨论】:
标签: python machine-learning scikit-learn