`

apache的math库中的回归——regression(翻译)

    博客分类:
  • java
阅读更多

这个Math库,虽然不向weka那样专业的ML库,但是用户友好,易用。

多元线性回归,协方差和相关性(皮尔逊和斯皮尔曼),分布测试(假设检验,t,卡方,G),统计。

 

数学库中还包含,Cholesky,LU,SVD,QR,特征根分解,真不错。

 

基本覆盖了:线代,统计,矩阵,

最优化理论

曲线拟合

常微分方程

遗传算法(GA),

还有3维的运算。。。

真应有尽有。

 

  1. Frequency

频率分布统计,

支持Integer,Float等(只要实现Comparable的任何类);

Count string frequencies计算字符串的频率Using case-sensitive comparison, alpha sort order (natural comparator):大小写敏感,而且以字母顺序排序(默认比较器)

Frequency f =newFrequency();
f.addValue("one");
f.addValue("One");
f.addValue("oNe");
f.addValue("Z");System.out.println(f.getCount("one"));// displays 1System.out.println(f.getCumPct("Z"));  // displays 0.5System.out.println(f.getCumPct("Ot"));// displays 0.25
          

 

Using case-insensitive comparator:大小写不敏感

Frequency f = new Frequency(String.CASE_INSENSITIVE_ORDER);
f.addValue("one");
f.addValue("One");
f.addValue("oNe");
f.addValue("Z");
System.out.println(f.getCount("one"));  // displays 3
System.out.println(f.getCumPct("z"));  // displays 1

 

1.5 Multiple linear regression 多元线性回归

OLSMultipleLinearRegression and GLSMultipleLinearRegression provide least squares regression to fit the linear model:

Y=X*b+u

where Y is an n-vector regressand, X is a [n,k] matrix whose k columns are called regressors, b is k-vector of regression parameters and u is an n-vector of error terms or residuals.

OLSMultipleLinearRegression provides Ordinary Least Squares Regression, and  implements Generalized Least Squares. See the javadoc for these classes for details on the algorithms and forumlas used.

OLSMultipleLinearRegression 和 GLSMultipleLinearRegression 提供最小方差线性回归模型:

Y=X*b+u

其中,Y是一个n维的回归变量,X是m*k的矩阵,其中k列称为自变量,b是长度为k的回归参数向量。u则是误差或者残余方差。

OLSMultipleLinearRegression 提供一个常见的最小方差回归,GLSMultipleLinearRegression

Data for OLS models can be loaded in a single double[] array, consisting of concatenated rows of data, each containing the regressand (Y) value, followed by regressor values; or using a double[][] array with rows corresponding to observations. GLS models also require a double[][] array representing the covariance matrix of the error terms.

OLS模型数据可以以一维double数组加载,数组以行数据串联,每行数据包含回归方程的独立自变量和 回归方程的因变量(Y),或者二维double数组,相应的每行一组观察值。GLS模型也需要一个误差的协方差矩阵的二维的double[][]数组

See AbstractMultipleLinearRegression#newSampleData(double[],int,int)OLSMultipleLinearRegression#newSampleData(double[], double[][]) andGLSMultipleLinearRegression#newSampleData(double[],double[][],double[][]) for details.

 

 

 

 

Usage Notes:

  • Data are validated when invoking any of the newSample, newX, newY or newCovariance methods and IllegalArgumentException is thrown when input data arrays do not have matching dimensions or do not contain sufficient data to estimate the model.
  • By default, regression models are estimated with intercept terms. In the notation above, this implies that the X matrix contains an initial row identically equal to 1. X data supplied to the newX or newSample methods should not include this column - the data loading methods will create it automatically. To estimate a model without an intercept term, set the noIntercept property to true.

Here are some examples.

OLS regression



Instantiate an OLS regression object and load a dataset:
OLSMultipleLinearRegression regression =newOLSMultipleLinearRegression();double[] y =newdouble[]{11.0,12.0,13.0,14.0,15.0,16.0};double[] x =newdouble[6][];
x[0]=newdouble[]{0,0,0,0,0};
x[1]=newdouble[]{2.0,0,0,0,0};
x[2]=newdouble[]{0,3.0,0,0,0};
x[3]=newdouble[]{0,0,4.0,0,0};
x[4]=newdouble[]{0,0,0,5.0,0};
x[5]=newdouble[]{0,0,0,0,6.0};          
regression.newSample(y, x);
          
Get regression parameters and diagnostics:
double[] beta = regression.estimateRegressionParameters();     //beta值

double[] residuals = regression.estimateResiduals();残余方差double[][] parametersVariance = regression.estimateRegressionParametersVariance();double regressandVariance = regression.estimateRegressandVariance();double rSquared = regression.calculateRSquared();//R回归方差double sigma = regression.estimateRegressionStandardError();//标准差
         
GLS regression



Instantiate a GLS regression object and load a dataset:
GLSMultipleLinearRegression regression =newGLSMultipleLinearRegression();double[] y =newdouble[]{11.0,12.0,13.0,14.0,15.0,16.0};double[] x =newdouble[6][];
x[0]=newdouble[]{0,0,0,0,0};
x[1]=newdouble[]{2.0,0,0,0,0};
x[2]=newdouble[]{0,3.0,0,0,0};
x[3]=newdouble[]{0,0,4.0,0,0};
x[4]=newdouble[]{0,0,0,5.0,0};
x[5]=newdouble[]{0,0,0,0,6.0};          
double[][] omega =newdouble[6][];
omega[0]=newdouble[]{1.1,0,0,0,0,0};
omega[1]=newdouble[]{0,2.2,0,0,0,0};
omega[2]=newdouble[]{0,0,3.3,0,0,0};
omega[3]=newdouble[]{0,0,0,4.4,0,0};
omega[4]=newdouble[]{0,0,0,0,5.5,0};
omega[5]=newdouble[]{0,0,0,0,0,6.6};
regression.newSampleData(y, x, omega); //GLS模型需要提供OMEGA

1.7 Covariance and correlation协方差和相关性

The org.apache.commons.math3.stat.correlation package computes covariances and correlations for pairs of arrays or columns of a matrix. Covariance computes covariances, PearsonsCorrelation provides Pearson's Product-Moment correlation coefficients and SpearmansCorrelation computes Spearman's rank correlation.

分享到:
评论

相关推荐

    JAVA实现的一元线性回归 LINEAR REGRESSION

    在IT领域,一元线性回归是一种广泛应用的统计分析方法,尤其在数据分析和机器学习中。这个主题的焦点是使用Java编程语言来实现这一概念。一元线性回归旨在找到一条直线,即回归线,最好地拟合一组给定的二维数据点。...

    逻辑回归logistic regression

    逻辑回归logistic regression

    基于核回归 Kernel regression 的图像处理作者Takeda的matlab代码 应用于去噪 超分 去模糊等等

    该程序很规范的应用核回归 Kernel regression 理论 以及应用了自适应高斯函数做核,达到图像处理的去噪,去模糊,超分等处理,本人项目用应用到的,感觉其他人也会用,因此分享,这是Takeda在07年发表的文章《Kernel...

    regression——lssvm

    最小二乘支持向量回归机regression——lssvm

    regression.rar_MATLAB回归分析_matlab回归_regression_回归_回归分析

    regression分析,回归分析 回归分析

    16.逻辑回归LogisticRegression分析鸢尾花数据1

    在Python中,逻辑回归模型可以使用Scikit-learn库中的LogisticRegression类来实现。下面是一个使用逻辑回归对鸢尾花数据进行分类的示例代码: ``` from sklearn.datasets import load_iris from sklearn.linear_...

    chapter29 支持向量机的回归拟合——混凝土抗压强度预测

    在本章"chapter29 支持向量机的回归拟合——混凝土抗压强度预测"中,我们将深入探讨SVM如何应用于混凝土抗压强度的预测。混凝土抗压强度是建筑工程中的重要参数,准确预测这一指标对于工程安全至关重要。 SVM的核心...

    R语言回归分析Regression Analysis

    R语言回归分析Regression Analysis

    前端开源库-ml-regression-power

    `ml-regression-power` 是一个专为前端开发者设计的开源库,它专注于机器学习领域中的回归分析。回归分析是统计学中预测连续变量值的一种方法,常用于预测、建模以及理解变量间的关系。在`ml-regression-power` 库中...

    5. 逻辑回归(logistic regression)的本质——极大似然估计 - zjuPeco的博客 - CSDN博客1

    《逻辑回归(logistic regression)的本质——极大似然估计》 逻辑回归是一种广泛应用的分类方法,它虽然名字中含有“回归”,但实际上是解决分类问题的一种有效工具。逻辑回归的核心思想是通过引入Sigmoid函数,将...

    支持向量机的回归拟合——混凝土抗压强度预测

    这个Matlab程序旨在帮助我们理解和支持向量回归(Support Vector Regression, SVR)的工作原理,并将其应用到实际的数据分析中。 首先,SVM的基本思想是找到一个超平面,该超平面能够最大化数据点与超平面之间的...

    Go-regression是Go中的多变量回归库

    在Go编程语言中,Go-regression是一个用于执行多变量线性回归分析的库。这个库为开发者提供了在处理复杂数据分析任务时的便利工具,尤其在需要建立数学模型以预测一个或多个因变量与一个或多个自变量之间的关系时。...

    前端开源库-ml-regression-polynomial

    `ml-regression-polynomial` 是一个专为前端开发者设计的开源库,它提供了多项式回归的功能,允许我们在浏览器环境中进行复杂的统计建模。这个库使得前端开发者能够在不依赖后端服务的情况下,对数据进行预测和分析...

    【MATLAB实战应用源代码】MATLAB实现逻辑回归(Logistic Regression).zip

    本资源是关于使用MATLAB实现逻辑回归(Logistic Regression)的实战应用源代码,对于理解该算法及其在MATLAB中的具体实现具有重要的学习价值。 逻辑回归是一种广义线性回归分析模型,常用于二分类问题,它通过将...

    前端开源库-ml-regression-base

    总的来说,"前端开源库-ml-regression-base"为前端开发人员提供了一种便捷的方式,使他们在不深入学习后端或数据科学的情况下,也能在项目中应用机器学习回归模型。这种库促进了技术的普及和创新,降低了开发复杂性...

    前端开源库-ml-regression-exponential

    "ml-regression-exponential"是一个专注于指数回归的前端开源库,它专为机器学习(ML)中的指数回归任务设计。在这个库中,我们可以找到一系列用于处理和分析数据的算法,以及方便的API接口,使得在前端实现复杂的...

    linear_ml_线性回归_python_ridgeregression_

    Python 中实现线性回归模型,我们可以利用 Scikit-Learn 这个强大的机器学习库。 Scikit-Learn 提供了两种常见的线性回归模型:LinearRegression 和 RidgeRegression。`LinearRegression` 是最基本的线性回归模型,...

    基于python实现逻辑回归Logistic Regression

    逻辑回归(Logistic Regression)是一种广泛应用的分类算法,尤其在二分类问题中表现优秀。它虽然名字中带有“回归”,但实际上是一种概率模型,用于预测事件发生的可能性。在Python中实现逻辑回归,我们可以利用...

    前端开源库-ml-regression-theil-sen

    "ml-regression-theil-sen"是一个专门针对机器学习中的回归分析的前端开源库,它实现了Theil-Sen回归算法。本文将深入探讨Theil-Sen回归以及其在前端开发中的应用。 Theil-Sen回归是一种统计学上的线性回归方法,以...

    python源码集锦-多元线性回归模型预测房价

    在Python中,我们可以利用科学计算库,如NumPy、Pandas和Scikit-learn,来实现多元线性回归模型。本资源包包含了一份关于如何用Python进行房价预测的源码集锦,以下是关于这一主题的详细知识: 1. **多元线性回归...

Global site tag (gtag.js) - Google Analytics