转换数据以拟合模型

当我们引出某个模型的时候,一般都会有一个或者多个未知参数,这时候我们就需要去收集数据,利用我们得到的数据对模型进行拟合,从而确定这些参数.
具体的如何收集数据,对数据点的间距我们在此不进行讨论我们讨论的是,如何利用已得到的可利用的数据来确定我们的模型.
这里我们需要知道一个概念. 绝对偏差

假设我们的模型为 y=f(x) ,对于每一个 f(x) ,它与实际数据之间的纵向偏差,我们称其为 绝对偏差

为了尽可能的使模型接近于实际情况,我们需要将 绝对偏差 减少.具体的可分为两类

  • 极小化拟合函数带来的 绝对偏差和
  • 极小化拟合函数带来的 最大偏差

这样得到的拟合模型,虽然可能在具体的 f(x) 上可能并不与任意一个数据点相等,但是在总体上,这个模型是成功的.他能够在整体上反应出我们想要探究的事物的变化关系.

转换模型

在许多情况下,我们建立的模型 y=f(x) 可能并不容易代入数据进行参数确定,这时候我们可以尝试去改变模型,对模型中的变量进行调整,然后再代入数据对模型进行参数确定.通常我们会将各类曲线模型进行一定的调整变化,使其成为一条直线,最后我们只需要去确定斜率和截距即可.然而模型在进行调整的时候,会损失一定的值,这些值累积起来,可能会导致最终的结局会有相当大的偏差,这点我们最后再进行讨论.
假设现在我们收集到了如下的数据

x1234
y8.122.160.1165

对于上面的数据,我们可以尝试利用 y=Cex 形式的关系来建立模型.但是很明显,这是一条曲线,对于曲线的建模,现在我们难以去精准的确定,这时候我们就需要对模型进行转换.对于这个模型的转换,我们有两种方法.
第一种.我们令 y=Cexlny=x+lnC .同时,我们将源数据转变为下表所示

x1234
lny 2.13.14.15.1

lny=x+lnC 这一模型中, 我们可以简单的算出截距 lnC 为1.1, 所以我们能够得到参数 C=e1.13.0 ,现在我们利用python来对所得的数据进行作图,如下所示,我们发现拟合的结果非常漂亮,大体上能够说明这个模型的准确度相对是比较高的.
拟合结果
第二种方法就比较简单粗暴,我们直接令 ex y 的因变量,所以这也是一条直线,斜率依旧为C ,对数据进行简单的计算,可以得到下表

ex 2.77.420.154.6
y 8.1 22.1 60.1 165

很明显,我们可以看出C=16560.154.620.13.0 ,所以我们利用所得到的数据进行作图,图如下所示,也能够得到一个相对较为精准的模型
模型拟合

总结

从上面这个例子我们能够看出,对于一条曲线的拟合,如果不借助一些相对较为高级的拟合方法,唯一比较可行的方式是变换模型,将模型转换为一条直线,求斜率和截距的难度系数要小的多.
但是既然模型是在转换,那么就存在一个精度损失的问题,精度的损失在小范围内是一个可以忽视的量,但是数量一旦大了起来,精度的损失就会逐渐累积,最后使得我们的模型不再远远的偏离了实际.

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值