Pythonによるデータのノイズ除去方法
Pythonでデータノイズ除去を行うには、さまざまな手法やライブラリが使えます。以下によく使われる手法をいくつか紹介します。
- 畳み込む
import numpy as np
def moving_average(data, window_size):
window = np.ones(window_size) / window_size
return np.convolve(data, window, mode='same')
- メジアンフィルタ
from scipy.signal import medfilt
def median_filter(data, window_size):
return medfilt(data, kernel_size=window_size)
- ウェーブレット変換:ウェーブレット変換は、信号を周波数分解能の異なる複数のサブ信号に分解するための多次元解析手法です。高周波のノイズサブ信号をフィルタリングすることで、データのノイズ除去が実現されます。PyWaveletsライブラリを使用すると、ウェーブレット変換とノイズ除去を実行できます。
import pywt
def wavelet_denoise(data, wavelet='db4', level=1):
coeffs = pywt.wavedec(data, wavelet, level=level)
coeffs[1:] = (pywt.threshold(coeff, value=0.5*max(coeff)) for coeff in coeffs[1:])
return pywt.waverec(coeffs, wavelet)
以上は3つの一般的なデータノイズ除去手法のサンプルコードですが、具体的な選択やパラメーター調整はデータの特性やニーズに合わせて行う必要があります。