Gaz tüketimi aykırı değerleri tespiti - Sinir ağı projesi. Kötü sonuçlar


10

Bazı Hollandalı binaların enerji gazı tüketimindeki nöral ağ modeli oluşturarak aykırı değerleri tespit etmeye çalıştım. Çok kötü sonuçlar aldım, ama sebebini bulamıyorum.

Ben uzman değilim, bu yüzden size neyi geliştirebileceğimi ve neyi yanlış yaptığımı sormak istiyorum. Bu tam açıklamadır: https://github.com/denadai2/Gas-consumption-outliers .

Sinir ağı Geri Yayılan bir FeedFoward Ağıdır. Açıklandığı gibi burada ben 41'000 satır, 9 özellikleri bir "küçük" veri kümesindeki veri kümesi parçaya ayrıldı ve daha fazla özellik eklemek için çalıştı.

Ağları eğittim ama sonuçların 14.14 RMSE'si var, bu yüzden gaz tüketimlerini o kadar iyi tahmin edemiyorum, art arda iyi bir aykırı değer tespit mekanizması çalıştıramıyorum. Bazı gazetelerde, elektrik enerjisinde günlük veya saatlik tüketimi tahmin etseler bile, MSE = 0.01 gibi hatalara sahip olduklarını görüyorum.

Neyi geliştirebilirim? Neyi yanlış yapıyorum? Açıklamama bir göz atabilir misiniz?


2
Ne demek istiyorsun, kötü sonuçlar? Sürecinizi, sonuçlarınızı ve bunların yalnızca git deposuna bağlanmak yerine beklediğinizden nasıl farklı olduğunu açıklayın. Aksi takdirde bu tartışma kimseye fayda getirmeyecektir.
Hava

Ayrıca bu doğrudur: D. "Sonuçlar 14.14 RMSE'ye sahip, bu yüzden gaz tüketimlerini o kadar iyi tahmin edemiyorum, arka arkaya iyi bir aykırı değer tespit mekanizması çalıştıramıyorum. Bazı kağıtlarda bunu tahmin etseler bile günlük ya da saatlik elektrik tüketiminde MSE = 0.01 gibi hatalar var. "
marcodena

1
@marcodena Bu bir KG sitesi ve diğerlerinin neyi çözmeye çalıştığınızı bilmeleri gerekiyor, böylece cevapları anlayacaklar ve umarım bunları kendi problemlerinde kullanabilecekler. AirThomas'ın anlamı budur ve ayrıca ne yaptığınızı ve tam olarak neyin yanlış olduğunu düşündüğünüzü açıklamanızın iyi olmasının nedeni de budur. Git-hub sayfanızın bağlantısı değişirse, buradaki bağlantı geçersiz olur ve diğerleri sorunun ne olduğunu anlayamaz. Lütfen, sorunuzu bağımsız hale getirmek için bir dakikanızı ayırın. Teşekkürler.
Rubens

1
Sorununuzun açıklanmasının çok uzun zaman aldığını gördüğünüzde, sorunuzu başkalarına açıklamak için zaman ayırmanız, araştırmalarınızı / girişimlerinizi açıkça ve bol miktarda ayrıntı ve tartışmayla harcamanız çok önemlidir . Genellikle bu süreçte cevapların bir kısmını veya tamamını kendiniz bulacaksınız. Sadece ne bulmayı başkalarına yararlı olup olmadığını harika bir duygu, yine de çok fazla zaman harcamak bu soruyu gönderebilir yani ve cevap (ler) ile geldi.
Hava

1
Sadece bir açıklama, "bazı makalelerde MSE = 0.01 gibi hataları var" dediğinizde, kullandığınız veri kümesine mi atıfta bulunuyorsunuz? Yoksa tamamen farklı bir veri seti mi?
insys

Yanıtlar:


8

Sadece bir fikir - verileriniz son derece mevsimsel: günlük ve haftalık döngüler oldukça algılanabilir. Her şeyden önce, değişkenlerinizi (gaz ve elektrik tüketimi, sıcaklık ve güneş radyasyonu) parçalamaya çalışın. İşte R için zaman serisi ayrışması hakkında güzel bir eğitim.

Trend ve mevsimsel bileşenler elde ettikten sonra en ilginç kısım başlar. Bu sadece bir varsayımdır, ancak bence, gaz ve elektrik tüketimi değişkenleri zaman serisi analizi (örneğin ARIMA modeli ) ile oldukça öngörülebilir olacaktır . Benim açımdan, buradaki en çıkış kısmı, mevcut verileri (sıcaklık anomalileri, güneş radyasyonu, rüzgar hızı) kullanarak ayrışma sonrası kalıntıları tahmin etmeye çalışmaktır. Sanırım, bu artıklar aykırı olacaktı. Umarım bunu faydalı bulacaksınız.


