Python例項 線性最小二乘法擬合

2021-09-29 17:50:48 字數 1278 閱讀 8193

#coding:utf-8

'''線性最小二乘擬合

'''from __future__ import division

from scipy import linalg as la

from scipy import optimize

import sympy

import numpy as np

sympy.init_printing()

import matplotlib.pyplot as plt

from pylab import mpl

mpl.rcparams['font.sans-serif'] = ['fangsong'] # 指定預設字型

mpl.rcparams['axes.unicode_minus'] = false # 解決儲存影象是負號'-'顯示為方塊的問題

# 定義模型

x = np.linspace(-1,1,100)

a,b,c = 1,2,3

y_exact = a + b * x + c * x ** 2

# 模擬雜訊

m = 100

x = 1 - 2 * np.random.rand(m)

y = a + b * x + c * x ** 2 + np.random.rand(m)

# 使用最小二乘法對資料進行擬合

a = np.vstack([x ** 0,x ** 1,x ** 2])

sol,r,rank,s = la.lstsq(a.t,y)

y_fit = sol[0] + sol[1] * x + sol[2] * x**2

# 繪製資料

fig,ax = plt.subplots(figsize = (12,4))

ax.plot(x,y,'go',alpha = 0.5,label=u'模擬資料')

ax.plot(x, y_exact, 'k', lw=2, label='真實資料 $y = 1 + 2x + 3x^2$')

ax.plot(x, y_fit, 'b', lw=2, label=u'最小二乘法擬合')

線性最小二乘法

example f x 12 ax b 22 f x frac parallel ax b parallel 2 2 f x 2 1 a x b 22 最小化下式時x的值。首先計算 xf x at a x b ata x at b big down xf x a t ax b a tax a tb ...

線性回歸,最小二乘法

回歸的定義 對於乙個點集,使用乙個函式去擬合該點集,使點集與擬合函式間的誤差最小,如果這個函式曲線是一條直線,則是線性回歸,如果曲線是二次曲線,則是二次回歸。廣義線性回歸 廣義線性模型是線性模型的擴充套件,其特點是不強行改變資料的自然度量,資料可以具有非線性和非恆定方差結構 59 主要是通過聯結函式...

線性最小二乘法推導

最小二乘法在中學時講過。有一些散點有線性的趨勢,用乙個一次函式去擬合,使得差距最小化。對於 x i 採用上述函式計算出的結果記為 hat 即 hat w 1 x i w 0 定義差距為 sum m y i hat 2 現需要最小化這個差距。顯然,上式為關於 w 0 和 w 1 的函式 損失函式 為了...