问题标签 [linear-discriminant]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
17221 浏览

python - 如何在 scikit-learn 中使用 LDA(线性判别)进行预测?

我一直在测试 PCA 和 LDA 在分类我想要自动识别的 3 种不同类型的图像标签方面的效果。在我的代码中,X 是我的数据矩阵,其中每一行是图像中的像素,y 是一维数组,说明每一行的分类。

使用 LDA,我最终得到了 3 个清晰可辨的集群,它们之间只有轻微的重叠。现在,如果我有一个要分类的新图像,一旦将其转换为一维数组,我如何预测它应该落入哪个簇,如果它离中心太远,我怎么能说分类是“不确定的” “?我也很好奇“.transform(X)”函数在我适应它后对我的数据做了什么。

0 投票
0 回答
243 浏览

matlab - 如何从通过线性判别分析获得的投影重建数据

我正在尝试从使用 LDA 获得的投影中重建数据。这个想法是评估从减少的 LDA 因子集获得的重建误差。在下面的 matlab 代码中,问题是如何使用投影数据 p 和特征向量 LTrans 获得重建。

0 投票
1 回答
513 浏览

matlab - How to exclude data with 0 variance in matlab implementation of Linear discriminant analysis

I am using Matlab to classify data using LDA.

I get the following error:

Predictor x741 has zero variance. Either exclude this predictor or set 'discrimType' to 'pseudoLinear' or 'diagLinear'.

I do not wish to use 'pseudoLinear' or 'diagLinear' as it degrades the performance. How can I exclude the zero predictor?

0 投票
1 回答
380 浏览

math - 在使用回归而不是分类之前可以接受多少标签

我有一个问题,我试图在 python 中使用监督学习。我有一系列 x,y 坐标,我知道它们属于一个数据集中的标签。在另一个我只有x,y坐标。我将使用一组来训练另一组,我的方法是监督学习并使用分类算法(线性判别分析),因为标签的数量是离散的。尽管它们是离散的,但它们的数量很大(n=~80,000)。我的问题是,我应该在哪些标签数量上考虑回归而不是分类,其中回归更适合连续标签。我使用 SciKit 作为我的机器学习包,并使用 astronml.orgs 优秀教程作为指南。

0 投票
0 回答
285 浏览

r - 线性与灵活判别函数分析中的 R 系数

我试图理解灵活的判别函数分析,特别是 R 中“mda”包中的“fda”命令。我的理解是默认方法是简单的线性判别函数分析,我可以了解我的哪一个使用以下代码(来自文档中的示例),原始预测变量对每个判别式的贡献最大:

我的理解是,从上面我们可以将 Petal.Width 解释为对 DF1 的组区分的贡献最大(尽管在此示例中其他变量具有类似的区分)。

现在,当方法设置为 mars 时(例如,使用灵活的判别函数分析时),我试图获得类似的系数。

请原谅我对该方法的有限理解,但我不清楚这里返回的内容/如何解释这些值(例如,有七行但只有四个初始变量……系数现在还包括非线性吗?模型中的术语?)。我无法从 Hastie 等人中弄清楚这一点。纸...

另外,我应该解释一下,我进行分析的主要动机不是结果分类,而是要了解在给定该分类的情况下哪些变量具有最大的区分能力。我正在探索其他方法,但认为 fda 可能有用......

提前致谢!

0 投票
0 回答
504 浏览

c++ - 如何使用 LDA 训练 SVM

我正在使用 C++ 和 OpenCV 3.0。

我有一个训练数据矩阵,其中包含我从一些图像(trainData)中提取的特征。这个矩阵的大小是 2750x1104,因为我有 2750 张图像(正面和负面),每张有 1104 个特征。我有其他带有标签的 2750x1 矩阵(trainLabels)。

  • trainData:2750 张图像 x 1104 个特征。
  • trainLabels : 2750 张图片 x 每列 1 个标签

