图片缩略图

多元多项式回归

version 1.4.0.0 (39.7 KB) by 艾哈迈克
在多维数据上执行多项式回归。
5.0
31家评级

69下载

更新2020年12月03

来自GitHub.

查看版本历史记录

在github上查看许可证

对多维数据进行多元多项式回归。配合被限制在标准的多项式基与小的修改选项。可以随意实现术语简化启发式。
这个功能在m.file中有足够详细的解释。请随意发表评论或询问。
不再需要任何其他工具箱!
前往http://ahmetcecen.github.io/multipolyregress-matlabcentral/或右侧的GitHub页面,用于完整的图表教程。您还可以出于相同的目的发布example.m。
作者:Ahmet Cecen,Mined @ Gatech

引用

艾哈迈克(2021)。多元多项式回归GitHub (https://github.com/ahmetcecen/MultiPolyRegress-MatlabCentral)。检索

评论和评级(62.

奥马尔阿拉马德

伟大的工作。非常有用的。非常感谢。

agg.

Jürgen.

非常有用,如果不是那里 - 一个人必须用汗水和泪水来实现它

Eduardodíaz.

这是伟大的!由于一百万年!

艾哈迈克

不幸的是,由于我目前的义务,我无法进一步发展这个功能。

Sebastian Laechele.

亲爱的艾哈迈德,
有没有办法将权重应用于数据点,以便考虑每个数据点的准确性/相关性?
MATLAB内置功能适合允许使用可选的参数“权重”。
不幸的是,fit函数只允许预测器有两个维度,这就是为什么我喜欢使用你的实现。
但我缺乏将权重融入您的代码中的数学理解。任何帮助将不胜感激!

本凯尔梅尔

凯文阳

这种方法如此优雅。否则,我必须运行那些可能不是这种好的优化器。

本凯尔梅尔

艾哈迈克

不,在功能中没有数据预处理或清洁步骤。您提供的数据必须是最终的。根据您的应用程序,我将填充NaN的Via插值,基于预期物理的函数,或者使用相同的功能来估算来自输入数据中的其他列的零星NANS的列;或者通过使用a使用NaN的任何行(SUM(ISNAN(A),2)> 0,:) = [] ;.

詹姆斯伊顿

你好,有一种方法'omitnan'使用这个函数吗?谢谢!

Jofin George.

嗨,感谢分享这种强大的算法。我可以知道这是否是基于机器学习的算法?

Rohit Bhagwat.

非常感谢您,并感谢您编写此代码。这对我很有帮助。

艾哈迈克

是的。是的,你必须在这种情况下将它们重命名,我是新软件。

Rohit Bhagwat.

嗨,谢谢你的回复。
很抱歉,我应该在之前的信息中提到这一点。实际上我想用Matlab找到这个有6个自变量的多项式曲线拟合,但在不同的软件中使用它(其中一个软件是Excel),所以这就是为什么我问我可以使用它作为一个正常的多项式公式从0开始。*x6直到最后它的作用类似于曲线拟合公式,对吧?

艾哈迈克

你不需要重命名它们。做有趣的事(YourData1, YourWeirdname2…)等。唯一的要求是,在拟合过程中将变量放入multipolyregression的顺序必须与调用这个新函数FUN的顺序相同。

Rohit Bhagwat.

感谢您的及时回复,
哦,现在我理解第一项了,它只是将x1赋值为x6,这意味着如果我手动将数据向量命名为x1到x6并使用多项式它就可以了。

艾哈迈克

//www.tatmou.com/help/matlab/matlab_prog/anonymous-functions.html.

检查这一点,了解你把它的意思是什么“第一术语”。基本上如果您称为您只需打印乐趣的变量,您只能进行乐趣(x1,x2,x3,x4,x5,x6)评估功能。

如在描述中所述,代码中没有规则化或术语减少启发式。这意味着如果您有条件或相关的变量不佳,则最终可以最终获得0或0。

Rohit Bhagwat.

我有个疑问,

你好,

我得到的是这样的,
@ (x1, x2, x3, x4, x5, x6) + 0。* x6 + -5.5294 e-05。* x6。^ 2 + 1.0186 e-07。* x6。^ 3 + 0。* x5 + -0.00029564。* x5。* x6 + 3.4008 e-07。* x5。* x6。^ 2 + -2.1999平台以及。* x5。* x6。^ 3 + -0.018347 * x5。^ 2 + 1.9021 e-06。* ^ 2 x5。* x6 + -7.7091 e ........................+- 8.0344 e-08。* x4。^ 4 + -9.6951 e-07。* ^ 4 + -1.504平台以及x5。* ^ 4 x6

如果我想用它作为多项式,我该如何处理第一项{@(x1,x2,x3,x4,x5,x6)},第二项是0. * x6,这意味着0 * x6?不是0总是0?

文森特·R

俄勒冈州霍林

艾哈迈克

没有直接的方法来引用这项工作。它只是在我的主要研究中被间接提到。以下是一些选择:

-引用最初需要编写并持续更新此代码8年的论文:https://smartech.gatech.edu/bitstream/handle/1853/58723/cecen-dissertation-2017.pdf.

-引用第一个具体提到这一代码的作品,并简要解释它:https://link.springer.com/article/10.1186/2193-9772-3-8

- 不要引用。链接到此URL,并在您的方法中引用代码说明。沿着“使用Matlab Central alehmet cecen编写的多谷粉,沿着”使用MultipolySegress。“

Saksham领事

你能告诉如何引用这项工作吗?谢谢!

艾哈迈克

两者都不。此代码目前在适合参数本身上没有任何不确定性量化。在您非常简单的情况下,您可以参考下面的链接以查找斜率的不确定性:

https://terpconnect.umd.edu/~toh/models/errorpropagation.pdf.

Laurent Jalabert.

亲爱的艾哈迈克,
非常感谢您的效果。我尝试了一个简单的线性适合实验数据。
我得到了适合Y = AX + B的斜率a和常数b
现在,我需要使用斜率a = -0.71744和误差(标准偏差)。
根据以下结果,我应该认为斜坡上的标准偏差是什么?
maestd = 0.0035或cvmaestd = 0.0044?
斜率应该写成a +/- std

reg =

结构体字段:

FitParameters:'-----------------'
PowerMatrix:[2×1双]
分数:[14×2双]
polynomiaxculess:@(x1)+ 6.9303。* 1 + -0.71744。* x1
系数(2×1双):
传说:[2×2焦点]
yhat(14×1双):
残差(14×1双):
善良:'-----------------'
RSQUARE:0.9999.
Mae:0.0044
Maestd:0.0035
标准化:“一对一(默认)”
LOOCVGoodnessOfFit : '-----------------'
CVRSQUARE:0.9998
CVMAE:0.0052
CVMAESTD:0.0044
cvnormalization:'1-to-1(默认)'

Behnam Amiri.

艾哈迈克

休假一个交叉验证计算是通过谢尔曼 - 莫里森 - 伍德布里公式进行间接完成的,这涉及划分的数字,如果有压倒性过度拟合,那么如果有压倒性的过度拟合,那么可以非常接近零。你是正确的,数字不应小于0,但我没有防止这种边缘案例不稳定,因为它提供了巧妙的衡量标准,这是你的过度拟合。

长话短说,不要使用一个适合与CVRSquare“太不同”(大小留给你的想象)比常规的RSquare。

Nikos Skiadaressis.

艾哈迈尔谢谢!
这是一个很好的工具。
只是一个问题:
当我在示例中尝试使用样本来计算比3更高的型号,CVRSQuare是:

4仅仅:-2.55
5:-9323.04
6:-19991970873.98
7日:-4025574168920490.50
8:-INF.

不应该是阳性和1岁以下的?

艾哈迈克

是的。我鼓励您将此更改作为GitHub中的拉请求提交。否则我会在我有机会时解决它。

尼科布尔格尔曼

改变线186-187来自:
H = QQ * QQ”;
rcv = r ./(1-DIAG(H));

dh = sum(qq。* qq,2);
rcv = r ./(1-DH);

速度速度(并节省内存)

Shukran Sahaar.

伟大的工具!

Nanbo李

yodish.

这是一个很棒的函数

Oleg Boiko

Biplab Satpati.

vina.

我真的希望这个回归方法尝试我的数据。但这种可怕的网页始终失败。有人可以把它发给我吗?我的电子邮件是1034223185@qq.com

vina.

艾哈迈克

我不认为我已经彻底解释了这个代码在出版物中。您可以通过电子邮件发送给我任何特定部分的解释,我的联系信息很容易在线查​​找。否则搜索以下概念:
- 多项式的基础
- 多变量回归
-留下一个交叉验证
——Sherman-Morrison公式
- QR分解(和回归)

卡洛斯·费雷拉

@ahmet cecen你能给我解释方法的论文吗?

穆罕默德ansab Ali.

奥斯卡VITERI

艾哈迈克

一个监督。一有机会就会修好的。

基督教Schroppel

要抑制可能不需要的输出,请向第173行中的表达式添加分号。
eval(['polyexp =',variablesexp,poly,'']);

哈比卜Yajam

快速和容易使用。Matlab缺乏原始版本的这种功能。

哈比卜Yajam

快速和容易使用。Matlab缺乏在其库存发布中的这种功能。

Andra圣昆廷

易于使用。

艾哈迈克

如果您发给我一封电子邮件,我可以使用zip文件回复它。我的联系信息无处不在谷歌我的姓名,或者转到我的帐户。

艾哈迈克

我能够下载这一点。如果您在帐户上有联系信息,我会发送它。

Aurelien Durel

该文件不再可用。
有人可以把它发给我吗?

Easumj.

优秀的代码,我一直在寻找多变量多项式回归工具。

Silpakorn D.

欣怡龚

艾哈迈克

如果您发送给我(在线查找我的联系信息非常容易,包括我的个人资料)可以复制您的情况的数据和参数,我可以调查它。否则很难我寻找随机的错误。

丽塔

嗨谢谢你的函数。我已经尝试了用七个独立的函数,一个依赖变量和一个依赖变量和一个r-squared是0.19,它不高。我可以获得更高的R角吗?当我使用'范围'时,我也有错误。任何建议都将提前欣赏。

卡尔MACEK.

Sagar

嗨,我试图使用该功能,但我的数据里有很多NAN。看起来它无法处理NAN的数据。您能否更新为包括NAN?

艾哈迈克

多维

摩根

Yuksel Yabansu.

Mahdi Rozbahani.

艾哈迈克

根据要求添加示例。

Matlab释放兼容性
用R2014B创建
兼容任何释放
平台的兼容性
视窗 苹果系统 Linux

社区宝藏狩猎

在MATLAB中心找到宝藏,并发现社区可以如何帮助您!

开始狩猎!