Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Melicinkan Keluk dengan Berkesan apabila Berurusan dengan Set Data Bising?

Bagaimana untuk Melicinkan Keluk dengan Berkesan apabila Berurusan dengan Set Data Bising?

Barbara Streisand
Barbara Streisandasal
2024-10-20 15:57:02473semak imbas

How to Effectively Smooth Curves when Dealing with Noisy Datasets?

Melicinkan Keluk dengan Kebisingan Set Data: Panduan Praktikal

Melicinkan keluk untuk set data yang bising ialah cabaran biasa dalam analisis data. Untuk menangani perkara ini, pertimbangkan set data dengan variasi 20% disebabkan oleh hingar:

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

Untuk situasi ini, penapis Savitzky-Golay ialah pilihan yang berkesan. Penapis ini berfungsi dengan memasang polinomial pada tetingkap titik data dan menggunakan polinomial untuk menganggarkan nilai di tengah tetingkap. Tetingkap kemudian dialihkan sepanjang data dan proses berulang, menghasilkan lengkung yang terlicin.

Begini cara untuk melaksanakan penapis Savitzky-Golay dalam Python:

  1. Import yang diperlukan perpustakaan:
<code class="python">import numpy as np
import matplotlib.pyplot as plt</code>
  1. Jalankan penapis Savitzky-Golay pada data:
<code class="python">yhat = savgol_filter(y, 51, 3) # window size 51, polynomial order 3</code>
  1. Visualkan data asal dan lengkung terlicin :
<code class="python">plt.plot(x, y)
plt.plot(x, yhat, color='red')
plt.show()</code>

Lengkung yang terhasil akan lebih licin daripada yang asal sambil mengekalkan isyarat asas.

Nota: Jika anda tidak mempunyai fungsi savgol_filter tersedia, anda boleh memasangnya menggunakan arahan berikut:

pip install scipy

Atas ialah kandungan terperinci Bagaimana untuk Melicinkan Keluk dengan Berkesan apabila Berurusan dengan Set Data Bising?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn