Ev fiyatları düşecek mi? Ev fiyatlarını tahmin etmek için Keras'ı kullanmayı öğretin! (Kod ile)

Lei Feng Net Not: Bu makale, Lei Feng'in altyazı grubu tarafından derlenen teknik bir blogdur, orijinal metin Derin Öğrenme için Özel Kayıp işlevleri: R için Keras ile Ev Değerlerini Tahmin Etme, Ben Weber tarafından yazılmıştır.

Tercüme | Youyou Lin Xiao Bitirdi | Fan Jiang

Geçenlerde "Derin Öğrenme ve R" okuyordum ve R'nin derin öğrenme desteği beni gerçekten şaşırttı!

Kitapta yer alan uygulama örneklerinden biri de Boston'daki konut fiyatlarını tahmin etmek Bu ilginç bir sorundur çünkü evlerin değeri büyük farklılıklar gösterir. Bu bir makine öğrenimi problemidir ve en çok XGBoost gibi klasik yöntemlere uygulanabilir çünkü veri kümesi algısal olmaktan çok yapılandırılmıştır. Bununla birlikte, bu aynı zamanda bir veri setidir ve derin öğrenme, tahmin modelinin performansını artırabilecek yeni bir kayıp işlevi yazmak olan çok yararlı bir işlev sağlar. Bu makalenin amacı, derin öğrenmenin özel kayıp işlevlerini kullanarak sığ öğrenme sorunlarını nasıl iyileştirebileceğini göstermektir.

Finansal verilerle uğraşırken defalarca karşılaştığım sorunlardan biri, çıktının çeşitli farklı değerlere ve farklı büyüklük sıralarına sahip olabileceği bir tahmine dayalı model oluşturmanın genellikle gerekli olmasıdır. Örneğin, bazıları 100.000 $ ve diğerleri 10 milyon $ değerinde olan konut fiyatları tahmin edilirken bu gerçekleşebilir. Bu problemlerde (doğrusal regresyon veya rastgele orman gibi) standart makine öğrenimi yöntemlerini kullanırsanız, genellikle model, ortalama mutlak hata gibi ölçümleri azaltmak için en yüksek değere sahip örneği geçersiz kılar. Ancak, gerçekten isteyebileceğiniz şey, benzer ağırlıklara sahip numuneleri işlemek ve numuneleri en büyük değere uydurmanın önemini azaltmak için göreceli hata gibi hata ölçütlerini kullanmaktır.

Aslında, bunu doğrusal olmayan en küçük kareler (nls) gibi yazılım paketlerini kullanarak R'de açıkça yapabilirsiniz. Yukarıdaki kod örneği, büyük etiket değerlerine sahip örnekleri aşırı ağırlığa kavuşturacak doğrusal bir regresyon modeli oluşturmak için yerleşik optimize edicinin nasıl kullanılacağını gösterir ve tahmin edilen değerlerin ve etiketlerin logaritmik dönüşümünün nasıl gerçekleştirileceğini açıklar. Örnekler eşit ağırlıkları karşılaştırır. İkinci yöntemle ilgili sorun, modeldeki özelliklerin nasıl kullanılacağını açıkça belirtmeniz gerektiğidir, bu da bir özellik mühendisliği problemi oluşturur. Bu yöntemle ilgili diğer bir sorun, kendi olasılık işlevinizi ve optimize edicinizi yazmadan rastgele orman gibi diğer algoritmalara doğrudan uygulanamamasıdır. Bu, yalnızca günlük dönüşümünü etiketlere ve tüm giriş değişkenlerine uygulamak yerine hata terimini günlük dönüşümünün dışına koymak istediğiniz belirli bir senaryo içindir.

Derin öğrenme, bu tür sorunların üstesinden gelmek için zarif bir çözüm sağlar, özel olasılık işlevleri ve optimize ediciler yazmak yerine, sağlanan farklı optimize edicilerle kullanılabilen farklı yerleşik ve özel kayıp işlevlerini keşfedebilirsiniz. . Bu makale, Keras kullanırken R'de özel bir kayıp işlevinin nasıl yazılacağını ve farklı veri kümelerinden yararlanmak için farklı yöntemlerin nasıl kullanılacağını gösterecektir.

