Lineární regrese: od dat k optimalizovanému modelu
Lineární regrese modeluje lineární závislosti mezi prediktory a cílovou proměnnou. Pro párovou regresi má rovnice tvar y = b₀ + b₁ × x, kde x je prediktor, y je odezva, b₀ je intercept (volný člen), b₁ je slope (sklon). Koeficienty určují polohu přímky v rovině.
Základem jsou data ve formátu tabulky s příznaky a odezvou. Příklad: závislost ceny bytu na počtu pokojů. Kvalita modelu závisí na reprezentativnosti vzorku — princip „smetí dovnitř, smetí ven“ určuje výsledek.
Modely jsou užitečné pro predikce a odhalování zákonitostí. Transformace tabulkových dat na analytický výraz umožňuje extrapolaci na nová pozorování.
Metoda nejmenších čtverců
OLS (Ordinary Least Squares) minimalizuje součet čtverců reziduí: ∑(y_i - ŷ_i)². Analytické řešení: b₁ = Cov(x, y) / Var(x), b₀ = ȳ - b₁ × x̄.
# Příklad výpočtu koeficientů
import numpy as np
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 5, 4, 5])
b1 = np.cov(x, y)[0,1] / np.var(x)
b0 = np.mean(y) - b1 * np.mean(x)
print(f'b0: {b0:.2f}, b1: {b1:.2f}')
Tento přístup funguje pro nedegenerovaná data, ale vyžaduje inverzi matice (XᵀX)⁻¹ v multidimenzionálním případě.
Hodnocení kvality modelu
Vizuálně: scatter plot predikcí vs. skutečných hodnot, grafy reziduí. Metriky:
- R² (koeficient determinace): podíl vysvětlené variance, 0–1.
- RMSE: √(MSE), v jednotkách odezvy.
- MAE: průměrná absolutní chyba.
- MAPE/SMAPE: procentuální chyby.
Grafy reziduí odhalují heteroskedasticitu nebo nelinearitu.
Rozdělení dat a validace
Rozdělení na train/test (80/20) předchází přeučení. Křížová validace (k-fold) průměruje metriky přes foldy.
def train_test_split(X, y, test_size=0.2):
indices = np.arange(len(X))
np.random.shuffle(indices)
split = int(len(X) * (1 - test_size))
return X[indices[:split]], X[indices[split:]], y[indices[:split]], y[indices[split:]]
Vícenásobná regrese
Rozšíření na y = b₀ + b₁x₁ + ... + bₙxₙ. Maticová forma: ŷ = Xβ, řešení β = (XᵀX)⁻¹Xᵀy. Předzpracování:
- Normalizace: (x - min)/(max - min).
- Standardizace: (x - μ)/σ.
- One-hot encoding kategoriálních příznaků.
Pravděpodobnostní interpretace
Model předpokládá normální rozdělení chyb: ε ~ N(0, σ²). Predikční interval: *ŷ ± t SE √(1 + 1/n + (x - x̄)² / SXX)*. Metoda maximální věrohodnosti (MLE) optimalizuje log-likelihood.
Zpracování odlehlých hodnot
Metody detekce:
- Mahalanobisova vzdálenost: zobecněná vzdálenost v multidimenzionálním prostoru.
- Cookova vzdálenost: vliv pozorování na koeficienty.
- LOF (Local Outlier Factor): lokální hustota.
- RANSAC: konsenzus náhodných podvzorků.
Odstranění nebo robustní regresory (Huberova ztrátová funkce).
Gradientní sestup a regularizace
Pro velká data: iterativní optimalizace θ := θ - α ∇J(θ), kde J je ztrátová funkce.
- L1 (Lasso): |β|, řídkost.
- L2 (Ridge): β², zmenšení.
Hyperparametr λ se volí pomocí CV.
def gradient_descent(X, y, lr=0.01, epochs=1000):
theta = np.zeros(X.shape[1])
for _ in range(epochs):
pred = X @ theta
grad = X.T @ (pred - y) / len(y)
theta -= lr * grad
return theta
Co je důležité
- Lineární regrese je základní nástroj pro lineární závislosti, škálovatelný na multidimenzionální úlohy.
- OLS poskytuje analytické řešení, gradientní sestup je pro velká data.
- Metriky R², RMSE hodnotí kvalitu; grafy reziduí diagnostikují problémy.
- Regularizace (L1/L2) bojuje s přeučením a multikolinearitou.
- Předzpracování (škálování, odstranění odlehlých hodnot) je klíčové pro stabilitu.
— Editorial Team
Zatím žádné komentáře.