反函数拟合是王者荣耀怎么拜师好友弄的?我能加你好友吗?拜师来了额,我q...

[斯坦福大学公开课:机器学习(二)] 欠拟合与过拟合、逻辑回归 - 简书 [斯坦福大学公开课:机器学习(二)] 欠拟合与过拟合、逻辑回归 欠拟合与过拟合 假设随机变量x∈R,需要预测随机变量y。下面最左边这副图中,显示了函数y=θ0+θ1x对数据集的拟合。通过观察,我们发现数据集并不像是一条直线,因此函数对数据集并没有很好得拟合。 另外,我们给刚才的函数加上一个额外的特征x2,此时y=θ0+θ1x+θ2x2,我们获得了一条对数据集拟合更好的曲线。那么,我们是否就可以就认为加入越多的特征,函数拟合得就越好?上面最右边的图显示了用含有五阶多项式去拟合数据集的结果。我们看到,尽管曲线完美得经过了数据集中的每一个点,但是我们不能因此而断定这就是一个好的预测函数。我们将最左边的图称为欠拟合(underfitting),表示模型并没有很好的捕捉到数据的结构。右边的图,我们将它称为过拟合(overfitting)。 局部加权线性回归(Locally weighted linear regression) 在我们之前的线性回归算法中,为了做出预测,我们需要:1. 调整 θ使得∑i(y(i)-θTx(i))2最小化。2. 输出θTx。 而在局部加权线性回归算法中,我们采用的做法如下:1. 调整θ使得∑iω(i)(y(i)-θTx(i))2最小化。2. 输出θTx。 在这里,ω(i)是一个非负的权值。直觉上,如果ω(i)相对于某个i非常大,那么我们才选取θ的时候,应该尽量让(y(i)-θTx(i))小一点;如果ω(i)很小,那么(y(i)-θTx(i))将会被忽略。 在选取权值时,一个相对比较标准的做法是: 我们注意到,权值取决于我们需要估计的x周围特定的点。若|x(i) - x|很小,那么ω(i)接近于1;若|x(i) - x|很大,ω(i)将会很小。因此,在调整θ的过程中,对于距离查询点(query point)越近的训练样本,将会赋予更高的权重。其中,参数τ控制整个函数的形状,即在训练样本远离查询点的过程中,权重下降的速度。我们将τ称为带宽参数(bandwidth parameter)。 局部加权线性回归是我们看到的第一个非参数算法(non-parametric)。而我们之前看到的线性回归被称为参数学习算法,因为它有若干个固定的参数用来拟合数据。一旦调整好参数并将它们保存,我们再也不需要为将来的预测而保留训练数据。相反,局部加权线性回归在做预测时,需要保留周围所有的训练集。 逻辑回归(Logistic regression) 现在让我们来讨论分类问题。它像是一个回归问题,但是我们需要预测的y值是仅仅是一系列离散的值。目前,我们将关注于二元分类问题,即y只能取两个值,0或者1。比如说,我们想要建立一个垃圾邮件分类器,此时x(i)可能代表一些邮件的特征,当y=1时,邮件属于垃圾邮件;否则y=0。0也被称为负类(negative class),1被称为正类(positive class)。给定一个x(i),相关的y(i)也被称为该训练样本的标签(label)。 我们当然也可以忽略y是一个离散的值这一事实,而采用之前的线性回归来做预测。然而,在当前问题上使用该算法表现相当差,并且线性回归无法使得hθ(x)范围在{0, 1}。 为了修正上述不足,我们将改变hθ(x)的形式: 被称为逻辑函数(logistic function)或者sigmoid函数。逻辑函数的图形如下图所示: 我们观察到当z-&∞,g(z)将趋向于0。当z-&-∞时,g(z)趋向于0。就像之前的做法一样,我们保留x0=1,即 目前,我们将采用上面给出的sigmoid函数。其他函数若能平滑得从0增长到1,同样可以被使用。但是,当我们在后面谈到广义线性模型时,我们将会看到使用sigmoid函数是一种相当自然的选择。在继续开始之前,我们先介绍一个相当有用的特性,当对sigmoid函数进行时: 那么,给定一个逻辑回归模型,如何来调整参数θ?首先我们假设: 上述式子可以形成一种更加紧凑的形式: 假设生成m个训练样本相互独立,我们可以写出关于参数θ的似然函数: 跟之前一样,将它转换为log似然函数: 接下来我们如何最大化似然函数呢?跟之前的线性回归推导过程一样,我们可以使用梯度下降。即: 我们首先使用一个训练样本(x, y),通过对似然函数求导,推导出随机梯度下降法则: 上式中,我们使用了g'(z)=g(z)(1-g(z))。最终得出随机梯度下降法则: 如果比较之前的LMS更新法则,我们发现它们看起来基本一致。但是它们并不属于相同的算法,因为hθ(x(i))现在被定义为一个非线性函数。尽管如此,我们还是惊讶于不同的学习算法竟然会得出相同的更新法则。这是巧合,还是背后隐藏着更深层次的原因?我们将在后面介绍广义线性模型中给出***。excel如何自定义拟合函数?如何分段拟合曲线? excel如何自定义拟合函数?如何分段拟合曲线? 09-03-30 & 你把数据告诉我,我来试试看~~ In Matlab,Use: polyfit(x,y,2) 得到:y=0.005x2 -0.0 你看看这个是否符合你的要求,另外,要看你的数据了,如果你想求y在x=10的时候的值,这个绝对是不可以的,你只能在这个附近做个大致的计算。 我检验的结果也不是很满意, 请登录后再发表评论! 我来试试看~~In Matlab,Use:polyfit(x,y,2)得到:y=0.005x2 -0.0你看看这个是否符合你的要求,另外,要看你的数据了,如果你想求y在x=10的时候的值,这个绝对是不可以的,你只能在这个附近做个大致的计算。 请登录后再发表评论!扫二维码下载作业帮 1.75亿学生的选择 下载作业帮***包 扫二维码下载作业帮 1.75亿学生的选择 用matlab求一个反函数原函数为y=x+(x^2)/(18+6*x-(x^2)-(x^3))用matlab求反函数我求出的结果是f=sym(x+(x^2)/(18+6*x-(x^2)-(x^3)));>> finverse(f)ans =RootOf(z^4 - z^3*(x - 1) - z^2*(x + 7) + z*(6*x - 18) + 18*x,z)里面那个z是什么情况? 扫二维码下载作业帮 1.75亿学生的选择 z就相当于你原来函数里面的x,而x相当于你原来函数的y.&求y=x+(x^2)/(18+6*x-(x^2)-(x^3))的反函数,相当于把上述方程中y当成已知量来求x,那么把方程展开,得到分子是一个关于x的4次多项式:&&&&&& syms x y&&&&&& collect(numden(y-x+(x^2)/(18+6*x-(x^2)-(x^3))),x)&&&&ans =&&&&-x^4+(y-1)*x^3+(y+5)*x^2+(-6*y+18)*x-18*y4次代数方程尽管是可以求解的,但根的表达式极其繁琐,所以用RootOf的方式来表示.你可以对照一下,上面求出来的多项式是不是和你贴出来的结果刚好满足上面说的关系?&如果想求出反函数的确切表达式,可以用下面的命令:&&&&simple(solve(numden(y-x+(x^2)/(18+6*x-(x^2)-(x^3))),x))不妨自己看一下究竟表达式有多繁琐吧. 那这两个式子为什么看着是差个负号的关系?我这里没有学好……所以想多问问~还有个问题想问一下你,如果要画出所求的的反函数图象要怎么写哦?我画出来的是条直线,我觉得不太对…… 1、关于差个负号的问题,你可以这样想,f(x)=0 与 -f(x)=0 的根是不是相同的?2、关于反函数图像,先看一下原函数:&&&&ezplot('x+(x^2)/(18+6*x-(x^2)-(x^3))')&&&&hold on&&&&plot([3 3],ylim,'--m')&很容易证明,x=3是原函数的一个间断点,而对于每个y而言,都(至少)会有两个x与之对应。这样,求反函数就需要明确:求哪个范围的反函数?对于上面所说直接用solve求出来的反函数,可以验证,对任意y,所求出来的4个根,其中总有两个为复数,而另外两个画出来,可以肯定不会是直线。至于你画出来是直线,可能是自变量范围的问题,因为上述函数图像在趋于无穷远时都有渐近线(而且,其实并不需要很大范围就会基本接近直线)。&前面已经说过,用solve求出来的结果并不实用,真正实用的,应该是在一定范围内把曲线用简单函数进行拟合,而具体用什么函数怎样拟合,那就要看你希望求反函数的范围来定了。&这个回答已被选为推荐***,我不确定你是否还能继续追问,至少我知道,一旦提交这次补充回答之后,就不能够再修改了。如果还有问题并且能继续追问,可以继续追问,否则请另外提问之后通过私信告诉我吧。 为您推荐: 其他类似问题 求f(x,y)=x³-y³+3x²-9x的极值令∂f/∂x=3x²+6x-9=3(x²+2x-3)=3(x+3)(x-1)=0,得x₁=-3,x₂=1;再令∂f/∂y=-3y²=0,得y=0;故得驻点M(-3,0);N(1,0);

参考资料

 

随机推荐