Aşağıdaki görsel, makalenin önizlemesi olarak kullanacağım kapaktır.Boston konut fiyatı veri setinde eğitilmiş dört farklı Keras modelinin eğitim geçmişini gösterir. Her model farklı bir kayıp işlevi kullanır, ancak aynı performans indeksi, yani ortalama mutlak hata üzerinde değerlendirilir. Orijinal veri seti için, özel bir kayıp fonksiyonu modelin performansını iyileştirmeyecektir, ancak değiştirilen veri setine dayalı olarak sonuçlar daha tatmin edicidir.

Orijinal konut fiyatı veri setinde 4 zarar fonksiyonu gerçekleştirin. Tüm modeller, performans göstergesi olarak MAE'yi kullanır.

Derin öğrenme ile sığ problemlerin iyileştirilmesi

Derin öğrenmenin önemli bir özelliği, algısal verilerin (ses ve video gibi) derin sorunlarına ve yapılandırılmış verilerin sığ sorunlarına uygulanabilmesidir. Yüzeysel öğrenme (klasik makine öğrenimi) problemleri için, yararlı bir sinyal sağlamak için özel bir kayıp işlevi kullanarak genellikle sığ yöntemin gelişimini görüntüleyebilirsiniz.

Ancak, tüm sığ problemler derin öğrenmeden yararlanamaz. Farklı büyüklüklerdeki veriler için tahminler oluşturması gereken regresyon modelleri oluştururken özel kayıp işlevlerinin çok yararlı olduğunu görüyorum. Örneğin, değerlerin önemli ölçüde değişebileceği bir bölgede konut fiyatlarını tahmin edin. Uygulamada nasıl çalıştığını göstermek için, Keras tarafından sağlanan Boston konut veri setini kullanacağız:

Veri kümesi-Keras dosyası

Veri seti, IMDB'deki etiketlerle (pozitif veya negatif) etiketlenmiş 25.000 film incelemesinden geliyor. Yorum işlendi.

Bu veri seti, 1970'lerde Boston banliyösündeki konut fiyatlarını içerir. Her kaydın aileyi tanımlayan 13 özelliği vardır Eğitim veri setinde 404 kayıt ve test veri setinde 102 kayıt bulunmaktadır. R'de, bir veri kümesini şu şekilde yükleyebilirsiniz: dataset_boston_housing. Fiyat dağılımı histogramı, fiyat dağılımının 5.000 ila 50.000 ABD Doları arasında değiştiği solda gösterilmiştir. Orijinal veri kümesindeki farklı fiyat aralıklarının benzer gereksinimleri vardır, bu nedenle özel bir kayıp işlevi, verilerin uydurulması için çok yararlı olabilir. Sağdaki histogram, özel bir kayıp kullanmaktan fayda sağlayan etiket dönüşümünü gösterir. Sağdaki histogram, etiket dönüştürmeden sonraki histogramı gösterir. Bu etiketlere kayıp fonksiyonunu uygulamak daha iyi sonuçlar elde etmenizi sağlar.

Boston veri seti, orijinal fiyatı ve dönüştürülen fiyatı içerir

Fiyatın nasıl dönüştürüleceğini öğrenmek için, etiketi mutlak fiyata çevirdim, sonucun karesini aldım ve sonra büyük bir faktöre böldüm. Bu, en yüksek fiyat ile en düşük fiyat arasındaki farkın 10 kat değil 100 kat olduğu bir veri kümesi üretir. Artık, özel bir kayıp işlevinin kullanılmasından yararlanabilecek bir tahmin sorunumuz var. Bu rakamları oluşturmak için R kodu aşağıda gösterilmiştir.

Keras'ta kayıp işlevi

Keras, derin öğrenme modellerini eğitmek için birçok yararlı kayıp işlevi içerir. Örneğin: mean_absolute_error, değerleri bir dereceye kadar eşit olan veri kümeleri için uygundur. Dönüştürülen konut verileri için daha uygun olabilecek bazı işlevler vardır, örneğin: mean_squared_logarithmic_error. Aşağıdaki, Keras için R tarafından sağlanan kayıp işlevi arabirimidir:

Kayıp işlevi. R, Python'daki fonksiyonları ifade eder.Bu fonksiyonların nasıl çalıştığını gerçekten anlamak için Python'un kayıp fonksiyon kodunu anlamamız gerekir. İncelemek istediğimiz ilk kayıp fonksiyonu, aşağıda tanımlanan ortalama kare hatasıdır. Bu işlev, tahmin edilen değer ile gerçek değer arasındaki farkı hesaplar, ardından sonucun karesini alır (tüm değerleri pozitif yapar) ve son olarak ortalamayı hesaplar. Bu işlevin hesaplamalar için Python ilkelleri değil tensör kullandığını unutmayın. R'de özel bir kayıp işlevi tanımlanırken aynı yöntem kullanılacaktır.

