ホームページ > バックエンド開発 > Python チュートリアル > ノイズの多いデータセットを扱うときに曲線を効果的に滑らかにする方法は?

ノイズの多いデータセットを扱うときに曲線を効果的に滑らかにする方法は?

Barbara Streisand
リリース: 2024-10-20 15:57:02
オリジナル
635 人が閲覧しました

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート