我在 C# 的 Windows 应用程序中绘制图表。我使用 最小二乘拟合——垂直偏移 来找到最佳拟合线。但是我的数据源从垂直线到(几乎)水平线不等。
然后我阅读了有关 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;
获得特征向量后,如何利用它们绘制最佳拟合线。