Keşfedeceğimiz bir sonraki yerleşik kayıp işlevi, tahmin edilen değer ile hedef değer arasındaki doğal logaritma farkına dayalı olarak hatayı hesaplamaktır. Burada tanımlanmış ve aşağıda yazılmıştır. Bu işlev, negatif değerlerin günlük işlevine geçirilmediğinden ve klipten sonraki sonucun +1 olduğundan emin olmak için klip işlemini kullanır, bu da tüm logaritmik dönüştürme girişlerinin negatif olmayan sonuçlara sahip olmasını sağlar. Bu fonksiyon, R'de tanımladığımız fonksiyona benzer.

Tartışacağımız iki özel kayıp işlevi, aşağıdaki R kodu pasajında tanımlanmıştır. İlk fonksiyon, ortalama log mutlak hatası (MLAE), logaritmik dönüşümün tahmin edilen değeri ile gerçek değeri arasındaki farkı hesaplar ve ardından hesaplanan sonuçların ortalamasını alır. Yukarıdaki yerleşik işlevlerin aksine, bu yöntem hataları düzeltemez. Yukarıdaki logaritmik fonksiyondan bir başka fark, bu fonksiyonun verilere açık bir ölçek faktörü uygulayarak konut fiyatını (5,50) yerine orijinal değere (5,000 - 50,0000) dönüştürmesidir. Bu yararlıdır çünkü + 1'in tahmin edilen ve gerçek değerler üzerindeki etkisini azaltır.

Python işlevleri gibi, R'nin özel kayıp işlevlerinin de R ilkelleri yerine tensörler üzerinde çalışması gerekir. Bu işlemleri gerçekleştirmek için, arka uca referans almak için arka ucu kullanmanız gerekir. Sistem yapılandırmamda bu, Tensorflow'a bir referans döndürüyor.

İkinci işlev, yerleşik işleve benzer şekilde günlük hatasının karesini hesaplar. Temel fark, klip yerine relu aktivasyon fonksiyonunu kullanmam ve belirli bir konut veri seti için fiyat ölçeklendirme işlemlerini yapmam.

Kayıp fonksiyonunu değerlendirin

Şimdi dört farklı kayıp fonksiyonumuz var Dört farklı kayıp fonksiyonunun performansını değerlendirmek için orijinal veri setini ve dönüştürülmüş konut veri setini kullanmamız gerekiyor. Bu bölümde Keras'ın nasıl kurulacağı, verilerin nasıl yükleneceği, modelleri nasıl derleneceği, modellerin nasıl takılacağı ve performansın nasıl değerlendirileceği anlatılacaktır. Bu bölümün tam kodu Github'da bulunabilir.

Öncelikle derin öğrenme ortamımızı kurmamız gerekiyor. Bu, Keras paketi ve install_keras işlevi aracılığıyla yapılabilir.

Kurulum tamamlandıktan sonra, veri setini yükleyeceğiz ve konut fiyatını değiştirmek için dönüşümümüzü uygulayacağız. Son iki işlem yorumlanabilir ve orijinal fiyatı kullanabilir.

Daha sonra konut fiyatlarını tahmin etmek için bir Keras modeli oluşturacağız. "R ile Derin Öğrenme" de örneğin ağ yapısını kullandım. Ağ, iki tam bağlı katman ve bunların uyarma işlevi relu ve dönüşüm içermeyen bir çıktı katmanı içerir.

Modeli derlemek için optimize ediciyi, kayıp fonksiyonunu ve metriği belirtmemiz gerekiyor. Tüm farklı kayıp fonksiyonları için aynı ölçüyü ve optimize ediciyi kullanacağız. Aşağıdaki kod, kayıp fonksiyonlarının bir listesini tanımlar: İlk yineleme için, model ortalama kare hatasını kullanır.

Son adım, modele uydurmak ve ardından performansı değerlendirmektir. 100 parti kullandım ve her parti boyutu 5 idi ve bölünmüş veriler% 20 oranına göre doğrulama seti olarak kullanıldı. Model eğitim seti üzerinde eğitildikten sonra, modelin performansı test veri setindeki ortalama mutlak hata ile değerlendirilir.