有了这些信息,我想训练一个 SVM,并且我想评估使用 PCA(主成分分析)、LDA(线性判别分析)和两者组合的性能。我已经毫无问题地应用了 PCA,但是当我使用 LDA 时,我获得了SVM 不能用作输入的 2750x1(投影)矩阵。

我使用了这个链接,但他们不使用 SVM。

这是代码:

我选择num_components为 1,因为我有两个班级(人与无人)。

这些是我的结果:

  • 特征向量:1104 行 x 1 列
  • 预计:2750 行 x 1 列

据我所知,特征向量应该是 1104x1104 和投影2750x1104 所以可以使用矩阵来训练 SVM投影

我不知道我的代码是否真的错了,也许我没有正确理解 LDA 的工作原理。如果是这样,你能给我一些建议吗?事实上,我可以用 LDA 训练 SVM 吗?

提前致谢。

0 投票
0 回答
536 浏览

python - 为什么 LDA 在 sklearn/Python 中只返回 1 列?

以下代码

返回以下内容:

lda.fit()返回 1 列,尽管它说n_components=2

为什么以及如何强制返回 2 列?

文档在这里:http ://scikit-learn.org/stable/modules/generated/sklearn.discriminant_analysis.LinearDiscriminantAnalysis.html#sklearn.discriminant_analysis.LinearDiscriminantAnalysis

0 投票
1 回答
30 浏览

machine-learning - 我怎样才能扭转内核渔民的影响?

我在我的项目中使用了 Kernel Fisher 的判别分析,效果很好。但是我的问题源于这样一个事实,即当我使用内核函数映射我的数据集时,所有数据以及所有特征值和特征向量都在该空间中,并且为了测试新样本我面临一些问题。让我用一个例子来解释一下。例如,当我有 50 个样本和 10 个特征来描述每个样本时,我的数据矩阵是 50 x 10,映射此函数将在新特征空间中生成 50 x 50 矩阵。所以特征向量(FDA 中的 W)也在 50D 空间中。现在为了测试一个新样本,它是一个以 10 个元素为特征的向量,映射的数据矩阵将是 10 x 10,并且它不在 50D 空间中,所以我不能将它投影到 W 以获得它的哪个类属于...请帮助我,我能做什么?

0 投票
1 回答
324 浏览

switch-statement - 在 Shiny 中切换 2 组和 2 组以上 LDA 时的维数不正确

我一直在自学如何制作闪亮的应用程序,以包含机智的研究文章,以使从业者更容易使用方法。我正在使用闪亮来制作一个对特定变量集进行判别函数分析的网络应用程序。当从分析中选择 3 个或更多组时,该应用程序工作得很好,但是当我使用 switch 函数将代码更改为 2 组时,我遇到了不正确的维数错误。代码运行良好,然后我更新了 R 和 rStudio,现在每当我尝试 2 组比较时,我都会收到“不正确的维度数”。我一直在尝试调试几个小时,但无济于事。

在闪亮的界面中,用户可以在两组分析和多组分析之间进行选择,选择组,然后将数据输入数据输入表。我设置了表格,以便根据输入的任何变量,参考数据都是子集。

下面是 server.R 代码——请原谅糟糕的编码状态——这是我的第一次尝试,我正在学习。

和服务器.R

我尝试更改将开关功能放在 lda_mod 中的位置,但同样的问题不断出现。任何建议将不胜感激。

0 投票
0 回答
770 浏览

machine-learning - sklearn LDA:coef_和scalings_之间的区别?

我是 LDA 的新手。文档不是很清楚 - coef_ 和 scalings_ 有什么区别?

我的数据具有许多特征(F1、F2、...、F10000)和一些标记类(C1、C2、...、C5)。我想找到 2 条线的方程(F1-F10000 的线性组合),它们形成 2D 空间的轴,其中类 (C1-C5) 最大程度地分离。如何使用 sklearn 获得这些线的方程?