四參數擬合曲線_每周放送|曲線擬合

曲線擬合

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.pswp.cn/news/538308.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/538308.shtml
英文地址,請注明出處:http://en.pswp.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…