假设我有一个包含10个类的数据集。每个类包含3D 3点:C#线性判别分析Alglib
Class 1: (1,2,3),(4,5,6),(7,8,9)
Class 2: (2,3,4),(5,6,7),(8,9,10)
.
.
Class 10: (10,15,20),(10,11,19),(4,8,9)
我怎样才能确定是否X类所属的类来对一个以上使用Alglib LDA(或任何其他免费LDA库)?
示例代码将不胜感激。
假设我有一个包含10个类的数据集。每个类包含3D 3点:C#线性判别分析Alglib
Class 1: (1,2,3),(4,5,6),(7,8,9)
Class 2: (2,3,4),(5,6,7),(8,9,10)
.
.
Class 10: (10,15,20),(10,11,19),(4,8,9)
我怎样才能确定是否X类所属的类来对一个以上使用Alglib LDA(或任何其他免费LDA库)?
示例代码将不胜感激。
一段时间后,我终于想通了:
static public double[,] Test()
{
// This example is for points in 3D.
// The forth variable is the class label. In this case 2 classes: 0 and 1.
double[,] xy = new double[,]
{
{ 4,2,1, 0 }, { 2,4,2, 0 }, { 2,3,3, 0 }, { 3,6,4, 0 }, { 4,4,5, 0 },
{ 9,10,10, 1 }, { 6,8,11, 1 }, { 9,5,12, 1 }, { 8,7,9, 1 }, { 10,8,10, 1 }
};
int NPoints = 10;
int NVars = 3; // 1 for 1 dimension, 2 for 2D and so on...
int NClasses = 2;
int info = 0;
double[,] w = new double[0, 0];
alglib.lda.fisherldan(xy, NPoints, NVars, NClasses, ref info, ref w);
return w; // The projection vector/s.
}
嗨。你能解释一下这里发生了什么吗?我使用该库的C++版本来尝试和分析6个问题回答(1到7之间的答案)并将它们匹配到5个集合/类。我真的坚持所以任何帮助将不胜感激。 –
HI @RASS。刚刚看到你的问题。我希望你现在已经明白了。如果不是,请不要犹豫,再问一次。 – Igor
Hi @Igor。不幸的是,没有运气,说实话我没有能够花太多时间在它上面。我正在开发一个项目,用户必须回答6个问题,并给出1到7之间的每个问题范围的答案。然后我有4个特征,每个特征分配一个值并使用用户的答案和一组渔民lda常数必须工作把最适合用户的特性。我不知道你是否可以解决这个问题?非常感谢。 –
任何代码,显示你有什么到目前为止已经试过也将被赞赏。 –
甚至无法开始编写它。直到我自己写了课,我才了解PCA,并且它运行良好。虽然我理解LDA的基本知识,但我无法弄清楚如何确定一个类到另一个类的所有物的逻辑。 PCA的比较结果与EUCLIDEAN DISTANCE的大小有关。对于LDA,它与该类的投影具有最高特征值的向量有关。 – Igor