"Overfitting" in ne anlama geldiğini anlıyorum ama overfitting için geçerli olan gerçek dünyadan bir örnek ile nasıl karşılaşacağım konusunda yardıma ihtiyacım var.
"Overfitting" in ne anlama geldiğini anlıyorum ama overfitting için geçerli olan gerçek dünyadan bir örnek ile nasıl karşılaşacağım konusunda yardıma ihtiyacım var.
Yanıtlar:
İşte xkcd'den cumhurbaşkanlığı seçim zamanı serisi modellerine güzel bir örnek :
Sadece 56 cumhurbaşkanlığı seçimi ve 43 cumhurbaşkanı seçildi. Bu, öğrenilecek çok fazla veri değil. Tahmini boşluk, yanlış dişlere sahip olmak ve isimlerin Scrabble nokta değeri gibi şeyleri içerecek şekilde genişlediğinde, modelin verilerin genelleştirilebilir özelliklerine (sinyal) uydurmaktan ve gürültüyü eşleştirmeye başlaması oldukça kolaydır. Bu olduğunda, tarihsel verilere uygunluk gelişebilir, ancak model gelecekteki cumhurbaşkanlığı seçimleri hakkında çıkarımlarda bulunulduğunda sefil bir şekilde başarısız olacak.
En sevdiğim zamana karşı ABD nüfus sayımı popülasyonunun Matlab örneği:
(En azından içtenlikle bunun biraz abartılı bir örnek olduğunu umuyorum )
http://www.mathworks.com/help/curvefit/examples/polynomial-curve-fitting.html#zmw57dd0e115
Chen ve ark. (2013), enlemin bir fonksiyonu olarak iki kübikten beklenen yaşam süreksizlik süresine uyuyor.
Chen Y., Ebenstein, A., Greenstone, M. ve Li, H. 2013. Hava kirliliğine sürekli maruz kalmanın Çin'in Huai Nehri politikasından beklenen yaşam süresi üzerindeki etkisine dair kanıt. Ulusal Bilimler Akademisi'nin Bildirileri 110: 12936-12941. soyut, Özet
Seçkin bir dergide yayınlanmasına rağmen, seçkin insanlar tarafından zımni olarak onaylanmasına rağmen, bunu hâlâ fazla uydurmanın ilk örneği olarak sunacağım .
Bir masal işareti, kübiklerin anlaşılmazlığıdır. Bir kübik yerleştirmek, yaşam beklentisinin yaşadığınız enlemin üçüncü derece polinomu olarak değişmesinin bir nedeni olduğunu varsayar. Bu oldukça mantıklı görünüyor: böyle bir etkiye neden olacak makul bir fiziksel mekanizma hayal etmek kolay değil.
Bu yazının daha ayrıntılı bir analizi için aşağıdaki blog gönderisine de bakınız: Polinom regresyonunun sürekli kullanılmasının nedensel çıkarım üzerindeki etkisine ilişkin kanıt (kömür ısıtmanın ömrünü yarım milyar kişi için 5 yıl azalttığı iddiası) .
Bir de 14 Mart 2014 makalesinde Bilim David Lazer Ryan Kennedy, Gary King, ve Alessandro Vespignani sorunlar tespit Google Grip Trendleri onlar overfitting yükledikleri.
Aşırı uydurmanın doğasını ve algoritmanın neden başarısızlığa neden olduğunu açıklamaları da dahil olmak üzere hikayeyi nasıl anlattıklarını şöyle açıklar:
Şubat 2013’te ... Nature, GFT’nin grip benzeri hastalıklar için doktor ziyaretlerinin (ILI) oranının Hastalık Kontrol ve Önleme Merkezleri’nden (CDC) iki katından fazla olduğunu tahmin ettiğini bildirdi. Bu, GFT'nin CDC raporlarını tahmin etmek için yapıldığı gerçeğine rağmen gerçekleşti. ...
Esasen, metodoloji, 1152 veri noktasına uyacak şekilde 50 milyon arama terimi arasında en iyi eşleşmeleri bulmaktı. Grip eğilimine uyan, ancak yapısal olarak alakasız olan ve dolayısıyla geleceği tahmin etmeyen arama terimleri bulma olasılığı oldukça yüksekti. Aslında GFT geliştiricileri, griple ilgili olmayan ancak lise basketboluyla ilgili olanlar gibi CDC verileriyle güçlü bir şekilde ilişkili olan mevsimsel arama terimlerini ayıkladığını bildirmektedir. Bu , büyük verilerin az sayıdaki olaya aşırı uyuyor olduğuna dair bir uyarı olmalıydı - veri analizinde standart bir endişe. Özel arama terimlerini atma konusundaki bu geçici yöntem, GFT'nin 2009 yılına ait 2009 influenza A – H1N1 salgınını tamamen kaçırdığı zaman başarısız oldu.
[Vurgu eklendi.]
Birkaç hafta önce bu resmi gördüm ve eldeki soru ile ilgili olduğunu düşündüm.
Dizinin doğrusal olarak yerleştirilmesi yerine, mükemmel uyumu olan ancak net bir şekilde saçma bir cevapla sonuçlanan kuartik bir polinomla donatıldı.
Bana göre en iyi örnek astronomide Ptolemaik sistemdir . Ptolemy, Dünya'nın evrenin merkezinde olduğunu ve gökyüzündeki nesnenin hareketlerini oldukça iyi açıklayacak olan sofistike bir iç içe dairesel yörünge sistemi yarattığını varsaydı . Gökbilimciler, sapmayı açıklamak için çevreler eklemeye devam etmek zorunda kaldılar, bir gün o kadar toplanıncaya kadar millet şüphe etmeye başladı. O zaman Copernicus daha gerçekçi bir model buldu.
Bu bana aşırı giyinmenin en iyi örneği. Veri oluşturma işlemini (DGP) verilere dahil edemezsiniz. Sadece belirtilmemiş modelin üzerini kapatabilirsiniz. Sosyal bilimlerdeki modellerimizin neredeyse hepsi yanlış tanımlanmıştır, bu yüzden kilit nokta bunu hatırlamak ve onları enerjik tutmaktır. Veri setinin her yönünü yakalamaya çalışmak değil, temel özellikleri basitleştirerek yakalamaya çalışın.
Diyelim ki grafikte 100 nokta var.
Söyleyebilirsiniz: hmm, bir sonrakini tahmin etmek istiyorum.
İşte bu örnek için basitleştirilmiş bir örnek görebilirsiniz:
Polinom düzeni ne kadar yüksek olursa, mevcut noktalara o kadar iyi uydurur.
Bununla birlikte, yüksek dereceli polinomlar, noktalar için daha iyi modeller gibi görünse de, aslında bunlara uymuyor. Gerçek veri dağılımından ziyade gürültüyü modellemektedir.
Sonuç olarak, grafiğe mükemmel bir şekilde oturan eğrinizle yeni bir nokta eklerseniz, daha basit bir düşük dereceli polinom kullanmanıza göre eğriden daha uzakta olacaktır.
Fukushima felaketine katkıda bulunabilecek olan analiz, fazla uydurma örneğidir. Yerbilimi'nde, "daha az" depremlerin gözlenen sıklığı göz önüne alındığında, belli büyüklükteki depremlerin olasılığını tanımlayan iyi bilinen bir ilişki vardır. Bu, Gutenberg-Richter ilişkisi olarak bilinir ve on yıllara uygun düz bir log oluşturur. Reaktörün çevresindeki deprem riskinin analizi (Nate Silver'in mükemmel kitabı "Sinyal ve Gürültü" adlı bu şema) verilerde bir "dolandırıcılık" göstermektedir. Kıvrılmanın göz ardı edilmesi, 9 büyüklüğünde deprem riskinin yıllık riskinin yaklaşık olarak 300'de 1 olduğu tahminine yol açıyor - kesinlikle hazırlanacak bir şey. Ancak, Çift eğimli bir hattın fazladan takılması (reaktörler için ilk risk değerlendirmesi sırasında göründüğü gibi) 13.000 yıldaki risk tahminini yaklaşık 1'e düşürür. Biri, mühendislerin reaktörleri böylesine muhtemel olmayan bir olaya dayanacak şekilde tasarlamamaları için hata yapamadı - ama kesinlikle verileri fazla tutan (ve sonra fazladan hesaplanan) istatistikçilerin hata vermesi gerekiyor ...
“Agh! Pat şirketten ayrılıyor. Nasıl yenisini bulacağız?”
İş ilanı:
Aranıyor: Elektrik Mühendisi. Elektrik Mühendisliği, matematik ve hayvancılık alanlarında derece ile 42 yaşındaki androgynous kişi. Kahverengi saçlı 68 santim boyunda, sol göze bir köstebek olmalı ve kazlara karşı uzun soluklu diatriblere ve 'avukat' kelimesini kötüye kullanmaya yatkın olmalı.
Matematiksel anlamda, fazladan donatmak çoğu zaman gerekenden daha fazla parametreye sahip bir model yapmak anlamına gelir, bu da belirli bir veri setine daha iyi uyumu sağlar, ancak ilgilenilen sınıftan diğer veri kümelerine uymak için gerekli ayrıntıları yakalamadan gereklidir.
Yukarıdaki örnekte, poster konuyla ilgisiz özelliklerden ayırt edememektedir. Sonuçta ortaya çıkan nitelikler muhtemelen zaten iş için uygun olduğunu bildikleri bir kişi tarafından karşılanmaktadır (ancak artık istememektedir).
Bu bir uydurma, ama umarım durumu açıklayacaktır.
örnek 1
set.seed(123)
k <- 100
data <- replicate(k, rnorm(100))
colnames(data) <- make.names(1:k)
data <- as.data.frame(data)
Şimdi, ona doğrusal bir regresyon uygulayalım:
fit <- lm(X1 ~ ., data=data)
Ve işte ilk on tahmincinin bir özeti:
> summary(fit)
Call:
lm(formula = X1 ~ ., data = data)
Residuals:
ALL 100 residuals are 0: no residual degrees of freedom!
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -1.502e-01 NA NA NA
X2 3.153e-02 NA NA NA
X3 -6.200e-01 NA NA NA
X4 7.087e-01 NA NA NA
X5 4.392e-01 NA NA NA
X6 2.979e-01 NA NA NA
X7 -9.092e-02 NA NA NA
X8 -5.783e-01 NA NA NA
X9 5.965e-01 NA NA NA
X10 -8.289e-01 NA NA NA
...
Residual standard error: NaN on 0 degrees of freedom
Multiple R-squared: 1, Adjusted R-squared: NaN
F-statistic: NaN on 99 and 0 DF, p-value: NA
Sonuçlar oldukça garip görünüyor, ama hadi çizelim.
> sum(abs(data$X1-fitted(fit)))
[1] 0
Sıfır, bu yüzden araziler bize yalan söylemiyordu: model mükemmel bir uyum sergiliyor. Ve sınıflandırmada ne kadar kesin?
> sum(data$X1==fitted(fit))
[1] 100
Örnek 2
Bir örnek daha. Biraz daha veri oluşturalım:
data2 <- cbind(1:10, diag(10))
colnames(data2) <- make.names(1:11)
data2 <- as.data.frame(data2)
bu yüzden şöyle görünüyor:
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11
1 1 1 0 0 0 0 0 0 0 0 0
2 2 0 1 0 0 0 0 0 0 0 0
3 3 0 0 1 0 0 0 0 0 0 0
4 4 0 0 0 1 0 0 0 0 0 0
5 5 0 0 0 0 1 0 0 0 0 0
6 6 0 0 0 0 0 1 0 0 0 0
7 7 0 0 0 0 0 0 1 0 0 0
8 8 0 0 0 0 0 0 0 1 0 0
9 9 0 0 0 0 0 0 0 0 1 0
10 10 0 0 0 0 0 0 0 0 0 1
ve şimdi buna doğrusal bir regresyon sığdırmayı sağlar:
fit2 <- lm(X1~., data2)
bu yüzden aşağıdaki tahminleri alıyoruz:
> summary(fit2)
Call:
lm(formula = X1 ~ ., data = data2)
Residuals:
ALL 10 residuals are 0: no residual degrees of freedom!
Coefficients: (1 not defined because of singularities)
Estimate Std. Error t value Pr(>|t|)
(Intercept) 10 NA NA NA
X2 -9 NA NA NA
X3 -8 NA NA NA
X4 -7 NA NA NA
X5 -6 NA NA NA
X6 -5 NA NA NA
X7 -4 NA NA NA
X8 -3 NA NA NA
X9 -2 NA NA NA
X10 -1 NA NA NA
X11 NA NA NA NA
Residual standard error: NaN on 0 degrees of freedom
Multiple R-squared: 1, Adjusted R-squared: NaN
F-statistic: NaN on 9 and 0 DF, p-value: NA
Oldukça açıklayıcı. Örnek 1'i Örnek 2'ye benzer olarak düşünebilirsiniz ancak bir miktar "gürültü" eklenmiş olarak. Yeterince büyük veriye sahipseniz ve bir şeyi “tahmin etmek” için kullanıyorsanız, o zaman bazen tek bir “özellik” sizi bağımlı değişkeninizi iyi tanımlayan bir “kalıbınız” olduğuna ikna edebilir, bu arada sadece bir tesadüf olabilir. In Örnek 2 şey gerçekten tahmin ediliyor, fakat tamamen aynı gelişmeler yaşandı Örnek 1 sadece değişkenlerin değerleri farklı idi.
Gerçek hayattan örnekler
Bunun gerçek örneği, 11 Eylül 2001’de Terörist Saldırıların, Global Bilinç Projesi’nde bilgisayar takma numara üreticilerinin rastgele çizdiği sayılarda “kalıpları” ya da “Moby Dick” te ünlü kişilerin suikastlarıyla ilgili gerçekleri ortaya çıkaran “gizli mesajları” izleyerek tahmin etmektir . ( İncil'deki benzer bulgulardan ilham almıştır ).
Sonuç
Yeterince sıkı bakarsanız, herhangi bir şey için "kalıpları" bulacaksınız. Ancak, bu modeller evren hakkında hiçbir şey öğrenmenize izin vermeyecek ve genel sonuçlara ulaşmanıza yardımcı olmayacaktır. Verilerinize mükemmel şekilde uyacaklar, ancak verilerin kendisinden başka hiçbir şeye sığmayacakları için işe yaramazlar. Herhangi bir makul örnek dışı öngörüde bulunmanıza izin vermezler, çünkü yapacakları şey, verileri tanımlamak yerine taklit etmeleridir.
Gerçek hayatta fazla uyuşmayla sonuçlanan yaygın bir sorun, doğru tanımlanmış bir modelin şartlarına ek olarak, fazladan bir şey daha ekledik: doğru terimlerin alakasız güçleri (veya diğer dönüşümler), alakasız değişkenler veya alakasız etkileşimler.
Doğru belirtilen modelde görünmemesi gereken bir değişken eklerseniz, atlamak istemeyen değişken önyargısını tetiklemekten korktuğunuz için bunu düşürmek istemezseniz, bu çoklu regresyonda olur . Elbette, yanlış yerleştirdiğinizi bilmenin hiçbir yolu yok, çünkü tüm popülasyonu göremiyorsunuz, sadece numunenizi görüyorsunuz, bu yüzden doğru spesifikasyonun ne olduğundan emin olamıyorsunuz. (@Scortchi'nin yorumlarda işaret ettiği gibi, "doğru" model şartnamesi diye bir şey olmayabilir - bu anlamda modellemenin amacı "yeterince iyi" bir şartname bulmaktır; Mevcut verilerden elde edilebileceğinden daha büyük bir şey.) Eğer gerçek dünyaya bir aşırı uydurma örneği istiyorsanız, bu her zaman olur.Tüm potansiyel belirleyicileri bir regresyon modeline atarsınız, başkalarının etkileri bir kez ortaya çıktığında, bunlardan herhangi birinin aslında yanıtla ilişkisi olmazsa.
Bu tip aşırı uyuşma ile iyi haber şu ki, bu alakasız terimlerin dahil edilmesi tahmincilerinizin önyargısını ortaya koymaz ve çok büyük örneklerde alakasız terimlerin katsayıları sıfıra yakın olmalıdır. Ancak, kötü haberler de var: numunenizden gelen sınırlı bilgi artık daha fazla parametre tahmin etmek için kullanıldığından, bunu yalnızca daha az hassasiyetle yapabilir - yani gerçekten ilgili terimlerdeki standart hatalar artar. Bu aynı zamanda, doğru bir şekilde belirlenmiş bir regresyondan elde edilen tahminlerden daha gerçek değerlerden daha fazla olma ihtimalinin yüksek olduğu anlamına gelir, bu da açıklayıcı değişkenleriniz için yeni değerler verildiğinde, fazladan modelden yapılan tahminlerin tahmin edilenden daha az doğru olma eğiliminde olacağı anlamına gelir. doğru belirtilen model.
2010'da 50 ABD eyaleti için log popülasyonuna karşı log GSYİH'nin bir grafiği. 10 durumdan oluşan rastgele bir örnek seçildi (kırmızıyla vurgulandı) ve bu örnek için basit bir doğrusal model ve derece 5 dereceli bir polinom uyuyor. Polinomun, gözlenen verilere düz çizginin yapabileceğinden daha fazla "sıyrılmasını" sağlayan ekstra serbestlik dereceleri vardır. Ancak, 50 bir bütün olarak neredeyse doğrusal bir ilişkiye uymaktadır, bu nedenle polinom modelinin örneklem dışı 40 noktadaki öngörü performansı, özellikle ekstrapolasyon yaparken, daha az karmaşık olan modele kıyasla çok zayıftır. Polinom, daha geniş popülasyon için genelleşmeyen, örneğin rastgele yapısının (gürültüsünün) bir kısmına etkili bir şekilde uyuyordu. Numunenin gözlenen aralığının ötesinde ekstrapolasyonda özellikle zayıftı.bu cevabın bu revizyonu .)
R
require(MASS) #for multivariate normal simulation
nsample <- 25 #sample to regress
nholdout <- 1e6 #to check model predictions
Sigma <- matrix(c(1, 0.5, 0.4, 0.5, 1, 0.3, 0.4, 0.3, 1), nrow=3)
df <- as.data.frame(mvrnorm(n=(nsample+nholdout), mu=c(5,5,5), Sigma=Sigma))
colnames(df) <- c("x1", "x2", "x3")
df$y <- 5 + 2 * df$x1 + rnorm(n=nrow(df)) #y = 5 + *x1 + e
holdout.df <- df[1:nholdout,]
regress.df <- df[(nholdout+1):(nholdout+nsample),]
overfit.lm <- lm(y ~ x1*x2*x3, regress.df)
correctspec.lm <- lm(y ~ x1, regress.df)
summary(overfit.lm)
summary(correctspec.lm)
holdout.df$overfitPred <- predict.lm(overfit.lm, newdata=holdout.df)
holdout.df$correctSpecPred <- predict.lm(correctspec.lm, newdata=holdout.df)
with(holdout.df, sum((y - overfitPred)^2)) #SSE
with(holdout.df, sum((y - correctSpecPred)^2))
require(ggplot2)
errors.df <- data.frame(
Model = rep(c("Overfitted", "Correctly specified"), each=nholdout),
Error = with(holdout.df, c(y - overfitPred, y - correctSpecPred)))
ggplot(errors.df, aes(x=Error, color=Model)) + geom_density(size=1) +
theme(legend.position="bottom")
İşte benim bir sonuçtan elde edilen sonuçlarım, fakat farklı üretilen örneklerin etkisini görmek için simülasyonu birkaç kez çalıştırmak en iyisidir.
> summary(overfit.lm)
Call:
lm(formula = y ~ x1 * x2 * x3, data = regress.df)
Residuals:
Min 1Q Median 3Q Max
-2.22294 -0.63142 -0.09491 0.51983 2.24193
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 18.85992 65.00775 0.290 0.775
x1 -2.40912 11.90433 -0.202 0.842
x2 -2.13777 12.48892 -0.171 0.866
x3 -1.13941 12.94670 -0.088 0.931
x1:x2 0.78280 2.25867 0.347 0.733
x1:x3 0.53616 2.30834 0.232 0.819
x2:x3 0.08019 2.49028 0.032 0.975
x1:x2:x3 -0.08584 0.43891 -0.196 0.847
Residual standard error: 1.101 on 17 degrees of freedom
Multiple R-squared: 0.8297, Adjusted R-squared: 0.7596
F-statistic: 11.84 on 7 and 17 DF, p-value: 1.942e-05
> summary(correctspec.lm)
Call:
lm(formula = y ~ x1, data = regress.df)
Residuals:
Min 1Q Median 3Q Max
-2.4951 -0.4112 -0.2000 0.7876 2.1706
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.7844 1.1272 4.244 0.000306 ***
x1 1.9974 0.2108 9.476 2.09e-09 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.036 on 23 degrees of freedom
Multiple R-squared: 0.7961, Adjusted R-squared: 0.7872
F-statistic: 89.8 on 1 and 23 DF, p-value: 2.089e-09
> with(holdout.df, sum((y - overfitPred)^2)) #SSE
[1] 1271557
> with(holdout.df, sum((y - correctSpecPred)^2))
[1] 1052217
(ve doğru olarak belirtilen modelden daha fazla serbestlik derecesine sahipti, bu yüzden "daha iyi" bir uyum sağlayabilir). Regresyon katsayılarını tahmin etmek için kullanmadığımız ve genel kullanım modelinin ne kadar daha kötü performans gösterdiğini görebildik. Gerçekte doğru belirlenmiş model en iyi tahminleri yapan modeldir. Tahmini performans değerlendirmesini, modelleri tahmin etmek için kullandığımız veri setinin sonuçlarına dayandırmamalıyız. İşte doğru model spesifikasyonu 0'a yakın daha fazla hata üreten, hataların yoğunluğunu göstermektedir:
Simülasyon, ilgili birçok gerçek yaşam durumunu açıkça temsil eder (sadece tek bir tahminciye bağlı olan herhangi bir gerçek yaşam yanıtını hayal edin ve modele yabancı "öngörücüler" eklemeyi düşünün), ancak veri oluşturma işleminde oynayabileceğiniz faydayı vardır , örneklem büyüklükleri, fazla takılan modelin doğası vb. Bu, aşırı uydurmanın etkilerini inceleyebilmenin en iyi yoludur, çünkü gözlemlenen veriler için genel olarak DGP'ye erişiminiz yoktur ve hala inceleyebileceğiniz ve kullanabileceğiniz anlamda "gerçek" verilerdir. İşte denemeniz gereken bazı önemli fikirler:
n <- 1e6
Sigma
. Sadece pozitif (yarı simetrik olmak üzere) kesin tutmayı unutma. Çok kutupluluk özelliğini azaltıp azaltmadığınızı bulmanız gerekir, takılan model oldukça kötü performans göstermez. Ancak, korelasyonlu tahmin edicilerin gerçek hayatta gerçekleştiğini unutmayın.df$y <- 5 + 2*df$x1 + rnorm(n=nrow(df))
df$y <- 5 + 2 * df$x1 + 0.1*df$x2 + 0.1*df$x3 + rnorm(n=nrow(df))
nsample <- 25
nsample <- 1e6
Zayıf etkileri oldukça iyi tahmin edebiliyor ve simülasyonlar karmaşık modelin basit olandan daha iyi performans kestirici gücüne sahip olduğunu gösteriyor. Bu, "fazla uydurma" nın hem model karmaşıklığının hem de mevcut verilerin sorunu olduğunu göstermektedir.Bunu kendim anlamaya çalışırken, gerçek nesneleri tanımlamakla analojiler hakkında düşünmeye başladım, bu nedenle genel fikri anlamak istiyorsanız, alabileceğiniz en "gerçek dünya" olduğunu düşünüyorum:
Birine sandalye kavramını tanımlamak istediğinizi ve böylece buldukları yeni bir nesnenin sandalye olup olmadığını tahmin etmelerini sağlayan kavramsal bir model elde etmelerini istediğinizi söyleyin. Ikea'ya gidip bir sandalye örneği alacak ve bunları iki değişken kullanarak tanımlamaya başlayacaksınız: oturabileceğiniz 4 ayaklı bir nesne. Bu da bir tabureyi, yatağı veya başka pek çok şeyi açıklayabilir. Modeliniz çok az değişkenli karmaşık bir dağıtımı denemek ve modellemek üzereymiş gibi gösterişsizdir - birçok başkan olmayan şey sandalye olarak tanımlanır. Öyleyse, değişken sayısını arttıralım, örneğin nesnenin bir sırtının olması gerektiğini ekleyelim. Artık, sandalyelerinizi tanımlayan oldukça kabul edilebilir bir modeliniz var, ancak yeni bir nesnenin tanımlanmasına izin verecek kadar genel. Modeliniz verileri açıklar ve tahminlerde bulunabilir. Ancak, tüm sandalyelerin siyah veya beyaz olduğu ve ahşaptan yapılmış bir setiniz olduğunu söyleyin. Bu değişkenleri modelinize dahil etmeye karar verdiniz ve aniden plastik sarı bir sandalyeyi sandalye olarak tanımlamayacak. Bu nedenle, modelinize fazla uydurdunuz, genel olarak sandalyelerin özellikleri gibi veri kümenizin özelliklerini eklediniz, (örneğin, "gürültüyü" "sinyal" olarak tanımladıysanız, örneğin rasgele değişimini örnek olarak yorumlayarak bütün "gerçek dünya sandalyeleri" nin bir özelliği). Böylece, numunenizi artırabilir ve bazı yeni malzeme ve renkler eklemeyi ya da modellerinizdeki değişken sayısını azaltmayı umursunuz. t plastik sarı sandalyeyi sandalye olarak tanımlar. Bu nedenle, modelinize fazla uydurdunuz, genel olarak sandalyelerin özellikleri gibi veri kümenizin özelliklerini eklediniz, (örneğin, "gürültüyü" "sinyal" olarak tanımladıysanız, örneğin rasgele değişimini örnek olarak yorumlayarak bütün "gerçek dünya sandalyeleri" nin bir özelliği). Böylece, numunenizi artırabilir ve bazı yeni malzeme ve renkler eklemeyi ya da modellerinizdeki değişken sayısını azaltmayı umursunuz. t plastik sarı sandalyeyi sandalye olarak tanımlar. Bu nedenle, modelinize fazla uydurdunuz, genel olarak sandalyelerin özellikleri gibi veri kümenizin özelliklerini eklediniz, (örneğin, "gürültüyü" "sinyal" olarak tanımladıysanız, örneğin rasgele değişimini örnek olarak yorumlayarak bütün "gerçek dünya sandalyeleri" nin bir özelliği). Böylece, numunenizi artırabilir ve bazı yeni malzeme ve renkler eklemeyi ya da modellerinizdeki değişken sayısını azaltmayı umursunuz.
Bu, daha fazla inceleme altında basit bir analoji ve çözüm olabilir, ancak genel bir kavramsallaştırma olarak çalıştığını düşünüyorum ... Bazı kısımların açıklığa kavuşturulması gerekiyorsa bana bildirin.
Prediktif modellemede, mevcut olan ve gelecekteki verilere genelleştirilebilecek eğilimleri keşfetmek için eldeki verileri kullanmaktır. Modelinize küçük, önemli olmayan bir etkisi olan değişkenleri dahil ederek, bu fikri bırakıyorsunuz. Yaptığınız şey, örnekleminizde gerçek ve temel bir eğilim yerine rastgele gürültü nedeniyle var olan belirli eğilimleri göz önünde bulundurmaktır. Başka bir deyişle, çok değişkenli bir model, sinyali keşfetmek yerine gürültüye uyar.
İşte neden bahsettiğim hakkında abartılı bir örnek. Burada noktalar gözlemlenen veriler ve çizgi bizim modelimiz. Şuna bir bak, ne güzel bir model! Peki, trendi gerçekten keşfettik mi, yoksa sadece gürültüye uygun muyuz? Muhtemelen ikincisi.
Sporda, geçmiş sonuçları açıklamaya yönelik kalıpları gelecekteki sonuçları tahmin etmek için belirsiz ya da en az belirsiz bir güce sahip olmayan faktörlerle açıklamak için kullanılan kalıpları tanımlamak bir tür aşırı uyum şeklidir. Bu "kalıpların" ortak bir özelliği, çoğu zaman çok az sayıda olaya dayanmasıdır, böylece saf şans muhtemelen kalıp için en makul açıklamadır.
Örnekler şunları içerir ("alıntılar" benim tarafımdan yapılır, ancak çoğu kez benzerdir)
Antrenör büyülü kırmızı ceketi giymeye başladığından beri A Takımı tüm X maçlarını kazandı.
Benzer:
Maçlar sırasında kendimizi tıraş olmayacağız, çünkü bu geçmiş X oyunlarını kazanmamıza yardımcı oldu.
Daha az batıl inançlı, ama aynı zamanda fazladan takılma şekli:
Borussia Dortmund, bir önceki Bundesliga deplasman maçını kaybettiği iki golden fazla gol atamayan ve en az bir kere gol atan Ispanya rakibini İspanyol bir rakiple kaybetmedi.
Benzer:
Roger Federer, o yılki Avustralya Açık turnuvasında en azından yarı finallere ulaştığında, Avrupa Şampiyonlarına yaptığı tüm Davis Kupası maçlarını kazandı.
İlk ikisi oldukça açık saçma (en azından benim için). Son iki örnek örneklemde (yani geçmişte) mükemmel şekilde geçerli olabilir, ancak bu "bilginin" Dortmund'u 4 mağlup ettiği takdirde Madrid'i mağlup etme ihtimalini büyük ölçüde etkilemesine izin verecek bir rakibe karşı bahis yapmaktan memnuniyet duyarım: Bir önceki Cumartesi günü Schalke'de 1 veya Federer, o yıl Avustralya Açık'ı kazanmış olsa bile, Djokovic'i yeniyor.
İşte bir "gerçek dünya" örneği, araştırmada birinin karşılaştığı anlamında değil, istatistiki spesifik terimler olmadan gündelik kavramları kullandığı anlamında. Belki de bu şekilde söylenmesi, eğitimi başka alanlarda olan bazı insanlar için daha yararlı olacaktır.
Nadir bir hastalığı olan hastalar hakkında veri içeren bir veritabanınız olduğunu hayal edin. Tıp fakültesi mezunuyum ve bu hastalık için risk faktörlerini tanıyıp tanımayacağınızı görmek istiyorsunuz. Bu hastanede 8 hasta vakası oldu ve onlar hakkında 100 rastgele bilgi kaydı kaydettiniz: yaş, ırk, doğum sırası, ne olursa olsun çocukken kızamık olmuşlar. Ayrıca, bu hastalığı olmayan 8 hastanın verilerini kaydettiniz.
Risk faktörleri için aşağıdaki sezgisel yöntemi kullanmaya karar veriyorsunuz: eğer bir hastalık hastalıklı hastalarınızdan birinde verilen bir değeri alıyorsa, ancak kontrollerinizin 0'ında bir risk faktörü olarak düşüneceksiniz. (Gerçek hayatta daha iyi bir yöntem kullanırsınız, ancak basit tutmak istiyorum). Hastalarınızın 6'sının vejeteryan olduğunu (ancak kontrollerin hiçbirinin vejeteryan olmadığını), 3'ünün İsveçli atalarına sahip olduğunu ve ikisinin kekemeli bir konuşma yetmezliği olduğunu tespit ettiniz. Diğer 97 faktörün dışında, birden fazla hastada ortaya çıkan hiçbir şey yoktur, ancak kontroller arasında mevcut değildir.
Yıllar sonra, başka biri bu öksüz hastalığa ilgi duyuyor ve araştırmanızı çoğaltıyor. Diğer hastanelerle veri paylaşımı olan daha büyük bir hastanede çalıştığı için, 8 vakanızın aksine 106 vaka hakkında veri kullanabilir. Stutterers prevalansının hasta grubunda ve kontrol grubunda aynı olduğunu; kekemelik bir risk faktörü değildir.
Burada olan, küçük grubunuzun rastgele şans eseri% 25 kekemeye sahip olduğu. Sezgiseliniz, bunun tıbbi olarak alakalı olup olmadığını bilmenin hiçbir yolu yoktu. Modele dahil edilebilecek kadar "ilginç" verilerinde bir örüntü düşündüğünüzde karar vermeniz için kriterler verdiniz ve bu ölçütlere göre kekemelik yeterince ilginçti.
Modeliniz fazlaca donatıldı, çünkü yanlışlıkla gerçek dünyada gerçekten alakalı olmayan bir parametre içeriyordu. Örneğinize uyuyor - 8 hasta + 8 kontrol - çok iyi, ama gerçek dünya verilerine uymuyor. Bir model, örneğinizi gerçeği tanımladığından daha iyi bir şekilde tanımladığında, buna donanım eklenir.
Özelliği olan 8 hastadan 3'ünden birini seçmiş olsaydınız, olmazdı - ama gerçekten ilginç bir şeyi kaçırmak için daha yüksek bir şansınız olurdu. Özellikle, birçok hastalığın risk faktörü sergileyen küçük bir bölümünde meydana gelen tıpta, yapılması zor bir işlemdir. Ve bundan kaçınılması gereken yöntemler var (temel olarak ikinci bir örnekle karşılaştırın ve açıklama gücünün aynı kaldığını veya düşüp düşmediğini görün), ancak bu başka bir soru için bir konudur.
İşte, sürdürmeme yardım ettiğim ve sonra (başarısızlıkla) kaçınmaya çalıştığım aşırı canlandırma örneği.
Her biri 50'den fazla veri noktasına sahip olmayan birkaç bağımsız, iki değişkenli zaman serisine sahiptim ve modelleme projesi her birine bir vektör otoregresyon (VAR) yerleştirmeyi içeriyordu. Gözlemler arasında düzenlenme, varyans bileşenlerini tahmin etme veya benzeri bir şey yapılmaya çalışılmamıştır. Zaman noktaları tek bir yıl boyunca ölçülmüş, bu yüzden veriler her zaman serisinde sadece bir kez ortaya çıkan her türlü mevsimsel ve döngüsel etkilere maruz kalmıştır.
Verilerin bir alt kümesinde, verilerin geri kalanına kıyasla inanılmaz derecede yüksek bir Granger nedensellik oranı görülmüştür. Nokta kontrolleri, bu alt kümede bir veya iki gecikme yaşanmasına rağmen pozitif sivri uçların ortaya çıktığını, ancak her iki sivri doğrudan dış kaynaklı bir kaynaktan kaynaklandığı ve bir sivriğin diğerine neden olmadığı açıkça ortaya çıktı. Bu modelleri kullanan örneklem dışı tahminler muhtemelen oldukça yanlıştır, çünkü modeller fazladan takılı kalıyordu: çivileri "verinin geri kalan kısmına ortalayarak" düzeltmek "yerine, çivilerin gerçekte araba sürdüğü yeterince az gözlem vardı. tahminler.
Genel olarak, projenin kötü gittiğini düşünmüyorum, ancak olabilecek kadar faydalı olan sonuçlar ürettiğini sanmıyorum. Bunun sebebi, çok sayıda bağımsız VAR prosedürünün, sadece bir veya iki gecikmeyle bile, veri ve gürültü arasında ayrım yapmakta zorlanacak bir zaman olmasıydı ve bu nedenle sonuncusu hakkında bilgi vermek pahasına uyuyordu. eski.
Bu konudaki pek çok zeki insan --- istatistiklerde benden çok daha fazla bilgili. Fakat yine de meslekten olmayan örneğe kolay anlaşılır bir şey göremiyorum. Cumhurbaşkanlığı örneği, tipik fazladan takma açısından tasarıyı pek etkilemiyor, çünkü vahşi iddialarının her birinde teknik olarak fazla takılıyor olsa da, genellikle sadece bir unsuru değil, verilen gürültüyü örten bir model.
Wikipedia'daki bias-varyans tradeoff açıklamasındaki çizelgeyi çok beğendim: http://en.wikipedia.org/wiki/Bias%E2%80%93variance_tradeoff
(En alttaki grafik aşırı uydurma örneğidir).
Mumbo-jumbo gibi görünmeyen gerçek bir dünya örneği düşünmeye zorlanıyorum. Buradaki fikir, verinin ölçülebilir, anlaşılabilir değişkenlerin - kısmen rastgele gürültünün neden olduğu kısımdır. Bu gürültüyü bir model olarak modellemeye çalışmak size yanlışlık verir.
Klasik bir örnek, MS Excel'de REL2'ye dayalı SOLELY tabanlı modellemedir (ne kadar saçma olursa olsun, polinomları kullanan verilere kelimenin tam anlamıyla mümkün olduğunca yakın bir denklem / modele uymaya çalışıyorsunuz).
Diyelim ki dondurma satışlarını sıcaklığın bir fonksiyonu olarak modellemeye çalışıyorsunuz. "Gerçek dünya" verileriniz var. Verileri çiziyorsunuz ve R ^ 2'yi maksimize etmeye çalışıyorsunuz. Gerçek dünya verilerini kullanarak bulacaksın, en yakın uygunluk denklemi doğrusal ya da ikinci dereceden değil (mantıklı olacak). Neredeyse tüm denklemler gibi, eklediğiniz daha saçma polinom terimleri (x ^ 6 -2x ^ 5 + 3x ^ 4 + 30x ^ 3-43.2x ^ 2-29x) - verilere daha yakın. Peki bu, dondurma satışlarıyla sıcaklığı nasıl anlamlı bir şekilde ilişkilendirir? Bu saçma polinomu nasıl açıklarsın? Gerçek şu ki, gerçek model değil. Verileri değiştirdin.
Gürültü için hesaba katılmıyorsunuz - bu durum satış promosyonları veya kozmosta kanatlarını çırpan bir kelebek gibi diğer bazı değişkenler veya "gürültüler" nedeniyle olabilir (hiçbir zaman tahmin edilemez) --- ve sıcaklığa dayalı olarak modellenmeye çalıştı. Şimdi, eğer gürültünüz / hatanız sıfıra gelmiyorsa ya da otomatik olarak bağıntılıysa, vb. Varsa, orada daha fazla değişken olduğu anlamına gelir --- ve sonunda sonunda rastgele dağılmış gürültüye ulaşırsınız, ama yine de, elimden gelenin en iyisi açıkla.
En sevdiğim, 1998'de Dünya Kupası futbol yarışmasından önce keşfedilen “3964 formülü”:
1970 ve 1994 yıllarında Brezilya şampiyonluğu kazandı. Bu 2 sayıyı toplayın, 3964 elde edersiniz; Almanya 1974 ve 1990'da tekrar kazandı ve 3964'e yükseldi; Arjantin’in 1978 ve 1986’da kazandığı aynı şey (1978 + 1986 = 3964).
Bu çok şaşırtıcı bir gerçektir, ancak herkes gelecekteki tahminlerini bu kurala dayandırmanın uygun olmadığını görebilir. Ve gerçekten de, kural 1998’deki Dünya Kupasını kazananların 1966 + 1998 = 3964’ten beri İngiltere olması ve İngiltere’nin 1966’da kazanması gerektiği şeklinde.
Biraz sezgisel, ama belki yardımcı olur. Yeni bir dil öğrenmek istediğinizi varsayalım. Nasıl öğrenirsin Bir kurstaki kuralları öğrenmek yerine, örnekler kullanırsınız. Özellikle, TV şovları. Suç şovlarını seviyorsun ve birkaç polis şov dizisini izledin. Sonra başka bir suç şovu izler ve bundan bir dizi izlersiniz. Gördüğün üçüncü programa göre - hemen hemen her şeyi biliyorsun, sorun değil. İngilizce altyazılara ihtiyacınız yok.
Ama sonra yeni öğrendiğiniz dili bir sonraki ziyaretinizde sokakta deneyin ve “memur! Bu adam çantamı alıp o kadını vurdu!” Demekten başka bir şey hakkında konuşamazsınız. 'Eğitim hatanız' sıfırken, 'sınav hatası', dili 'fazla uydurma' nedeniyle, yalnızca sınırlı bir kelime alt grubunu inceleyerek ve bunun yeterli olduğunu varsayarak yüksektir.