首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >您可以使用LDA (线性判别分析)作为sklearn管道的一部分进行预处理吗?

您可以使用LDA (线性判别分析)作为sklearn管道的一部分进行预处理吗?
EN

Stack Overflow用户
提问于 2021-12-03 20:41:12
回答 1查看 62关注 0票数 0

这就是我将数据放在一起,通过方差阈值进行特征选择,然后通过归一化和LDA进行降维的方法。

LDA元素我不太确定,因为我找不到任何在管道中使用的示例(作为降维/数据转换技术,而不是独立的分类器)。

我有点担心,因为当使用这种方法并将转换后的数据传递给一系列分类器时,它们会产生一系列相同的准确率、精确度、召回率和F1分数。只有AdaBoost的应用才能带回一些不同的东西。

我是不是做错了什么?

代码语言:javascript
运行
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2021-12-04 09:02:17

LinearDiscriminantAnalysis是一种可以与PCA相比较的降维技术。因此,它可以作为预处理在流水线中使用。

使用其结果的分类器有可能以与LDA项目输入到最具区分性的方向相同的分数结束。

以下是使用LDA作为预处理步骤的管道示例:

代码语言:javascript
运行
复制
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)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70220437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档