3

Eğitim not defterinizde 20 dönemlik eğitim sonuçları sunarsınız. Performansınızı etkileyip etkilemediğini görmek için bu parametreyi değiştirmeyi denediniz mi? Bu, geri yayılma için önemli bir parametredir.

Model parametrelerini tahmin etmek için, kullanıcı tomaskazemekas'ın işaret ettiği gibi, Öğrenme Eğrileri'ni çizmek çok iyi bir yaklaşımdır. Buna ek olarak, model parametresini (örn. Egzersiz dönemleri veya gizli katman boyutu) ve Eğitim ve Doğrulama hatasına karşı bir çizim de oluşturabilirsiniz. Bu, sapma / sapma dengesini anlamanıza ve parametreleriniz için iyi bir değer seçmenize yardımcı olur. Bazı bilgileri burada bulabilirsiniz . Doğal olarak, (üçüncü) bir Test seti için verilerinizin küçük bir yüzdesini korumak iyi bir fikirdir.

Bir yan not olarak, modelinizdeki nöron sayısını arttırmanın RMSE'niz için önemli bir gelişme göstermediği görülmektedir. Bu, daha basit bir modelle, yani daha az nöronla da deneyebileceğinizi ve modelinizin nasıl davrandığını görebileceğinizi gösterir.

Aslında, (daha önce yapmadıysanız) önce birkaç parametre içeren veya hiç parametre içermeyen basit bir model denemenizi öneririm, örneğin Doğrusal Regresyon ve sonuçlarınızı tıpkı bir sağlık kontrolü gibi literatürle karşılaştırın.


A LOT modelini geliştirdikten sonra bazı grafikler ekledim. Github'da yeni adımlar var. Size bir zaman serisi probleminde doğrusal regresyonu nasıl uygulayabileceğimi sorabilir miyim? :(
marcodena

2

Buradaki asıl sorun, anomali tespit algoritmalarını uygulamaya başlamadan önce bile, sinir ağlarını kullanarak gaz tüketimine dair yeterli tahmin almamanızdır.

Buradaki ana amaç, anomali algılama algoritmalarının kullanılabileceği aşamaya ulaşmak ve bu sorun için doğrusal regresyonun başarılı uygulama örneklerine erişiminiz olduğunu belirtirseniz, bu yaklaşım daha verimli olabilir. Başarılı makine öğrenimi uygulamasının ilkelerinden biri, sonuçlara dayanarak nihai seçimden önce birkaç farklı algoritmanın denenebilmesidir.

Sinir ağı performansınızı, öğrenme eğrinizi ayarlamayı seçersiniz , farklı hiperparametrelerdeki değişimin hata oranı üzerindeki etkisini gösteren kullanılabilir. Değiştirilebilen hiperparametreler şunlardır:

  • özellik sayısı
  • polinom sırası
  • düzenleme parametresi
  • ağdaki katman sayısı

En iyi ayarlar, çapraz doğrulama setindeki performansla seçilebilir.


Bazı grafikler ekledim ve şimdi parametreleri de kontrol edebilirsiniz :)
marcodena

2

Not defterlerinizde sinir ağı modelinizi görmedim, hangi kütüphanenin kullandığını, kaç katmanınız olduğunu ve ne tür sinir ağı kullandığınızı gösterebilir misiniz?

Dizüstü bilgisayarlarınızda, sinir ağını eğitmek için gürültülü ve aykırı veri kümesini kullandığınız anlaşılıyor, sinir ağını, herhangi bir aykırı olmayan veri kümesinde eğitmelisiniz, böylece gözlemin mesafesinden gözlem mesafesini görebileceksiniz Sinir ağını gözlemi aykırı olarak ya da dışına etiketlemek için.

Yazdığım birkaç ait şeyler sobach söz ve sinyal genel eğilim almak için FFT (yukarıdaki ilk linki) de kullanabilir gibi veriler oldukça mevsimsel olduğunu, zaman serileri sinyalleri aykırı değerleri algılamayı. Gaz tüketiminde frekans bileşenini aldıktan sonra, aykırı değerleri elde etmek için yüksek frekans bileşenlerine bakabilirsiniz.

Ayrıca, mevsimsel veriler için sinir ağını kullanmakta ısrar etmek isterseniz, tekrarlayan sinir ağlarını kontrol etmek isteyebilirsiniz, çünkü geçmiş gözlemleri bir vanilya sinir ağından daha iyi dahil edebilirler ve sözde sahip olduğunuz veriler için daha iyi bir sonuç sağlayabilirler. .


FFT yönteminizi denedim ancak verilerimle frekans eşiğini ve genliğini nasıl ayarlayacağımı gerçekten anlamıyorum.
Bakmaya

Kaynakları da ekledim
Marcodena
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.