四参数拟合曲线_每周放送|曲线拟合

曲线拟合

No.1

什么是曲线拟合

所谓的曲线拟合,就是使用某一个模型(或者称为方程式),将一系列的数据拟成平滑的曲线,以便观察两组数据之间的内在联系,了解数据之间的变化趋势。

No.2

曲线拟合的应用

在数据分析时,我们有时需要通过已有数据来预测未来数据。在一些复杂的数据模型中,数据维度很多,数据之间的关系很复杂,我们可能会用到深度学习的算法。但是在一些简单的数据模型中,数据之间有很明显的相关性,那我们就可以使用简单的曲线拟合来预测未来的数据。

No.3

模型的优化

根据模型的建立与求解的过程中, 发现拟合的函数表达式有很多, 即使根据可决系数, 显着性检验和系数值稳定等条件, 依然会出现多个表达式。那么这种情况是要选择优化数据和处理, 根据实际情况而处理。函数表达式的系数也决定了函数的灵敏度, 选择原则在不同的问题中根据数据最终结果来处理。

No.4

曲线拟合的方法

Excel曲线工具

假设我们有一组用户生命周期价值(LTV)和天数的对应数据

DayLTV1$0.202$0.353$0.454$0.525$0.576$0.607$0.628$0.63

将数据放进Excel中,插入折线图

dbedd2723a8c001f9b35a972c099311d.png368eb902cc1d93e3859b64b9a04fc780.png

右击蓝色曲线,选择“添加趋势线”,并选择趋势线为“对数”,并勾选“显示公式”

可以看到,曲线图中出现了一条虚线的曲线,并显示了对应的公式为

d3b528cedb366f22a93d45eefa2bfbb1.pngdce8f19eb70c9a4d66a15e1338797289.png

Excel的趋势线工具提供了几个常用的函数,包括指数函数、对数函数等,可以满足一般需求。但是如果数据曲线相对复杂的话,就需要用到下面的工具了。

介绍一个非常好用的在线曲线拟合工具:

http://www.qinms.com/webapp/curvefit/cf.aspx

No.5

Python matplotlib库

Python的matplotlib库有一个自定义公式来拟合曲线的功能。下面代码演示了通过它来拟合上述例子的过程

# -*- coding: UTF-8 -*-

import numpy as np

import matplotlib.pyplot as plt

from scipy import stats

import scipy.optimize as optimization

data_day = [1,2,3,4,5,6,7,8] #x坐标值|x coord

data_ltv = [0.2,0.35,0.45,0.52,0.57,0.6,0.62,0.63] #y坐标值|y coord

xdata = np.array(data_day)

ydata = np.array(data_ltv)

#定义使用的公式|customize equation

def lnFunction(x, A, B):

    return A*np.log(x)+B

guess = [1, 1]  #定义初始A、B|initialize a and b

try:

    params, params_covariance = optimization.curve_fit(lnFunction, xdata, ydata, guess) #拟合,A、B结果存入params|curve fitting and store a, b values to params

    print params

    result = '' #输出结果|to store result

    for i in range(1, 15):

 result += str(round(lnFunction(i, params[0], params[1]), 2))    #将i带入公式中的x,使用拟合出的A、B值计算y值,并保留两位小数|calculate result for each i as x using the a, b values, and round the result to 2 points

        if i != 14:

            result += ','   #每个结果用逗号隔开,并省略最后一个逗号|separate each result with comma, and omit the last comma

    print result

except:

    print ''

输出结果为:

[0.21482987 0.20772681]

0.21,0.36,0.44,0.51,0.55,0.59,0.63,0.65,0.68,0.7,0.72,0.74,0.76,0.77

No.6

曲线拟合公式

在前面的例子中,我们使用了对数函数来进行拟合。在上文提到的在线曲线拟合工具网站中,也列出了一些常见的拟合方程,包括直线、多项式、对数、指数等。其中有一个方程对于拟合自然曲线非常好用,就是四参数方程。

