我在C#中绘制Windows应用程序中的图。 我用 Least Squares Fitting--Perpendicular Offsets 找到最合适的线。但是我的数据源从垂直线到(几乎)水平线不等。如何使用主成分分析找到最佳拟合线?
然后我阅读了关于PCA和Accord.net库。我写了一些代码,但没有得到什么进一步做。
我有一个图的数据点列表。
DataTable dt = new DataTable();
dt.Columns.Add("X", typeof(double));
dt.Columns.Add("Y", typeof(double));
foreach (DataPoint dp in listOfPoints)
{
DataRow dr = dt.NewRow();
dr["X"] = dp.XValue;
dr["Y"] = dp.YValues[0];
dt.Rows.Add(dr);
}
string[] columnNames;
double[,] sourceMatrix = dt.ToMatrix(out columnNames);
DescriptiveAnalysis sda = new DescriptiveAnalysis(sourceMatrix, columnNames);
sda.Compute();
AnalysisMethod method = AnalysisMethod.Center;
PrincipalComponentAnalysis pca = new PrincipalComponentAnalysis(sda.Source, method);
pca.Compute();
double[] mean = sourceMatrix.Mean();
double[,] eigenVectors = pca.ComponentMatrix;
得到特征向量如何利用他们在绘制最佳拟合线之后。
Thanks @Matt,请您在accord.net和c#上下文中解释我。因为这更数学。 – KSK
我没有得到究竟该做什么.. – KSK
啊,你没有问到究竟要做什么:)对不起,我不熟悉accord.net,所以这不是我可以回答的问题,虽然我是确定使用Accord.Statistics中的PCA类将会非常容易。 –