这就是我将数据放在一起,通过方差阈值进行特征选择,然后通过归一化和LDA进行降维的方法。
LDA元素我不太确定,因为我找不到任何在管道中使用的示例(作为降维/数据转换技术,而不是独立的分类器)。
我有点担心,因为当使用这种方法并将转换后的数据传递给一系列分类器时,它们会产生一系列相同的准确率、精确度、召回率和F1分数。只有AdaBoost的应用才能带回一些不同的东西。
我是不是做错了什么?
pipeline = Pipeline([
('feature_selection', VarianceThreshold()),
('normaliser', Normalizer()),
('lda', LinearDiscriminantAnalysis())], verbose = True)
X_train_post_pipeline = pipeline.fit_transform(X_train, Y_train)
X_test_post_pipeline = pipeline.transform(X_test)
发布于 2021-12-04 09:02:17
LinearDiscriminantAnalysis
是一种可以与PCA
相比较的降维技术。因此,它可以作为预处理在流水线中使用。
使用其结果的分类器有可能以与LDA项目输入到最具区分性的方向相同的分数结束。
以下是使用LDA作为预处理步骤的管道示例:
from sklearn.pipeline import make_pipeline
from sklearn.feature_selection import VarianceThreshold
from sklearn.preprocessing import Normalizer
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
X, y = make_classification(n_classes=2)
pipe = make_pipeline(VarianceThreshold(),
Normalizer(),
LinearDiscriminantAnalysis(),
LogisticRegression())
pipe.fit(X, y)
https://stackoverflow.com/questions/70220437
复制相似问题