四参数方程的格式为:

c77631efa0290117bef21a7ff4e40834.png

最后

统计学作为一门新兴的学科, 在未来的社会发展中有着举足轻重的意义。拟合方法是一种可以很好的查看出数据趋势的一种方法,同样也可以用在数据近似,差值等方法中。使得数学建模的操作增添新的工具, 极大地提高了数据分析的科学性。

740bee233492d5ad7653e06c09dae2d1.pngc94cc21f34dee322d12dc7612c57192a.gif

文案:竞赛部 董聿铭

排版:张添娇 高歆然

审核:由    月 李天娇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/538308.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spark集群运行jar包程序里的print日志哪里去了?

默认情况下,是输出到stdout里的。 方法一: 进入work所在机器的spark安装目录下的work目录,里面有日志输出。 方法二: 进入spark web ui 里 点击stdout就可以查看,如果没有可能在其他work上。

hibernate oracle clob 注解,Hibernate3.X实现基于CLOB字段类型的注解方式:

一:Hibernate3.X实现基于CLOB字段类型的注解方式的例子:下面直接上代码:二:UserInfo.javapackage cn.gov.csrc.cms.model;import javax.persistence.Basic;import javax.persistence.Column;import javax.persistence.Entity;impo…

Flutter下拉刷新,上拉加载更多数据

