大家好,欢迎来到IT知识分享网。
(由于不方便上传公式,有部分直接截图)
2. Polyval函数
对应多项式拟合,多项式求值函数也相当重要,可以通过设定向量,快速定义如下多项式
据此,可以大概猜测到polyval调用的形式了
y = polyval(p,x)
如上所述
[y,delta] = polyval(p,x,S)
S即为polyfit函数返回的误差估计,具体delta的数学意义本人暂时不清楚
y = polyval(p,x,[],mu)
[y,delta] = polyval(p,x,S,mu)
结合polyfit的例子,可以尝试将拟合曲线画出来
x = -10 : 0.2 : 10;
y = 0.59*x.*x + 1.4*x+2+2*(rand(1,length(x))-0.5);
plot(x,y,’.’)
[p, S] = polyfit(x,y,2)
yfit = polyval(p,x);
hold on
plot(x,yfit, ‘r’);
结果如下图
1. Fittype函数:满足自定义复杂的拟合公式
使用fittype函数可以自定义拟合函数,可以满足线性拟合和非线性拟合。Fittype函数具有很灵活的配置,基本满足各种复杂场景,有相应的cftool工具箱。这里简要的介绍一下fittype的使用方式
aFittype = fittype(libraryModelName)
Fittype = fittype(expression)
使用如上两种方式,可以使用MATLAB已经实现的拟合算法或者使用自定义的拟合算法(可以引用.m文件),具体算法有‘poly11’,‘poly2’,‘linearinterp’等,具体详见fittype的文档说明。
Fittype = fittype(expression,Name,Value) constructs the fit type with additional options specified by one or more Name,Value pair arguments.
这是常用公式,使用如下
g = fittype(‘a*time^2+b*time+c’,’independent’,’time’,’dependent’,’height’);
可以制定拟合公式,变量和因变量,
g =
General model:
g(a,b,c,time) = a*time^2+b*time+c
使用fittype拟合polyfit例子的数据,如下
ftype = fittype(‘a*x.^2+b*x+c’, ‘independent’, ‘x’, ‘dependent’, ‘y’);
pf = fit(x’,y’,ftype)
结果如下
>> pf =
General model:
pf(x) = a*x.^2+b*x+c
Coefficients (with 95% confidence bounds):
a = 0.5888 (0.585, 0.5927)
b = 1.398 (1.377, 1.418)
c = 2.04 (1.865, 2.216)
给出95%的置信率。
如果x为行向量,则如下报错
Error using fit>iFit (line 127)
X must be a matrix with one or two columns.
结合上述几个函数,我们做一个逻辑回归的sigmoid函数拟合,具体场景见《分类算法之逻辑回归》
x=2:2:20; %月薪
y=[zeros(1,5) ones(1,5)]; %满意度
%简单的线性拟合
p1=polyfit(x,y,1);
%高阶线性拟合
p5=polyfit(x,y,5);
%sigmoid函数拟合
sf=fittype(‘1/(1+exp(-a*(x-10)))’, ‘independent’, ‘x’);
ps=fit(x’,y’,sf)
%拟合结果展示
figure
plot(x,y,’o’)
hold on
xp=linspace(min(x), max(x));
y1=polyval(p1,xp);
y5=polyval(p5,xp);
ys=1./(1+exp(-ps.a*(xp-10)));
plot(xp, y1, ‘r’);
plot(xp, y5, ‘g’);
plot(xp, ys, ‘k’);
hold off
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/24688.html