做数学ppt工具的网站,淘宝联盟自建网站教程,番禺公司网站建设,泰安做网站哪家好文章目录 SimpleRegressionMultipleRegression MathNet系列#xff1a;矩阵生成 \quad 矩阵计算
LinearRegression是MathNet的线性回归模块#xff0c;主要包括SimpleRegression和MultipleRegression这两个静态类#xff0c;前者提供了最小二乘法的线性拟合#xff0c;后… 文章目录 SimpleRegressionMultipleRegression MathNet系列矩阵生成 \quad 矩阵计算
LinearRegression是MathNet的线性回归模块主要包括SimpleRegression和MultipleRegression这两个静态类前者提供了最小二乘法的线性拟合后者则主要提供一些矩阵方法。后文中二者简称为SR和MR。
SimpleRegression
SR中提供了静态方法Fit对给定的两组数 x , y x,y x,y找到一组参数 a , b a,b a,b使之满足 y a b x yabx yabx相应地其返回值是一个元组 ( a , b ) (a,b) (a,b)示例如下
Random r new Random(42);
double[] xs Enumerable.Range(0, 100).Select(xx*1.0).ToArray();
var ys xs.Select(x 10 * x 5 r.NextSingle()).ToArray();var ab SimpleRegression.Fit(xs, ys);
Console.WriteLine(ab);
//(5.378808571430682, 10.00077465365039)其中预设函数为 y 10 x 5 y10x5 y10x5但由于加上一个恒为正数的随机浮点数所以 a a a的值最终变大了一些而 b b b的值几乎就等于10了。
MultipleRegression
MR顾名思义用于解决多线性回归问题其多项式形式如下 x 00 β 0 x 01 β 1 ⋯ x 0 n β n y 0 x 10 β 0 x 11 β 1 ⋯ x 1 n β n y 1 ⋯ x m 0 β 0 x m 1 β 1 ⋯ x m n β n y n \begin{aligned} x_{00}\beta_0x_{01}\beta_1\cdotsx_{0n}\beta_ny_0\\ x_{10}\beta_0x_{11}\beta_1\cdotsx_{1n}\beta_ny_1\\ \cdots\\ x_{m0}\beta_0x_{m1}\beta_1\cdotsx_{mn}\beta_ny_n\\ \end{aligned} x00β0x01β1x10β0x11β1xm0β0xm1β1⋯x0nβny0⋯x1nβny1⋯⋯xmnβnyn
这种问题一般可以简化为矩阵形式 X β Y X\betaY XβY从而MR中提供的一系列函数目的都是得到 X β Y X\betaY XβY中的 β \beta β共有四个函数采用了不同的方法分别为
DirectMethod 使得残差最小。NormalEquations 使用了cholesky分解。QR 使用QR分解Svd 使用奇异值分解
以DirectMethod示例如下
var MB Matrixdouble.Build;
var VB Vectordouble.Build;
Random r new Random(42);var m MB.Random(100, 2);
var ys Enumerable.Range(0, 100).Select(i 20 * m[i, 0] 40 * m[i, 1] 2 r.NextSingle()).ToArray();
var v VB.DenseOfArray(ys);var abc MultipleRegression.DirectMethod(m, v);
Console.WriteLine(abc);
//19.7598
//40.4447