Farklı hasar fonksiyonlarına sahip dört farklı model eğittim ve bu yöntemi orijinal konut fiyatına ve dönüştürülen konut fiyatına uyguladım. Tüm bu farklı kombinasyonların sonuçları aşağıda gösterilmektedir.

Konut fiyatı veri setinin zarar fonksiyonunun performansı

Orijinal veri setinde, kayıp fonksiyonuna logaritmik bir dönüşüm uygulamak, aslında modelin hatasını arttırır. Veriler, büyüklük sırası içinde belirli bir normal dağılıma sahip olduğundan, bu şaşırtıcı değildir. Dönüştürülmüş veri kümeleri için kare günlük hata yöntemi, ortalama kare hata kaybı fonksiyonundan daha iyidir. Bu, veri kümeniz yerleşik kayıp işlevi için uygun değilse, özel bir kayıp işlevinin keşfedilmeye değer olabileceğini gösterir.

Aşağıda, dönüştürülmüş veri setindeki dört farklı kayıp fonksiyonunun model eğitim geçmişi gösterilmektedir. Her model aynı hata ölçüsünü (MAE) kullanır, ancak farklı bir kayıp işlevine sahiptir. Şaşırtıcı bir sonuç, tüm kayıp fonksiyonları için, günlük dönüştürme uygulamasındaki doğrulama hata oranının çok daha yüksek olmasıdır.

Dönüştürülmüş konut fiyatı veri setindeki dört zarar fonksiyonunun her birinin performansını test edin. Tüm modeller, performans göstergesi olarak MAE'yi kullanır.

Derin öğrenme, sığ öğrenme problemleri için yararlı bir araç olabilir, çünkü modelin performansını önemli ölçüde artırabilecek özel kayıp fonksiyonları tanımlayabilirsiniz. Bu, tüm problemler için geçerli değildir, ancak tahmin problemi standart kayıp fonksiyonu ile iyi eşleşmiyorsa faydalı olabilir.

Orijinal bağlantı: https://towardsdatascience.com/custom-loss-functions-for-deep-learning-predicting-home-values-with-keras-for-r-532c9e098d1f

Lei Feng Ağı Lei Feng Ağı

Wei Shen geri döndü! 17 Parlak ayı öldür, seyirciyi taşı! Netizen: Oda arkadaşı nihayet öldü
önceki
Xiaomi Meizu şaşkına döndü! Glory, İnternet cep telefonu devrimine öncülük ettiğini iddia ediyor
Sonraki
2016 Guangzhou Otomobil Fuarı'nın neden bu kadar ilgi çektiğini biliyor musunuz?
Zhaojiaban Baping canlı küçük video? Belki de Benshan Media'nın büyük resmi içindir
Bu ayın en değerli şortları TOP5
Teknolojik değişiklikler asla durmaz. Gelecekte başka hangi insan-bilgisayar etkileşim yöntemlerine sahip olacağız
Bayan diz çöktü ve tavuk yemeyi bitirdi, takım arkadaşları sakinleşemedi! "Shaxian atıştırmalıkları" da ısıyı yakalamaya mı geliyor?
Xu Dongdong Changwen, hindistancevizi hindistan cevizi suyu reklamına yanıt verdi: "Çocukluktan büyümeye kadar içki içmek" dedim, kızlar kendi özelliklerini gösterebilir
İş aramak için görülmesi gerekenler! Birçok yapay zeka şirketi ve girişimiyle röportaj yapın, bu deneyimleri sizinle paylaşın
Alıntılar: Huawei'nin gerçek amiral gemisi sınırsız miktarlarda satışta. Huawei Mate 93399 yuan'dan başlıyor
Yerli cep telefonlarının fiyatları ardı ardına yükseldi, komponentlerin maliyeti dışında en kritik faktör bu!
Eğer ikna etmezsen, sadece çetesin! "Predator" nihai fragmanı ortaya koyuyor, alışveriş evreni avcısı görsel hayal gücünü altüst ediyor
Air Jordan VI Take Flight renk eşleştirme pozlaması, ilham kaynağının MA-1 olduğu ortaya çıktı?
Huawei akıllı bileklik 3e'yi piyasaya sürdü: sıradan yolda "koşmayan" yeni bir tür
To Top