首頁 >後端開發 >Python教學 >處理雜訊資料集時如何有效平滑曲線?

處理雜訊資料集時如何有效平滑曲線?

Barbara Streisand
Barbara Streisand原創
2024-10-20 15:57:02627瀏覽

How to Effectively Smooth Curves when Dealing with Noisy Datasets?

使用資料集雜訊平滑曲線:實用指南

雜訊資料集的平滑曲線是資料分析中的常見挑戰。為了解決這個問題,考慮一個由於雜訊而有 20% 變化的資料集:

import numpy as np
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x) + np.random.random(100) * 0.2

對於這種情況,Savitzky-Golay 濾波器是一個有效的選擇。此濾波器的工作原理是將多項式擬合到資料點窗口,並使用多項式來估計窗口中心的值。然後視窗沿著資料移動,重複該過程,得到平滑的曲線。

以下是如何在Python 中實作Savitzky-Golay 過濾器:

  1. 匯入必要的函式庫:
<code class="python">import numpy as np
import matplotlib.pyplot as plt</code>
  1. 對資料🎜>對資料運行Savitzky-Golay 過濾器:
<code class="python">yhat = savgol_filter(y, 51, 3) # window size 51, polynomial order 3</code>
  1. 可視化原始資料和平滑曲線:
<code class="python">plt.plot(x, y)
plt.plot(x, yhat, color='red')
plt.show()</code>

產生的曲線將比原始曲線更平滑,同時仍保留基礎訊號。

注意:如果您沒有savgol_filter 功能可用,您可以使用以下命令安裝它:

pip install scipy

以上是處理雜訊資料集時如何有效平滑曲線?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn