Yardımcı olabilecek başka bir yaklaşım (daha fazla kelime, daha az kod):
Yerel maksimum ve minimumların konumları aynı zamanda birinci türevin sıfır geçişlerinin yerleridir. Sıfır geçişleri bulmak, doğrudan yerel maksimum ve minimumları bulmaktan çok daha kolaydır.
Ne yazık ki, birinci türev gürültüyü "büyütme" eğilimindedir, bu nedenle orijinal verilerde önemli miktarda gürültü mevcut olduğunda, birinci türev en iyi, orijinal veriye bir dereceye kadar yumuşatma uygulandıktan sonra kullanılır.
Düzgünleştirme, en basit anlamıyla, bir düşük geçiş filtresi olduğundan, düzleştirme genellikle en iyi (iyi, en kolay) bir evrişim çekirdeği kullanılarak yapılır ve bu çekirdek şaşırtıcı miktarda özellik koruma / geliştirme yeteneği sağlayabilen "şekillendirme" dir . En uygun çekirdeği bulma süreci çeşitli yollarla otomatikleştirilebilir, ancak en iyisi basit kaba kuvvet olabilir (küçük çekirdekleri bulmak için çok hızlı). İyi bir çekirdek (amaçlandığı gibi) orijinal veriyi büyük ölçüde bozacaktır, ancak ilgili tepe noktalarının / vadilerin konumunu ETKİLEMEZ.
Neyse ki, çoğu zaman uygun bir çekirdek basit bir SWAG ("eğitimli tahmin") aracılığıyla oluşturulabilir. Düzgünleştirici çekirdeğin genişliği, orijinal verilerde beklenen en geniş "ilginç" tepeden biraz daha geniş olmalıdır ve şekli bu tepe noktasına (tek ölçekli bir dalgacık) benzeyecektir. Ortalama koruyan çekirdekler için (herhangi bir iyi yumuşatma filtresi ne olmalıdır) çekirdek elemanlarının toplamı tam olarak 1.00'a eşit olmalı ve çekirdek merkezi etrafında simetrik olmalıdır (yani tek sayıda elemana sahip olacaktır.
Optimal bir yumuşatma çekirdeği (veya farklı veri içeriği için optimize edilmiş az sayıda çekirdek) verildiğinde, yumuşatma derecesi, evrişim çekirdeği ("kazanımı") için bir ölçekleme faktörü haline gelir.
"Doğru" (optimal) yumuşatma derecesinin (evrişim çekirdek kazancı) belirlenmesi bile otomatik hale getirilebilir: İlk türev verilerinin standart sapmasını düzleştirilmiş verilerin standart sapmasıyla karşılaştırın. Etkili yumuşatma değerlerini tahmin etmek için iki standart sapmanın oranının düzgünleştirme kamının derecesindeki değişikliklerle nasıl değiştiği kullanılır. Gerekli olan tek şey birkaç manuel veri çalışması (gerçekten temsili) olmalıdır.
Yukarıda yayınlanan tüm önceki çözümler ilk türevi hesaplar, ancak bunu istatistiksel bir ölçü olarak ele almazlar ve yukarıdaki çözümler düzgünleştirmeyi koruyan / geliştiren özelliği gerçekleştirmeye çalışmaz (gürültünün "üstündeki küçük zirvelere" yardımcı olmak için).
Son olarak, kötü haber: "Gerçek" zirveleri bulmak, gürültünün gerçek zirvelere benzeyen özelliklere (örtüşen bant genişliği) sahip olması durumunda büyük bir acıya dönüşür. Bir sonraki daha karmaşık çözüm, genellikle bitişik "gerçek" zirveler arasındaki ilişkiyi (zirve oluşumu için minimum veya maksimum oranlar gibi) hesaba katan daha uzun bir evrişimli çekirdek ("daha geniş bir çekirdek açıklığı") kullanmak veya birden çok kullanmaktır. evrişim, farklı genişliklere sahip çekirdekler kullanılarak geçer (ancak yalnızca daha hızlıysa: sırayla gerçekleştirilen doğrusal evrişimlerin her zaman tek bir evrişime dönüştürülebileceği temel bir matematiksel gerçektir). Ancak, ilk önce bir dizi yararlı çekirdek (çeşitli genişliklerde) bulmak ve bunları bir araya getirmek, nihai çekirdeği tek bir adımda doğrudan bulmaktan çok daha kolaydır.
Umarım bu, Google'ın (ve belki de iyi bir istatistik metninin) boşlukları doldurmasına izin verecek kadar bilgi sağlar. Keşke çalışılmış bir örnek veya bir bağlantı sunacak zamanım olsaydı. Çevrimiçi olarak biri gelirse, lütfen buraya gönderin!