Özellik mühendisliği yapmak için (verilerinizi çerçevelemenin daha etkileyici yollarını bulmak) etki alanı bilgisine (verilerinizin ne anlama geldiğine dair bilgi) ihtiyacınız yoktur.
As Tu N. açıkladı , oldukça kolay yararlı olabilecek özellikler "hızlı ve kirli" kombinasyonları bulabilirsiniz. Bir çıkış ve tek bir özelliği verildiğinde , şu dönüşümleri alabilirsiniz: . Dönüşümün yararlılığının hızlı bir kontrolü, arasındaki korelasyonun, arasındaki korelasyondan daha yüksek olup olmadığıdır .yxx'∈ { ex, günlük( x ) , x2, x3, tanh( x ) }{ y, x'}{ y, x }
Korelasyon hakkında uyarı: Korelasyon her şeyi göstermez ve kullandığınız modele (NN veya RF gibi oldukça doğrusal olmayan) ve diğer değişkenlerle etkileşime bağlı olarak, korelasyondaki bir değişiklik hiçbir şey ifade etmeyebilir.
Bununla birlikte, lojistik regresyon gibi basit bir doğrusal model kullanıyorsanız, bu performansın iyi bir göstergesidir. Bununla birlikte, Fokhruz Zaman'ın belirttiği gibi böyle bir dönüşümü değerlendirmenin en iyi yolu , dönüştürülmüş özelliğinizle ve dönüştürülmemiş bir model oluşturmak ve doğrulama hatasının (Çapraz Doğrulama kıvrımlarınızda) nasıl geliştiğini görmek olacaktır.
Tek unsurlu dönüşümleri bu şekilde tespit etmek oldukça kolaydır. Bunlar, girdiniz ve çıktınız arasında daha anlamlı bir ilişkinin farklı bir ölçekte olabileceği birçok veri için geçerlidir. Örnek olarak, Gelir ve "Mutluluk" arasındaki ilişki logaritmik gibi görünmektedir, ancak hiçbir zaman katılımcı gelirinin kaydını doğrudan kaydetmezsiniz.
Özellik kombinasyonlarını bulmak daha zordur. Başlangıç olarak, her 2 özelliğin eklenmesini test etmek istiyorsanız ve özelliğiniz varsa, test edilecek bir dönüşüm sırasına sahipsiniz . Bu tür dönüşümleri bulmak için, probleme doğrusal olmayan bir model (NN veya RF gibi) uygulayabilir ve bunun ne olduğunu öğrenmeye çalışabilirsiniz. Bir NN'deki ara katmanın ne yaptığını belirleyebiliyorsanız, sonucunu önceden hesaplayabilir ve yeni bir özellik olarak ekleyebilirsiniz. Tekrar hesaplaması gerekmeyecek ve muhtemelen yeni bir şey öğrenmeye çalışacaktır.DD2
Bir NN'nin iç temsilini ve hatta Rastgele Ormandaki özellik önemini yorumlamak zor olabilir. Bu amaç için daha kolay ve muhtemelen daha uygun bir yöntem olan model , karar ağaçları ile güçlendirmek olacaktır . Boosting'i uygulayan birçok kütüphane var ve Kaggle yarışmasına katılıyorsanız, XGBoost birçok katılımcı tarafından kullanılıyor gibi görünüyor, bu yüzden tarif edeceğim şey hakkında bazı yardım / öğreticiler bulabilirsiniz.
İlk olarak, sadece kütükler , 1 seviyeli karar ağaçlarını kullanarak yükseltme algoritmanızı çalıştırın . Kütükler çok zayıf, ancak Boosting bunu makul bir model haline getiriyor. Bu sizin temeliniz olarak hareket edecektir. Kullandığınız kütüphaneye bağlı olarak, en çok kullanılan özellikler olan oldukça kolay bir şekilde görüntüleyebilmeniz ve bazı kalıpları tanımlamak için bunları yanıta göre çizmeniz (veya yanıt kategorikse bir histogram yapmanız) gerekir. Bu size iyi bir tek özellik dönüşümü hakkında bir sezgi verebilir.
Ardından, Yükseltme algoritmasını 2 düzeyli karar ağaçları ile çalıştırın. Bu model öncekinden çok daha karmaşık; eğer birlikte alınan iki değişken ayrı ayrı ele alındığında daha fazla güce sahipse, bu model öncekinden daha iyi performans göstermelidir (yine, eğitim hatası açısından değil, doğrulama hatası için!). Buna dayanarak, hangi değişkenin sıklıkla birlikte kullanıldığını çıkarabilmelisiniz ve bu sizi potansiyel çok özellikli dönüşümlere yönlendirmelidir.
İlgili materyallerde, takip edilmesi kolay oldukları için aşağıdaki videoları tavsiye ederim