下拉刷新 很简单,直接使用 RefreshIndicator 组件, onRefresh 为重新获取数据的方法 Widget build(BuildContext context) {return Scaffold(body: Container(padding: EdgeInsets.all(2.0),child: RefreshIndicator(onRefresh: _refresh,backgroundColo…

qt 批量裁剪图片_照片变素描,不用下载App,好用的在线图片处理及图库

我们要处理图片时,无论是在电脑还是手机上,往往都需要下载软件,但如果你只是临时用一下的话,下载软件难免显得工程有点浩大。下面就推荐几个图片处理网站,打开网页就能用。1、图片处理 funny。pho。to这个网站提供了很…

Intellij IDEA15:建立Scala的Maven项目

原文链接:http://blog.csdn.net/silentwolfyh/article/details/51172369 ------------------------------------------------------------------------------------ 在创建Scala的Maven之前要安装JavaJDK 、 Scala 的JDK 、 Maven配置,请参考下面 Int…

linux临时启动进程命令,Linux常用命令(一)服务控制及优化启动过程

Linux常用命令(一)服务控制及优化启动过程一、Red hat系统开机引导过程1、linux操作系统的引导过程一般包括以下几个阶段:开机自检、MBR引导、GRUB菜单、加载Linux内核、init进程初始化。2、Linux系统中的进程使用数字进行标记,每个进程的身份标记号称为…

linux 解决端口占用

2019独角兽企业重金招聘Python工程师标准>>> 1. netstat -apn|grep 9876 2.kill -9 端口号 --------- java 在linux后台运行的命令 ------------- nohup java -jar demo-shiro-0.0.1-SNAPSHOT.jar >temp.txt & 转载于:https://my.oschina.net/likaixuan0/…

天锋w2019_什么样的商务手机才显得高端?这款天锋W2019可能适合你

不同的人群有不同的需求,不同于普通的手机用户,商务人士所需的手机需要能体现商务人士的身价。商务人士需要带着手机出入各种商务场所,进行会议、谈判、签约等商务事宜,一款普通的手机无法体现商务人士的高端和深度。同时商务人士…

IDEA中 @override报错的解决方法

原文路径:http://www.cnblogs.com/printN/p/6870036.html ------------------------------------ 今天用IDEA导入一个java工程时,碰上一个问题,代码中所有override处标红,并提示:override不支持对接口的实现。 网上百…

Linux目录的可写意味着,Linux权限分析 - osc_h5427nyq的个人空间 - OSCHINA - 中文开源技术交流社区...

在学习Linux的权限之前,我们先来理解几个概念:可读,可写 、可执行Linux的文件和目录有以下三种方式:r 、w 、x:可读,可写 、可执行r-可读(read)w-可写(write)x-可执行(execute)所有者 、所属组 、其他人Linux的文件和目录又可以有…

【深度学习篇】--Windows 64下tensorflow-gpu安装到应用

一、前述 一直以为自己的笔记本不支持tensflow-gpu的运行,结果每次运行模型都要好久。偶然间一个想法,想试试自己的笔记本,结果竟然神奇的发现能用GPU。于是分享一下安装步骤. 二、具体 因为版本之间有严格的对应关系,所以本文就将…

idea中Error:java: Compilation failed: internal java compiler error

Error:java: Compilation failed: internal java compiler error 原因是没有设置好 java compiler,检查下 File-----setting---compiler----java compoler

c#输入三个数选出最大的_C#写一个输入三个整数,按大到小顺序输出的小程序...

满意答案pf481549682013.07.05采纳率&#xff1a;52% 等级&#xff1a;12已帮助&#xff1a;9321人int[] arr new int[3];for (int i 0; i < arr.Length; i){Console.WriteLine("请输入第" (i 1) "个数");arr[i] Convert.ToInt32(Console.Read…

linux查询内核参数命令,Linux内核启动参数详解

1.环境:Ubuntu 16.04Linux linuxidc 4.4.0-89-generic #112-Ubuntu SMP Mon Jul 31 19:38:41 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux2.查看当前linux内核的启动参数:cat /proc/cmdline笔者的输出内容如下:BOOT_IMAGE/boot/vmlinuz-4.4.0-89-generic rootUUIDbef418fa-4202-4…

access注入漏洞

and exists(select from msysobjects) >0 判断是否为access数据库and exists(select from sysobjects) > 0 判断是否为sql server数据库 and exists(select from admin) 查看是否存在admin表 代表所有&#xff0c;可修改字段名order by 数值 判断字段长度,正常则证明字…

java中的Iterator和Iterable 区别

原文&#xff1a;http://perfy315.iteye.com/blog/1459201 ---------------------------------------------------------- java.lang.Iterable java.util.Iterator 来自百度知道&#xff1a; Iterator是迭代器类&#xff0c;而Iterable是接口。 好多类都实现了Iterable接…

linux版本fedora,技术|初级:如何更新 Fedora Linux 系统

本快速教程介绍了更新 Fedora Linux 安装的多种方法。安装 Fedora 之后&#xff0c;我做的第一件事就是尝试安装一些软件。我打开软件中心&#xff0c;发现该软件中心已“损坏”。 我无法从中安装任何应用程序。我不确定我的系统出了什么问题。在团队内部讨论时&#xff0c;Abh…

设计师学习HTML/CSS之路-11

不了解前端的UI不是好美工&#xff0c;以下是慕课网HTMLCSS基础教程学习笔记&#xff0c;不废话&#xff0c;Start! 第12章 CSS布局模型 11-1 元素分类 在CSS中&#xff0c;html中的标签元素大体被分为三种不同的类型&#xff1a;块状元素、内联元素(又叫行内元素)和内联块状元…

yum安装docker No package docker available

一开始以为是阿里的mirror没有这个包。后来才知道&#xff0c;是需要更新下epel第三方软件库 centos6.5运行命令yum install docker.io&#xff0c;发生错误 No package docker available yum没有找到docker包&#xff0c;更新epel第三方软件库&#xff0c;运行命令&#xff1a…

pytorch 对抗样本_【炼丹技巧】功守道:NLP中的对抗训练 + PyTorch实现

本文分享一个“万物皆可盘”的NLP对抗训练实现&#xff0c;只需要四行代码即可调用。盘他。最近&#xff0c;微软的FreeLB-Roberta [1] 靠着对抗训练 (Adversarial Training)在GLUE榜上超越了Facebook原生的Roberta&#xff0c;追一科技也用到了这个方法仅凭单模型 [2] 就在CoQ…