Polinom regresyonun, doğrusal olmayan ilişkileri modellemeye ve gerçek dünya veri setlerinde tahmin doğruluğunu artırmaya nasıl yardımcı olduğunu keşfedin.
Veriniz eğriler çiziyorsa, yeni veri noktalarını tahmin etmek için düz bir çizgi kullanmak mantıklı değildir. Bunu yaparsanız, deseni ıskalayan, artık hataları yüksek ve kötü tahminler üreten bir modelle kalırsınız. İster ilaç dozajının yanıta etkisini, ister sıcaklığın malzeme gerilmesine etkisini, ister varlık fiyatlarının zaman içindeki hareketini modelleyin, gerçek dünya verileri nadiren doğrusal davranır.
Polinom regresyon, doğrusal regresyonu düz çizgiler yerine eğrilere uyduracak şekilde genişleterek bunu düzeltir. Birkaç yüksek dereceli terim ekleyin - x², x³ - ve modeliniz verinizin gerçek şeklini takip edebilir.
Bu yazıda, polinom regresyonun ne olduğunu, arkasındaki matematiği, Python ile nasıl uygulanacağını ve çoğu kişinin düştüğü tuzaktan - aşırı öğrenmeden - nasıl kaçınılacağını ele alacağım.
Verinizi düz bir çizgiyle tanımlayamadığınızda başvurduğunuz algoritma polinom regresyondur.
Doğrusal regresyon değişkenler arasındaki ilişkiyi düz bir çizgi olarak modeller. İlişki gerçekten doğrusal olduğunda işe yarar - ancak çoğu gerçek dünya verisi öyle değildir. Bir arabanın fren mesafesinin hızla nasıl değiştiğini ya da bir bitkinin büyüme hızının gübreye nasıl tepki verdiğini düşünün. Bu ilişkiler eğrilidir. Ne yaparsanız yapın düz bir çizgi onlara iyi uymaz.
Polinom regresyon, denkleme daha yüksek dereceli terimler ekleyerek doğrusal regresyonu genişletir. y = b0 + b1x yerine y = b0 + b1x + b2x² + b3x³ gibi bir şey uydurursunuz. Polinomun derecesi - "n'inci derece"deki o n - eğrinin kaç kez bükülebileceğini kontrol eder.
Kısaca ve basitçe, ikisi arasındaki temel fark şudur:
Doğrusal regresyon: Düz bir çizgi uydurur. Özellik başına bir katsayı, eğride bir serbestlik derecesi.
Polinom regresyon: Bir eğri uydurur. Eklenen her terim (x², x³, ...) modele verinin şeklini takip etmesi için daha fazla esneklik verir.
Doğrusal ve polinom regresyon
Yüzeyin altında, polinom regresyon hâlâ doğrusal bir modeldir. Buradaki "doğrusal" ifadesi, modelin ürettiği eğrinin şekline değil, katsayıları nasıl ele aldığına atıfta bulunur. Yeni özellikler (x², x³) ekleyip bunların üzerine doğrusal bir denklem uyduruyorsunuz.
Peki, bunu ne zaman gerçekten kullanmalısınız?
Doğrusal bir modelin artık grafiğinde bir desen görüyorsanız polinom regresyonu tercih edin - bu, ilişkinin doğrusal olmadığının işaretidir. Fizik, biyoloji veya iktisat gibi alan bilgileriniz eğrisel bir ilişki olduğunu söylüyorsa da iyi bir seçimdir.
Değiş tokuş ise, yüksek dereceli polinomların kararsızlaşabilmesidir. 2. veya 3. derece bir polinom çoğu gerçek dünya eğrisinin üstesinden gelebilir, ancak daha yükseğe çıktığınızda sinyal yerine gürültüyü uydurma olasılığınız artar.
Neden Polinom Regresyon Kullanılır?
Gerçek dünyadaki değişkenler arası ilişkilerin çoğu doğrusal değildir.
Düz bir çizgi yaklaşabilir, ancak hassas bir şeyi tahmin ederken "yaklaşık" yeterli değildir. Verideki ilişki bükülüyorsa, doğrusal bir model bu bükülmeyi tutarlı şekilde ıskalayacaktır.
Polinom regresyon, modele eğrilebilme imkânı tanıyarak daha iyi iş çıkarır. Verinize zorla düz bir çizgi geçirmek yerine, ilişkinin şeklini takip edebilen bir eğri uydurursunuz.
Farklı iş kollarında gerçekten fark yarattığı bazı alanlar şunlardır:
Biyoloji ve tıp: Doz-yanıt ilişkileri nadiren doğrusaldır. Düşük doz az etki gösterir, orta doz iyi çalışır, yüksek doz yan etkilere yol açar. Bu S-şekilli eğriyi yakalamak için polinom bir modele ihtiyaç vardır
Mühendislik: Malzemelerde gerilme-gerinim ilişkileri, aerodinamik sürükleme ve ısıl genleşme doğrusal olmayan desenler izler ve polinom regresyon bunları iyi modeller
Finans: Varlık getirileri, opsiyon fiyatlama ve talep eğrileri çoğu zaman düz bir çizginin temsil edemeyeceği azalan ya da artan etkiler gösterir
Makine öğrenmesi hatları: Polinom özellikler, daha karmaşık bir algoritmaya geçmeden doğrusal bir modele doğrusal olmayanlık katmanın hızlı bir yoludur
Tüm bu durumların ortak noktası aynıdır: Girdi ile çıktı arasındaki ilişki, x'in farklı değerlerinde değişir. Doğrusal regresyon bu değişimin sabit olduğunu varsayar. Polinom regresyon bunu varsaymaz.
Şunu da söylemek gerekir ki, polinom regresyon sihirli bir değnek değildir.
Alan bilginizin eğrisel bir ilişkiyi işaret ettiği durumlarda ya da artık grafiğiniz düz bir çizginin çözemeyeceği bir deseni açıkça gösterdiğinde en iyi sonucu verir. Belli bir sorunu çözmek için kullanın - yalnızca doğrusal modelinizin R²yeterince yüksek değil diye değil.
Polinom regresyonun temel matematiğini bilmek, onu daha iyi anlamanıza yardımcı olur.
Polinom terimleri
Doğrusal regresyonda modeliniz şu şekildedir:
Doğrusal regresyon formülü
Bu, tek bir giriş değişkeni, tek bir katsayı, tek bir düz çizgidir. Polinom regresyon bunu daha yüksek dereceli terimler ekleyerek genişletir:
Polinom regresyon formülü
Eklenen her yeni terim - x², x³ vb. - modele bir "bükülme" daha sağlar. 2. derece bir polinom tek bir eğriyi uydurabilir. 3. derece bir polinom yönü bir kez değiştiren bir eğriyi uydurabilir. n derecesi modelin ne kadar esnek olduğunu kontrol eder.
Temeldeki algoritma aynı kalır. Sadece yeni özellikler ekliyorsunuz. x², x ile aynı şekilde kendi giriş değişkeni olarak ele alınır. Model hâlâ doğrusal bir denklemi uydurur - sadece dönüştürülmüş özelliklerin üzerine.
En küçük kareler tahmini
Bir polinom regresyon modelini uydurmak, doğrusal regresyonda olduğu gibi en küçük kareler tahmini ile çalışır.
Her kare fark bir artık hatadır - modelin öngördüğü ile gözlenen arasındaki boşluk. Kare almak, negatif ve pozitif hataların birbirini götürmesini engeller ve büyük hataları küçüklerden daha fazla cezalandırır.
Uygulamada bunu kütüphaneniz sizin için halleder. Ancak amaç fonksiyonunun en küçük kareler olduğunu bilmek, polinom modellerde aykırı değerlerin neden bu kadar zarar verdiğini anlamanıza yardımcı olur - tek bir büyük artık hata kare alınır ve katsayıları kendi yönüne çeker.
Katsayıların yorumlanması
Doğrusal regresyonda b1 basitçe şöyle yorumlanır: x bir birim arttığında y, b1 kadar değişir.
Polinom regresyon biraz daha karmaşıktır. Modeliniz b_1x + b_2x^2 içerdiğinde, x'in y üzerindeki etkisi mevcut x değerine bağlıdır - b2'yi tek başına okuyup bir sonuç çıkaramazsınız. Eğrinin eğimi sürekli değişir; bunu x'e göre türev alarak görebilirsiniz:
x'e göre türev
Eğimin kendisi x'in bir fonksiyonudur. Bu da x'teki bir birimlik değişimin etkisinin eğrinin her noktasında farklı olduğu anlamına gelir.
Bu nedenle, polinom bir modelde tek tek katsayıları yorumlamaya çalışmamalısınız. Bunun yerine, eğriye bir bütün olarak bakın. Tahminlerinizi verinizle birlikte çizin.
Veri Biliminde Polinom Regresyonun Uygulamaları
Polinom regresyon pek çok alanda karşımıza çıkar çünkü gerçek verilerde eğrisel ilişkiler her yerdedir.
Finans
Finansal veriler nadiren düz çizgiler halinde hareket eder.
Varlık fiyatları, gelir büyümesi ve talep eğrileri piyasa koşullarına bağlı olarak hızlanma, yavaşlama veya yön değiştirme eğilimindedir. Doğrusal bir model sabit bir değişim hızı varsayar ki bu neredeyse hiç doğru değildir. Polinom regresyon bu değişimleri modellemenizi sağlar - örneğin, tüketici talebinin önce yavaş, belirli bir fiyat eşiğini geçtikten sonra ise keskin biçimde nasıl düştüğünü.
Zaman içinde eğilim analizi için de kullanışlıdır. Tarihsel fiyat verilerine eğri uydururken veya bir iş döngüsünün farklı aşamalarında bir metrik nasıl büyüyor modellemeye çalışırken, 2. ya da 3. derece bir polinom çoğu zaman düz bir çizgiden çok daha iyi bir biçimde şekli tahmin eder.
Mühendislik
Fiziksel süreçler, doğrusal olmayan ilişkilerin en iyi örneklerindendir.
Malzemelerde gerilme ve gerinim, akışkanlar dinamiği, ısıl genleşme ve aerodinamik sürükleme hep eğrileri izler, çizgileri değil. Fiziğin yöneten pek çok denklemi doğası gereği polinomiktir. Polinom regresyon, ölçümleriniz olup kapalı biçim bir denkleminiz olmadığında bu eğrileri veriye dayalı şekilde uydurmanızı sağlar.
İyi bir örnek, hızın karesiyle artan sürükleme kuvvetidir. Doğrusal bir model yüksek hızlarda sürüklemeyi hafife alır; 2. derece bir polinom ilişkiyi doğru biçimde uydurur.
Makine Öğrenmesi
Makine öğrenmesinde polinom regresyon, çoğu zaman bağımsız bir modelden ziyade bir özellik mühendisliği tekniği olarak kullanılır.
Özellik kümenize polinom terimleri - x², x³, etkileşim terimleri - ekleyerek, daha karmaşık bir algoritmaya geçmeden doğrusal bir modele doğrusal olmayan desenleri uydurma yeteneği kazandırırsınız. Doğrusal modelinizin yetersiz uyum gösterdiği ve karar ağacı ya da sinir ağı gibi bir şeye yönelmeden önce esneklik eklemek istediğinizde yaygın bir ilk adımdır.
Ayrıca iyi bir temel modeldir.
Daha karmaşık bir model eğitmeden önce, bir polinom regresyon uydurmak basit bir eğrinin varyansın ne kadarını açıklayabildiğini gösterir. 3. derece bir polinom sizi zaten büyük ölçüde hedefe yaklaştırıyorsa, daha karmaşık bir şeye ihtiyacınız olmayabilir.
Polinom Regresyon İçin Doğru Derece Nasıl Seçilir
Polinomunuzun derecesini seçmek vereceğiniz en önemli kararlardan biridir. Her iki yönde de hatalı seçerseniz daha az doğru bir modelle kalırsınız.
Neyse ki, birkaç satır Python kodu işi görmek için yeterlidir.
Aşırı uyum vs. yetersiz uyum
Yetersiz uyum, dereceniz çok düşük olduğunda meydana gelir. Eğrisel veride 1. derece bir polinom deseni ıskalar - yüksek önyargı, kötü tahminler ve hem eğitimde hem de yeni veride kötü performans.
Aşırı uyum bunun tam tersidir ve ilk bakışta daha tehlikelidir çünkü iyi görünür. Yüksek dereceli bir polinom, eğitim kümenizdeki her veri noktasından neredeyse sıfır hatayla geçebilir. Ancak model sadece gürültüyü ezberlemektedir. Yeni veride dağılır.
Bunu, dereceler arasında eğitim hatası ile test hatasını karşılaştırarak görebilirsiniz:
import numpy as np
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
np.random.seed(42)# Generate sample data
x = np.linspace(-3,3,80).reshape(-1,1)
y =0.6* x.ravel()**2- x.ravel()+ np.random.normal(0,0.6,80)
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25)for deg in[1,2,12]:
poly = PolynomialFeatures(deg)
model = LinearRegression()
model.fit(poly.fit_transform(x_train), y_train)
train_err = mean_squared_error(y_train, model.predict(poly.transform(x_train)))
test_err = mean_squared_error(y_test, model.predict(poly.transform(x_test)))print(f"Degree {deg:>2} | Train MSE: {train_err:.4f} | Test MSE: {test_err:.4f}")Altyapı:
Farklı derecelerde MSE
Görsel olarak sunulmuş hâli:
Verinin farklı polinom dereceleriyle uyumu
Derece 1 her iki sette de yüksek hata gösterir - bu yetersiz uyumdur. Derece 2 dengelidir. Derece 12 daha düşük eğitim hatasına ama çok daha yüksek test hatasına sahiptir - bu aşırı uyumdur.
Çapraz doğrulama
En iyi dereceyi bulmanın doğru yolu çapraz doğrulamadır - özel olarak k-katlı çapraz doğrulama.
Fikir, verinizi k alt kümeye ayırmak, sonra bunların k-1'inde eğitip birini ayırarak test etmek ve her alt küme bir kez test kümesi olana kadar tekrarlamaktır. Son olarak, tüm katlardaki hatayı ortalayıp bunu her aday derece için yapar ve en düşük ortalama test hatasına sahip olanı seçersiniz.
Uygulama, açıklamadan çok daha basittir:
import numpy as np
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import cross_val_score
from sklearn.pipeline import make_pipeline
import matplotlib.pyplot as plt
np.random.seed(42)# Generate sample data
x = np.linspace(-3,3,80).reshape(-1,1)
y =0.6* x.ravel()**2- x.ravel()+ np.random.normal(0,0.6,80)# Test degrees 1 through 10
degrees =range(1,11)
mean_errors =[]for deg in degrees:
model = make_pipeline(PolynomialFeatures(deg), LinearRegression())
scores = cross_val_score(model, x, y, cv=5, scoring="neg_mean_squared_error")
mean_errors.append(-scores.mean())print(f"Degree {deg:>2} | Mean error: {-scores.mean():.4f}")
best_degree = np.argmin(mean_errors)+1Altyapı:
Derece hata karşılaştırması
Ya da görsel olarak sunulmuş hâli:
Çapraz doğrulama hata karşılaştırması
CV hatası, faydalı polinom terimleri ekledikçe düşer, model aşırı uyuma başladığında ise tekrar yükselir.
İki derece benzer CV hatası veriyorsa, daha düşük olanı seçin. Aynı performansı veren daha basit bir model her zaman daha iyi tercihtir.
Temel Dikkat Noktaları ve Sınırlamalar
Polinom regresyon sizi yanlış sonuçlara götürebilecek birkaç yol barındırır. Şimdi bunlara bakalım.
Aykırı değerlere duyarlılık
Aykırı değerler polinom regresyonu, doğrusal regresyondan daha fazla etkiler.
En küçük kareler, toplamadan önce her artığı kareye alır. Eğilimden uzak tek bir veri noktası orantısız derecede büyük bir hataya katkıda bulunur ve model, bu hatayı azaltmak için eğrisini büker - bu, her yerde uyumu bozsa bile.
Bu etki derece arttıkça kötüleşir. Yüksek dereceli bir polinom, bir aykırı değerin peşinden gidecek kadar esnektir; bu da eğriyi verinizin büyük kısmından uzaklaştırıp tek bir kötü noktaya uydurur.
Bunu aşmanın bir yolu, uydurmadan önce verinizi temizlemektir. Verinizi görselleştirin, aykırı değerleri belirleyin ve bunların gerçek sinyali mi yoksa gürültüyü mü temsil ettiğine karar verin. Eğer gürültü iseler - ölçüm hataları, veri giriş hataları, bozulmuş kayıtlar - onları kaldırın. Gerçeklerse, RANSAC veya Huber regresyon gibi aykırı değerlere daha dayanıklı bir uydurma yöntemini düşünün.
Aşırı uyum
Her polinom terimi eklediğinizde modele daha fazla esneklik kazandırırsınız. Bir noktadan sonra bu esneklik fayda sağlamaz ve model, eğitim verinizdeki gerçek deseni değil rastgele gürültüyü uydurmaya başlar. Sonuç, eğitim verisinde iyi, yeni veride ise dağılan bir eğridir.
Zor olan, yalnızca eğitim hatasına bakarsanız aşırı uyumun görünmez olmasıdır. 10. derece bir polinom, 2. derece bir polinoma kıyasla eğitim MSE'sine neredeyse her zaman daha düşük değer verir. Bu, daha iyi bir model olduğu anlamına gelmez.
Şöyle yaklaşmalısınız:
Düşükten başlayın: Daha yükseğe çıkmadan önce 2 veya 3. dereceyi deneyin. Çoğu gerçek dünya eğrisi bundan fazlasını gerektirmez
Her zaman ayrılmış veride değerlendirin: Yalnızca eğitim hatası genelleme hakkında hiçbir şey söylemez.
Çapraz doğrulama: Test hatasının iyileşmeyi bıraktığı dereceyi bulmak için kullanın.
Eğriyi izleyin: Polinomunuz, eğitim verinizin aralığı dışında vahşi davranışlar sergiliyorsa bu aşırı uyum işaretidir.
Polinom regresyon, eğrisel bir ilişki beklemek için iyi bir nedeniniz olduğunda ve dereceyi yeterince düşük tutabildiğinizde en iyi sonucu verir.
Polinom Regresyona Alternatifler
Polinom regresyon her zaman doğru araç değildir - kelime oyunu yok - şu alternatiflerden bazıları sizin için daha uygun olabilir.
Splines
Splines, küresel kararsızlık sorununu çözer.
10. derece bir polinom uydurduğunuzda, her katsayı her veri noktasından etkilenir. Verinizin bir bölgesindeki bir değişim, eğriyi her yerde etkiler. Splines, verinizi segmentlere ayırıp her birine ayrı, düşük dereceli bir polinom uydurarak bunu önler. Segmentler düğüm (knot) adı verilen noktalarda birleştirilir ve birleşimlerde genel eğrinin düzgün kalmasını sağlayan kısıtlar konur.
Sonuç, gerektiği yerde esnek, diğer her yerde kararlı bir eğridir.
Python'da scipy ve scikit-learn sağlam spline uygulamalarına sahiptir:
from scipy.interpolate import UnivariateSpline
spline = UnivariateSpline(x, y, k=3)
y_pred = spline(x_new)Altyapı:
Spline ve yüksek dereceli bir polinom
Tekrar etmek gerekirse, veriniz farklı bölgelerde farklı davranışlar gösteriyorsa ya da tek bir polinom eğri, yüksek dereceye çıkmadan şekli yakalayamıyorsa splines kullanın.
Destek Vektör Regresyonu
Destek Vektör Regresyonu (SVR) farklı bir yaklaşım benimser.
Tüm noktalar üzerinde kare hatayı en aza indiren bir eğri uydurmak yerine, mümkün olduğunca çok nokta için tanımlı bir hata marjı içinde kalan, bu marj içindeki noktaları ise görmezden gelen bir fonksiyon bulmaya çalışır. Bu, onu polinom regresyona kıyasla aykırı değerlere karşı daha az duyarlı kılar.
Polinom regresyonla bağlantı, çekirdek hilesi (kernel trick) üzerinden kurulur. Polinom çekirdeğiyle SVR, polinom regresyona benzer doğrusal olmayan ilişkileri uydurabilir - ancak düzenlileştirme parametreleriyle uyuma daha iyi genelleme ve daha fazla kontrol sunar.
from sklearn.svm import SVR
model = SVR(kernel="poly", degree=3, C=1.0, epsilon=0.1)
model.fit(x_train, y_train)Altyapı:
SVR ve yüksek dereceli bir polinom
Aykırı değerleri kaldıramadığınızda, önyargı-varyans değiş tokuşu üzerinde daha fazla kontrole ihtiyaç duyduğunuzda ya da çapraz doğrulamaya rağmen polinom regresyon sürekli aşırı uyum gösterdiğinde SVR iyi bir seçimdir.
Sonuç
Bu yazıda, polinom regresyonun doğrusal regresyonu eğrilere uyduracak şekilde nasıl genişlettiğini, en küçük kareler tahmininin en iyi katsayıları nasıl bulduğunu ve bu katsayıları tek tek yorumlamanın neden pek bir şey söylemediğini gösterdim.
Seçeceğiniz derece her şeyden daha önemlidir. Çok düşük olursa yetersiz uyuma, çok yüksek olursa aşırı uyuma yol açar. Çapraz doğrulama, tatlı noktayı nesnel olarak bulmanızı sağlar. Ve polinom regresyon doğru uyum değilse, splines ve SVR bilmeye değer sağlam alternatiflerdir.
Tüm bunlara dair sezgi geliştirmenin en iyi yolu, bunu kendi veriniz üzerinde kullanmaktır. Doğrusal olmayan bir ilişki olduğundan şüphelendiğiniz bir veri kümesi seçin, önce doğrusal bir model uydurun, artık grafiğini çizin ve polinom regresyonun farklı olarak ne yaptığını görün. Uygulamada bu hattı görmek için R ile Doğrusal Olmayan Modeller ve İçgörüler rehberimizi okuyun.
Hırvatistan merkezli Kıdemli Veri Bilimci. 700’ün üzerinde yayımlanmış makaleyle 10 M+ görüntüleme elde eden, önde gelen bir teknoloji yazarı. TPOT ile Makine Öğrenimi Otomasyonu kitabının yazarı.
Polinom Regresyon SSS
Polinom regresyon nedir ve ne zaman kullanmalıyım?⌄
Polinom regresyon, verinize düz bir çizgi yerine eğrisel bir çizgi uyduran doğrusal regresyonun bir uzantısıdır. Girdi ve çıktı değişkenleriniz arasındaki ilişki doğrusal olmadığında kullanırsınız - örneğin, doğrusal bir modelin artık grafiği bir desen gösterdiğinde. Karar ağaçları veya sinir ağları gibi daha karmaşık modellere yönelmeden önce iyi bir ilk adımdır.
Polinom regresyon doğrusal regresyondan nasıl farklıdır?⌄
Doğrusal regresyon, ilişkiyi y = b0 + b1x olarak modelleyerek düz bir çizgi uydurur. Polinom regresyon, x² ve x³ gibi daha yüksek dereceli terimler ekleyerek modele verideki eğrileri takip etmesi için yeterli esneklik kazandırır. İkisi de aynı en küçük kareler tahminini kullanır - polinom regresyon yalnızca bu ekstra terimleri ek girdi özellikleri olarak ele alır.
Polinom regresyon kullanmanın en büyük riskleri nelerdir?⌄
İki ana risk aşırı uyum ve aykırı değerlere duyarlılıktır. Yüksek dereceli bir polinom, eğitim verinizdeki gürültüyü ezberleyebilir ve yeni veride kötü performans gösterebilir. En küçük kareler her artığı kareye aldığı için aykırı değerler tehlikelidir; bu, tek bir kötü veri noktasının eğriyi verinizin geri kalanından uzaklaştırmasına neden olabilir.
Polinom regresyon modelim için doğru dereceyi nasıl seçerim? ⌄
2 veya 3. dereceyle başlayın - çoğu gerçek dünya eğrisel ilişki bundan fazlasını gerektirmez. Buradan, aday dereceler arasında ortalama test hatasını karşılaştırmak için k-katlı çapraz doğrulama kullanın ve test hatasının iyileşmeyi bıraktığı dereceyi seçin. İki derece benzer sonuç veriyorsa her zaman daha düşük olanı tercih edin.
Splines veya SVR'yi polinom regresyon yerine ne zaman kullanmalıyım?⌄
Veriniz farklı bölgelerde farklı davranışlar sergilediğinde veya tek bir polinom verinizin aralığının uçlarında kararsız eğriler üretmeye devam ettiğinde splines kullanın. Aykırı değerlerin kaçınılmaz olduğu ve modelin onları tolere etmek için kendini aşırı bükmesini istemediğiniz durumlarda ise polinom çekirdekli SVR daha iyi bir seçimdir. Her iki alternatif de biraz yorumlanabilirlik pahasına uyum üzerinde daha fazla kontrol sunar.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Veriniz eğriler çiziyorsa, yeni veri noktalarını tahmin etmek için düz bir çizgi kullanmak mantıklı değildir. Bunu yaparsanız, deseni ıskalayan, artık hataları yüksek ve kötü tahminler üreten bir modelle kalırsınız. İster ilaç dozajının yanıta etkisini, ister sıcaklığın malzeme gerilmesine etkisini, ister varlık fiyatlarının zaman içindeki hareketini modelleyin, gerçek dünya verileri nadiren doğrusal davranır.
Polinom regresyon, doğrusal regresyonu düz çizgiler yerine eğrilere uyduracak şekilde genişleterek bunu düzeltir. Birkaç yüksek dereceli terim ekleyin -
x²,x³- ve modeliniz verinizin gerçek şeklini takip edebilir.Bu yazıda, polinom regresyonun ne olduğunu, arkasındaki matematiği, Python ile nasıl uygulanacağını ve çoğu kişinin düştüğü tuzaktan - aşırı öğrenmeden - nasıl kaçınılacağını ele alacağım.
Makine öğrenmesi kavramına yeniyseniz, önce Python ile Doğrusal Regresyonun Temelleri eğitimimizi okuyun.
Polinom Regresyon Nedir?
Verinizi düz bir çizgiyle tanımlayamadığınızda başvurduğunuz algoritma polinom regresyondur.
Doğrusal regresyon değişkenler arasındaki ilişkiyi düz bir çizgi olarak modeller. İlişki gerçekten doğrusal olduğunda işe yarar - ancak çoğu gerçek dünya verisi öyle değildir. Bir arabanın fren mesafesinin hızla nasıl değiştiğini ya da bir bitkinin büyüme hızının gübreye nasıl tepki verdiğini düşünün. Bu ilişkiler eğrilidir. Ne yaparsanız yapın düz bir çizgi onlara iyi uymaz.
Polinom regresyon, denkleme daha yüksek dereceli terimler ekleyerek doğrusal regresyonu genişletir.
y = b0 + b1xyeriney = b0 + b1x + b2x² + b3x³gibi bir şey uydurursunuz. Polinomun derecesi - "n'inci derece"deki on- eğrinin kaç kez bükülebileceğini kontrol eder.Kısaca ve basitçe, ikisi arasındaki temel fark şudur:
Doğrusal regresyon: Düz bir çizgi uydurur. Özellik başına bir katsayı, eğride bir serbestlik derecesi.
Polinom regresyon: Bir eğri uydurur. Eklenen her terim (
x²,x³, ...) modele verinin şeklini takip etmesi için daha fazla esneklik verir.Doğrusal ve polinom regresyon
Yüzeyin altında, polinom regresyon hâlâ doğrusal bir modeldir. Buradaki "doğrusal" ifadesi, modelin ürettiği eğrinin şekline değil, katsayıları nasıl ele aldığına atıfta bulunur. Yeni özellikler (
x²,x³) ekleyip bunların üzerine doğrusal bir denklem uyduruyorsunuz.Peki, bunu ne zaman gerçekten kullanmalısınız?
Doğrusal bir modelin artık grafiğinde bir desen görüyorsanız polinom regresyonu tercih edin - bu, ilişkinin doğrusal olmadığının işaretidir. Fizik, biyoloji veya iktisat gibi alan bilgileriniz eğrisel bir ilişki olduğunu söylüyorsa da iyi bir seçimdir.
Değiş tokuş ise, yüksek dereceli polinomların kararsızlaşabilmesidir. 2. veya 3. derece bir polinom çoğu gerçek dünya eğrisinin üstesinden gelebilir, ancak daha yükseğe çıktığınızda sinyal yerine gürültüyü uydurma olasılığınız artar.
Neden Polinom Regresyon Kullanılır?
Gerçek dünyadaki değişkenler arası ilişkilerin çoğu doğrusal değildir.
Düz bir çizgi yaklaşabilir, ancak hassas bir şeyi tahmin ederken "yaklaşık" yeterli değildir. Verideki ilişki bükülüyorsa, doğrusal bir model bu bükülmeyi tutarlı şekilde ıskalayacaktır.
Polinom regresyon, modele eğrilebilme imkânı tanıyarak daha iyi iş çıkarır. Verinize zorla düz bir çizgi geçirmek yerine, ilişkinin şeklini takip edebilen bir eğri uydurursunuz.
Farklı iş kollarında gerçekten fark yarattığı bazı alanlar şunlardır:
Tüm bu durumların ortak noktası aynıdır: Girdi ile çıktı arasındaki ilişki, x'in farklı değerlerinde değişir. Doğrusal regresyon bu değişimin sabit olduğunu varsayar. Polinom regresyon bunu varsaymaz.
Şunu da söylemek gerekir ki, polinom regresyon sihirli bir değnek değildir.
Alan bilginizin eğrisel bir ilişkiyi işaret ettiği durumlarda ya da artık grafiğiniz düz bir çizginin çözemeyeceği bir deseni açıkça gösterdiğinde en iyi sonucu verir. Belli bir sorunu çözmek için kullanın - yalnızca doğrusal modelinizin
R²yeterince yüksek değil diye değil.Polinom Regresyonun Arkasındaki Matematiği Anlamak
Polinom regresyonun temel matematiğini bilmek, onu daha iyi anlamanıza yardımcı olur.
Polinom terimleri
Doğrusal regresyonda modeliniz şu şekildedir:
Doğrusal regresyon formülü
Bu, tek bir giriş değişkeni, tek bir katsayı, tek bir düz çizgidir. Polinom regresyon bunu daha yüksek dereceli terimler ekleyerek genişletir:
Polinom regresyon formülü
Eklenen her yeni terim -
x²,x³vb. - modele bir "bükülme" daha sağlar. 2. derece bir polinom tek bir eğriyi uydurabilir. 3. derece bir polinom yönü bir kez değiştiren bir eğriyi uydurabilir.nderecesi modelin ne kadar esnek olduğunu kontrol eder.Temeldeki algoritma aynı kalır. Sadece yeni özellikler ekliyorsunuz.
x²,xile aynı şekilde kendi giriş değişkeni olarak ele alınır. Model hâlâ doğrusal bir denklemi uydurur - sadece dönüştürülmüş özelliklerin üzerine.En küçük kareler tahmini
Bir polinom regresyon modelini uydurmak, doğrusal regresyonda olduğu gibi en küçük kareler tahmini ile çalışır.
Amaç, kareler toplamı artıklarını en aza indiren katsayıları bulmaktır:
KKA formülü
Her kare fark bir artık hatadır - modelin öngördüğü ile gözlenen arasındaki boşluk. Kare almak, negatif ve pozitif hataların birbirini götürmesini engeller ve büyük hataları küçüklerden daha fazla cezalandırır.
Uygulamada bunu kütüphaneniz sizin için halleder. Ancak amaç fonksiyonunun en küçük kareler olduğunu bilmek, polinom modellerde aykırı değerlerin neden bu kadar zarar verdiğini anlamanıza yardımcı olur - tek bir büyük artık hata kare alınır ve katsayıları kendi yönüne çeker.
Katsayıların yorumlanması
Doğrusal regresyonda
b1basitçe şöyle yorumlanır:xbir birim arttığınday,b1kadar değişir.Polinom regresyon biraz daha karmaşıktır. Modeliniz
b_1x+b_2x^2içerdiğinde,x'inyüzerindeki etkisi mevcutxdeğerine bağlıdır - b2'yi tek başına okuyup bir sonuç çıkaramazsınız. Eğrinin eğimi sürekli değişir; bunux'e göre türev alarak görebilirsiniz:x'e göre türev
Eğimin kendisi
x'in bir fonksiyonudur. Bu dax'teki bir birimlik değişimin etkisinin eğrinin her noktasında farklı olduğu anlamına gelir.Bu nedenle, polinom bir modelde tek tek katsayıları yorumlamaya çalışmamalısınız. Bunun yerine, eğriye bir bütün olarak bakın. Tahminlerinizi verinizle birlikte çizin.
Veri Biliminde Polinom Regresyonun Uygulamaları
Polinom regresyon pek çok alanda karşımıza çıkar çünkü gerçek verilerde eğrisel ilişkiler her yerdedir.
Finans
Finansal veriler nadiren düz çizgiler halinde hareket eder.
Varlık fiyatları, gelir büyümesi ve talep eğrileri piyasa koşullarına bağlı olarak hızlanma, yavaşlama veya yön değiştirme eğilimindedir. Doğrusal bir model sabit bir değişim hızı varsayar ki bu neredeyse hiç doğru değildir. Polinom regresyon bu değişimleri modellemenizi sağlar - örneğin, tüketici talebinin önce yavaş, belirli bir fiyat eşiğini geçtikten sonra ise keskin biçimde nasıl düştüğünü.
Zaman içinde eğilim analizi için de kullanışlıdır. Tarihsel fiyat verilerine eğri uydururken veya bir iş döngüsünün farklı aşamalarında bir metrik nasıl büyüyor modellemeye çalışırken, 2. ya da 3. derece bir polinom çoğu zaman düz bir çizgiden çok daha iyi bir biçimde şekli tahmin eder.
Mühendislik
Fiziksel süreçler, doğrusal olmayan ilişkilerin en iyi örneklerindendir.
Malzemelerde gerilme ve gerinim, akışkanlar dinamiği, ısıl genleşme ve aerodinamik sürükleme hep eğrileri izler, çizgileri değil. Fiziğin yöneten pek çok denklemi doğası gereği polinomiktir. Polinom regresyon, ölçümleriniz olup kapalı biçim bir denkleminiz olmadığında bu eğrileri veriye dayalı şekilde uydurmanızı sağlar.
İyi bir örnek, hızın karesiyle artan sürükleme kuvvetidir. Doğrusal bir model yüksek hızlarda sürüklemeyi hafife alır; 2. derece bir polinom ilişkiyi doğru biçimde uydurur.
Makine Öğrenmesi
Makine öğrenmesinde polinom regresyon, çoğu zaman bağımsız bir modelden ziyade bir özellik mühendisliği tekniği olarak kullanılır.
Özellik kümenize polinom terimleri -
x²,x³, etkileşim terimleri - ekleyerek, daha karmaşık bir algoritmaya geçmeden doğrusal bir modele doğrusal olmayan desenleri uydurma yeteneği kazandırırsınız. Doğrusal modelinizin yetersiz uyum gösterdiği ve karar ağacı ya da sinir ağı gibi bir şeye yönelmeden önce esneklik eklemek istediğinizde yaygın bir ilk adımdır.Ayrıca iyi bir temel modeldir.
Daha karmaşık bir model eğitmeden önce, bir polinom regresyon uydurmak basit bir eğrinin varyansın ne kadarını açıklayabildiğini gösterir. 3. derece bir polinom sizi zaten büyük ölçüde hedefe yaklaştırıyorsa, daha karmaşık bir şeye ihtiyacınız olmayabilir.
Polinom Regresyon İçin Doğru Derece Nasıl Seçilir
Polinomunuzun derecesini seçmek vereceğiniz en önemli kararlardan biridir. Her iki yönde de hatalı seçerseniz daha az doğru bir modelle kalırsınız.
Neyse ki, birkaç satır Python kodu işi görmek için yeterlidir.
Aşırı uyum vs. yetersiz uyum
Yetersiz uyum, dereceniz çok düşük olduğunda meydana gelir. Eğrisel veride 1. derece bir polinom deseni ıskalar - yüksek önyargı, kötü tahminler ve hem eğitimde hem de yeni veride kötü performans.
Aşırı uyum bunun tam tersidir ve ilk bakışta daha tehlikelidir çünkü iyi görünür. Yüksek dereceli bir polinom, eğitim kümenizdeki her veri noktasından neredeyse sıfır hatayla geçebilir. Ancak model sadece gürültüyü ezberlemektedir. Yeni veride dağılır.
Bunu, dereceler arasında eğitim hatası ile test hatasını karşılaştırarak görebilirsiniz:
Farklı derecelerde MSE
Görsel olarak sunulmuş hâli:
Verinin farklı polinom dereceleriyle uyumu
Derece 1 her iki sette de yüksek hata gösterir - bu yetersiz uyumdur. Derece 2 dengelidir. Derece 12 daha düşük eğitim hatasına ama çok daha yüksek test hatasına sahiptir - bu aşırı uyumdur.
Çapraz doğrulama
En iyi dereceyi bulmanın doğru yolu çapraz doğrulamadır - özel olarak k-katlı çapraz doğrulama.
Fikir, verinizi
kalt kümeye ayırmak, sonra bunlarınk-1'inde eğitip birini ayırarak test etmek ve her alt küme bir kez test kümesi olana kadar tekrarlamaktır. Son olarak, tüm katlardaki hatayı ortalayıp bunu her aday derece için yapar ve en düşük ortalama test hatasına sahip olanı seçersiniz.Uygulama, açıklamadan çok daha basittir:
Derece hata karşılaştırması
Ya da görsel olarak sunulmuş hâli:
Çapraz doğrulama hata karşılaştırması
CV hatası, faydalı polinom terimleri ekledikçe düşer, model aşırı uyuma başladığında ise tekrar yükselir.
İki derece benzer CV hatası veriyorsa, daha düşük olanı seçin. Aynı performansı veren daha basit bir model her zaman daha iyi tercihtir.
Temel Dikkat Noktaları ve Sınırlamalar
Polinom regresyon sizi yanlış sonuçlara götürebilecek birkaç yol barındırır. Şimdi bunlara bakalım.
Aykırı değerlere duyarlılık
Aykırı değerler polinom regresyonu, doğrusal regresyondan daha fazla etkiler.
En küçük kareler, toplamadan önce her artığı kareye alır. Eğilimden uzak tek bir veri noktası orantısız derecede büyük bir hataya katkıda bulunur ve model, bu hatayı azaltmak için eğrisini büker - bu, her yerde uyumu bozsa bile.
Bu etki derece arttıkça kötüleşir. Yüksek dereceli bir polinom, bir aykırı değerin peşinden gidecek kadar esnektir; bu da eğriyi verinizin büyük kısmından uzaklaştırıp tek bir kötü noktaya uydurur.
Bunu aşmanın bir yolu, uydurmadan önce verinizi temizlemektir. Verinizi görselleştirin, aykırı değerleri belirleyin ve bunların gerçek sinyali mi yoksa gürültüyü mü temsil ettiğine karar verin. Eğer gürültü iseler - ölçüm hataları, veri giriş hataları, bozulmuş kayıtlar - onları kaldırın. Gerçeklerse, RANSAC veya Huber regresyon gibi aykırı değerlere daha dayanıklı bir uydurma yöntemini düşünün.
Aşırı uyum
Her polinom terimi eklediğinizde modele daha fazla esneklik kazandırırsınız. Bir noktadan sonra bu esneklik fayda sağlamaz ve model, eğitim verinizdeki gerçek deseni değil rastgele gürültüyü uydurmaya başlar. Sonuç, eğitim verisinde iyi, yeni veride ise dağılan bir eğridir.
Zor olan, yalnızca eğitim hatasına bakarsanız aşırı uyumun görünmez olmasıdır. 10. derece bir polinom, 2. derece bir polinoma kıyasla eğitim MSE'sine neredeyse her zaman daha düşük değer verir. Bu, daha iyi bir model olduğu anlamına gelmez.
Şöyle yaklaşmalısınız:
Polinom regresyon, eğrisel bir ilişki beklemek için iyi bir nedeniniz olduğunda ve dereceyi yeterince düşük tutabildiğinizde en iyi sonucu verir.
Polinom Regresyona Alternatifler
Polinom regresyon her zaman doğru araç değildir - kelime oyunu yok - şu alternatiflerden bazıları sizin için daha uygun olabilir.
Splines
Splines, küresel kararsızlık sorununu çözer.
10. derece bir polinom uydurduğunuzda, her katsayı her veri noktasından etkilenir. Verinizin bir bölgesindeki bir değişim, eğriyi her yerde etkiler. Splines, verinizi segmentlere ayırıp her birine ayrı, düşük dereceli bir polinom uydurarak bunu önler. Segmentler düğüm (knot) adı verilen noktalarda birleştirilir ve birleşimlerde genel eğrinin düzgün kalmasını sağlayan kısıtlar konur.
Sonuç, gerektiği yerde esnek, diğer her yerde kararlı bir eğridir.
Python'da
scipyvescikit-learnsağlam spline uygulamalarına sahiptir:Spline ve yüksek dereceli bir polinom
Tekrar etmek gerekirse, veriniz farklı bölgelerde farklı davranışlar gösteriyorsa ya da tek bir polinom eğri, yüksek dereceye çıkmadan şekli yakalayamıyorsa splines kullanın.
Destek Vektör Regresyonu
Destek Vektör Regresyonu (SVR) farklı bir yaklaşım benimser.
Tüm noktalar üzerinde kare hatayı en aza indiren bir eğri uydurmak yerine, mümkün olduğunca çok nokta için tanımlı bir hata marjı içinde kalan, bu marj içindeki noktaları ise görmezden gelen bir fonksiyon bulmaya çalışır. Bu, onu polinom regresyona kıyasla aykırı değerlere karşı daha az duyarlı kılar.
Polinom regresyonla bağlantı, çekirdek hilesi (kernel trick) üzerinden kurulur. Polinom çekirdeğiyle SVR, polinom regresyona benzer doğrusal olmayan ilişkileri uydurabilir - ancak düzenlileştirme parametreleriyle uyuma daha iyi genelleme ve daha fazla kontrol sunar.
SVR ve yüksek dereceli bir polinom
Aykırı değerleri kaldıramadığınızda, önyargı-varyans değiş tokuşu üzerinde daha fazla kontrole ihtiyaç duyduğunuzda ya da çapraz doğrulamaya rağmen polinom regresyon sürekli aşırı uyum gösterdiğinde SVR iyi bir seçimdir.
Sonuç
Bu yazıda, polinom regresyonun doğrusal regresyonu eğrilere uyduracak şekilde nasıl genişlettiğini, en küçük kareler tahmininin en iyi katsayıları nasıl bulduğunu ve bu katsayıları tek tek yorumlamanın neden pek bir şey söylemediğini gösterdim.
Seçeceğiniz derece her şeyden daha önemlidir. Çok düşük olursa yetersiz uyuma, çok yüksek olursa aşırı uyuma yol açar. Çapraz doğrulama, tatlı noktayı nesnel olarak bulmanızı sağlar. Ve polinom regresyon doğru uyum değilse, splines ve SVR bilmeye değer sağlam alternatiflerdir.
Tüm bunlara dair sezgi geliştirmenin en iyi yolu, bunu kendi veriniz üzerinde kullanmaktır. Doğrusal olmayan bir ilişki olduğundan şüphelendiğiniz bir veri kümesi seçin, önce doğrusal bir model uydurun, artık grafiğini çizin ve polinom regresyonun farklı olarak ne yaptığını görün. Uygulamada bu hattı görmek için R ile Doğrusal Olmayan Modeller ve İçgörüler rehberimizi okuyun.