Modele yeni bir fark (z = x1-x2) özelliği eklemeli miyim?

Aug 17 2020

Son zamanlarda şu soruyu düşünüyorum: Ham özelliklerin farklılıklarına göre yeni özellikler eklemeli miyim?

Ayar

50.000 veriye ve 20 özelliğe sahip olduğumu ve bunun bir regresyon görevi olduğunu varsayalım. Veri bilimi pratiğinde, genellikle ham özelliklere dayalı yeni özellikler ekleriz. Bununla birlikte, modelimize yeni bir z (z = x1 - x2) özelliğini ne zaman eklememiz gerektiğini bilmiyorum .

My Throughts

Anladığım kadarıyla, özellik modellere atılacağından, bir özelliğin iyi çalışıp çalışmadığı hem özelliğe hem de modele bağlıdır.

Doğrusal regresyonu örnek olarak alalım:

head(mtcars)
fit1 = lm(mpg~ cyl+disp +hp +vs, data = mtcars)
summary(fit1)$adj.r.squared

data_add = cbind(mtcars,'c1' = mtcars$disp - mtcars$hp)
fit2 = lm(mpg~ cyl+disp + hp +vs + c1, data = data_add)
summary(fit2)$adj.r.squared
summary(fit2)

add_noise <- function(n){
  res = NULL
  for(i in 1:n){
    data_add_noise = cbind(mtcars,'c1' = mtcars$disp - mtcars$hp + rnorm(nrow(mtcars),0,1))
    fit3 = lm(mpg~ cyl+disp + hp +vs + c1, data = data_add_noise)
    res = c(res,summary(fit3)$adj.r.squared)
  }  
  return(mean(res))
}
add_noise(10000)

Çıktılar:

> summary(fit1)$adj.r.squared
[1] 0.7359967
> summary(fit2)$adj.r.squared
[1] 0.7359967
> add_noise(10000)
[1] 0.7359121

Doğrusal regresyonda, modelimize z = x1-x2 koyarsak, tekil bir tasarım matrisi elde ederiz, bu da R'nin katsayıları uydurmak için z'yi kullanmayacağı anlamına gelir. Diğer bir deyişle, yeni z özelliği model performansımıza herhangi bir artış sağlamayacaktır.

Modelimizde z = x1- x2 + rnorm (n = 1, ortalama = 0, sd = 1) kullanırsak, modelimize ek gürültü eklediğimiz için model performansımızı düşüreceğiz.

Bununla birlikte, lgbm / xgboost / rf modellerini kullanırsak, ağaç modeli düğümleri bilgi kazancı / bilgi kazanım oranı / gini kirliliğine göre böldüğünden, yeni özelliğimiz z = x1 - x2 model performansımıza yardımcı olabilir.

Özet

Yeni fark özelliğimizi (z = x1- x2) modelimize eklememiz gerekip gerekmediği, kullandığımız modele bağlıdır. Diğer fikirleri gördüğüm için çok minnettar olacağım!

Yanıtlar

5 Sycorax Aug 17 2020 at 20:26

Doğrusal bir modelin tanımlayıcı özelliği doğrusal olmasıdır. Bu, sonucun$y$gürültüsüz özelliklerin doğrusal bir fonksiyonu olarak modellenmiştir$x_1, x_2$.

$$ y = \beta_0 + \beta_1 x_1 + \beta_2 x_2+ \epsilon $$

Gürültüsüz bir özellik eklediğimizi varsayalım $x_3=x_1 - x_2$. Bu modelin nasıl ifade edildiğine bakarsak, bunun bizim orijinal modelimizden hiçbir farkı olmadığı aşikar olmalıdır. $$\begin{align} y &= \beta_0 + \tilde{\beta}_1 x_1 + \tilde{\beta}_2 x_2 + {\beta}_3 (x_1 - x_2)+ \epsilon \\ y &= \beta_0 + (\tilde{\beta}_1 + {\beta}_3) x_1 + (\tilde{\beta}_2 - {\beta}_3) x_2+ \epsilon \\ y &= \beta_0 + \beta_1 x_1 + \beta_2 x_2+ \epsilon \\ \end{align}$$ Başka bir deyişle, katsayı $x_3$ bu modelde tanımlanmamıştır çünkü tam olarak doğrusal bir kombinasyondur $x_1$ ve $x_2$.

Örneğiniz gürültü kullanıyor $x_3 = x_1 - x_2 + \eta$kimliksizliği önlemek için. Ancak bu, gürültü için bir katsayı eklemek anlamına gelir.$\eta$: $$\begin{align} y &= \beta_0 + \tilde{\beta}_1 x_1 + \tilde{\beta}_2 x_2 + {\beta}_3 (x_1 - x_2 + \eta) + \epsilon\\ y &= \beta_0 + (\tilde{\beta}_1 + {\beta}_3) x_1 + (\tilde{\beta}_2 - {\beta}_3) x_2 + {\beta}_3\eta + \epsilon \\ y &= \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \beta_3 \eta + \epsilon \\ \end{align}$$

Başka bir deyişle, gürültü $\eta$modele sağlanan üçüncü bir özelliktir. Gürültünün aşağıdakilerle ilgisi olmadığı varsayılır:$y$bu yüzden biliyoruz ki gerçek etkisinin $\eta$ açık $y$sıfırdır; dahil olmak üzere$\eta$ muhtemelen tahminlere zarar verecek $\hat{\beta}_3 \neq 0$.

Sonuç : ekleme$x_1-x_2+\eta$ Doğrusal bir regresyon modeline $y$.


Ağaç topluluk modeli (rastgele orman, xgboost) doğrusal değildir: herhangi bir ikili bölünme için, yardımcı düğümler farklı sabit işlevler verir. Bu tür birçok ikili bölünmenin etkisi, özellik uzayını her biri farklı bir tahmine sahip eksen hizalı birkaç dikdörtgene bölmektir.

Rasgele birçok ikili, eksen hizalı bölme, daha basit şekiller kullanarak karmaşık bir sınırı yaklaştırabilir. Klasik örnek, hat üzerinde mükemmel bir doğrusal karar sınırına sahip bir ikili sınıflandırma görevini düşünmektir.$x_1 - x_2 > c$. Bu, çapraz bir bölünme olarak ortaya çıkar . Açıkçası, eksen hizalı tek bir bölme bir köşegene çok iyi yaklaşamaz, ancak birçok eksen hizalı bölme, köşegene keyfi olarak iyi yaklaşabilen bir "merdiven basamağı" şekli oluşturabilirsiniz . Aynı şekilde, logaritma, kuadratik, sinüzoid vb. Gibi yakın ilişkiler için de aynı şey geçerlidir.

Öte yandan, bir özellik eklemek $x_1 - x_2$ özellik kümesi modeli iyileştirebilir, çünkü ikili bir bölünme tam olarak kurtarılabilir $x_1 - x_2 > c$. Bu tür bir özellik mühendisliği, bu özelliğin yararlı olduğunu önceden bildiğinizde modeli geliştirebilir . Öte yandan, rastgele ormanlar veya yükseltilmiş ağaçlar gibi gelişmiş modelleri kullanmanın tüm amacı, tüm özelliklerin sonuçla nasıl ilişkili olduğunu tam olarak bilmediğimizde yararlı işlevleri kurtarmaktır.

Sonuç : ekleme$x_1 - x_2$ modeli geliştirebilirse $x_1 - x_2 > c$ için önemlidir $y$.

Daha fazla bilgi: Rastgele ormanlar ve kement için dönüştürülmüş özellikler sütunları eklemenin sonuçları?