日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

statemodels 笔记: lowess

發布時間:2025/4/5 编程问答 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 statemodels 笔记: lowess 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

機器學習筆記:局部加權回歸 LOESS_UQI-LIUWJ的博客-CSDN博客

1 基本使用方法

statsmodels.nonparametric.smoothers_lowess.lowess(endog, exog, frac=0.6666666666666666, it=3, delta=0.0, xvals=None, is_sorted=False, missing='drop', return_sorted=True)

LOWESS (Locally Weighted Scatterplot Smoothing) 局部加權回歸

2 參數說明

endog

一維ndarray

觀測點的y值

exog

一維ndarray

觀測點的x值

frac

0到1之間的float型數據

估計每個 y 值時使用的數據比例。(用這個范圍內的點進行局部加權回歸)

it進行幾輪局部加權回歸
delta

float型數據

間隔多少進行一次局部參數回歸(中間的點使用線性插值)

is_sorted

布爾型數據

如果為 False(默認),則數據將在計算 lowess 之前按 exog 排序。 如果為 True,則假定數據已按 exog 排序。 如果指定了 xvals,那么如果 is_sorted 為 True,則也必須對其進行排序。

missing

可用選項為“none”、“drop”和“raise”。

如果為“none”,則不進行 nan 檢查。

如果“drop”,則任何帶有 nan?的觀察都將被刪除。

如果“raise”,則nan會引發錯誤。

默認為“drop”。

return_sorted

布爾型變量

如果為 True(默認),則返回的數組按 exog 排序,并刪除了缺失的(nan 或無限)觀察。

如果為 False,則返回的數組與輸入數組具有相同的長度和相同的觀察序列。

3 返回值

如果 return_sorted 為 True,則返回的數組是二維的,如果 return_sorted 為 False,則返回的數組是一維的。

如果 return_sorted 為 False,則僅返回估計值,并且觀察值將與輸入數組的順序相同。(雖然我實驗出來的也是二維)

4? 工作原理

????????假設輸入數據有 N 個點。 該算法通過根據 x 值,用?frac*N個 最接近的點 (x_i,y_i) ,并使用加權線性回歸估計 y_i 。

???????? (x_j,y_j) 的權值函數是應用于 的三次函數。

????????如果it?> 1,則執行多輪加權局部線性回歸,其中權值函數是二次函數。

????????每次迭代花費的時間與原始擬合大致相同,因此這些迭代很昂貴。

????????當噪聲具有極重的尾部分布時(例如柯西噪聲),多輪迭代是很有用的。

? ? ? ? 對于 具有較少重尾的噪聲,例如 自由度>2 的 t 分布,問題較少。

????????delta 可用于節省計算。 對于每個 x_i,對于比 delta 更近的點,都會跳過回歸。

????????下一個局部加權回歸擬合 x_i 的 delta 范圍內內的最遠點,并且通過在兩個回歸擬合之間進行線性插值來估計其間的所有點。

????????對于大數據(N > 5000),明智地選擇 delta 可以顯著減少計算時間。 一個不錯的選擇是 delta = 0.01 * range(exog)。

5 使用舉例

import numpy as np import statsmodels.api as sm lowess=sm.nonparametric.lowess###數據集 x = np.random.uniform(low = -2*np.pi, high = 2*np.pi, size=500) #[-2Π,2Π]之間的均勻分布,一共500個點 x=np.sort(x) y = np.sin(x) + np.random.normal(size=len(x)) #sin(x),外加一些噪聲z=lowess(y,x,is_sorted=True) z1=lowess(y,x,is_sorted=True,frac=1/3) z2=lowess(y,x,is_sorted=True,it=0) #進行局部加權回歸 擬合import matplotlib.pyplot as plt plt.figure(figsize=(13,5)) plt.plot(y) plt.plot(z[:,-1]) plt.plot(z1[:,-1]) plt.plot(z2[:,-1]) plt.legend(['origin','default(frac=2/3,it=3,delta=0)','(frac=1/3,it=3,delta=0)','(frac=2/3,it=0,delta=0)'])

可以發現,frac越大,越平滑

在這種噪聲不具有長尾的情況下,迭代幾輪影響不大

?

總結

以上是生活随笔為你收集整理的statemodels 笔记: lowess的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。