Bilinmeyen özellikler üzerinde özellik mühendisliği nasıl yapılır?


19

Ben bir kaggle yarışmasına katılıyorum. Veri kümesinin yaklaşık 100 özelliği vardır ve hepsi bilinmemektedir (gerçekte neyi temsil ettikleri açısından). Temelde bunlar sadece rakamlardır.

İnsanlar bu özellikler üzerinde birçok özellik mühendisliği yapıyorlar. Birinin bilinmeyen özellikler üzerinde özellik mühendisliğini tam olarak nasıl yapabildiğini merak ediyorum? Birisi lütfen bunu anlamama yardımcı olabilir ve bilinmeyen özellikler hakkında nasıl özellik mühendisliği yapabilirim?

Yanıtlar:


19

Ö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


4

Özelliklerin toplamı gibi farklı özellik kombinasyonları alabilirsiniz: feat_1 + feat_2 + feat_3... veya bunların ürünü. Ya da özellikleri günlüğe veya üstel, sigmoid'e dönüştürebilir veya sayısal özelliği kategorik bir özelliğe dönüştürebilirsiniz. Keşfetmek için sonsuz bir alan.

Çapraz Doğrulama veya Test Seti performansınızı artıran herhangi bir kombinasyon veya dönüşüm ne olursa olsun bunu kullanmalısınız.


2
"Çapraz Doğrulama veya Test Seti performansınızı artıran kombinasyon veya dönüşüm ne olursa olsun, bunu kullanmalısınız" konusunda biraz sorun yaşarım. Bir şey performans metriğinizi geliştirene kadar körü körüne denemek, mantıklı olmayan ve aşırı sığmaya neden olan bir ilişki keşfetmeye neden olabilir. Bu, yoldaki yeni gözlemlerdeki performansa gerçekten zarar verebilir.
Hersheezy

1

Aşağıdaki ifadenizle ilgili spesifik örneklerle daha fazla açıklayabilir misiniz?

The dataset has around 100 features and all are unknown (in terms of what actually they represent). Basically they are just numbers.

Veri Kümenizi ve verilen özellikleri iyi anlamadan Özellik Mühendisliği'ni nasıl yapabileceğinizden emin değilim !!

Tablo verileri, değişkenlerden veya niteliklerden (sütunlar) oluşan gözlemler veya örnekler (satırlar) olarak açıklanır. Bir özellik bir özellik olabilir.

"Bir özellik fikri, bir nitelikten ayrı olarak, bir sorun bağlamında daha mantıklıdır. Bir özellik, sorununuz için yararlı veya anlamlı bir özelliktir. modellenmekte olan sorun. ... ... ...

Bilgisayar görüşünde bir görüntü bir gözlemdir, ancak bir özellik görüntüdeki bir çizgi olabilir.

Doğal dil işlemede, bir belge ya da bir tweet bir gözlem olabilir ve bir cümle ya da kelime sayısı bir özellik olabilir.

Konuşma tanımada, bir ifade bir gözlem olabilir, ancak bir özellik tek bir kelime veya fonem olabilir. "

Daha fazla bilgi için lütfen aşağıdaki URL'yi ziyaret edin:

Özellik Mühendisliğini, Özelliklere Nasıl Mühendislik Yapılır ve Nasıl İyileştirilir


OP'nin durumundaki özellikler, alan bilgisinin kullanılamayacağı noktaya anonimleştirilmiştir. Bu, Kaggle yarışmalarında oldukça yaygındır, ancak özellik mühendisliğinin sınırlı formları hala mümkündür. Genellikle yeni özellikler, üretimlerini yönlendirmek için konu bilgisini kullanmak yerine, toplu olarak oluşturulur ve daha sonra test edilir. Bir örnek: kaggle.com/c/bnp-paribas-cardif-claims-management/data
Neil Slater

Neil'in dediği gibi, özellikler anonimleştirilmiş, bu ifademden kastettiğim şey bu.
user2409011
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.