Doğrusal Modeller: Regresyon ve Sınıflandırma
Doğrusal regresyon ve lojistik regresyon modellerini eğitin.
Doğrusal Modeller: Regresyon ve Sınıflandırma, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.
Doğrusal Regresyon
LinearRegression, en küçük kareler hatasını en aza indirerek bir doğruyu (veya hiper düzlemi) uyarlar.
from sklearn.linear_model import LinearRegression
from sklearn.datasets import make_regression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
X, y = make_regression(n_samples=200, n_features=5, noise=10, random_state=0)
X_tr, X_te, y_tr, y_te = train_test_split(X, y, random_state=0)
model = LinearRegression().fit(X_tr, y_tr)
print("RMSE:", mean_squared_error(y_te, model.predict(X_te))**0.5)Model Katsayıları
Uyarlamadan sonra coef_ (özellik ağırlıkları) ve intercept_ değerlerini inceleyin.
from sklearn.linear_model import LinearRegression
import numpy as np
X = np.array([[1],[2],[3]])
y = np.array([2, 4, 6])
model = LinearRegression().fit(X, y)
print("Coef:", model.coef_) # [2.]
print("Intercept:", model.intercept_) # ~0Ridge ve Lasso Regresyonu
Ridge (L2) ve Lasso (L1), aşırı uyumu önlemek için düzenlileştirme ekler. alpha, düzenlileştirme gücünü denetler.
from sklearn.linear_model import Ridge, Lasso
from sklearn.datasets import make_regression
X, y = make_regression(n_features=20, noise=15, random_state=0)
ridge = Ridge(alpha=1.0).fit(X, y)
lasso = Lasso(alpha=0.1).fit(X, y)
print("Ridge coef[:5]:", ridge.coef_[:5])
print("Lasso coef[:5]:", lasso.coef_[:5]) # some are 0 (sparse)Lojistik Regresyon
LogisticRegression, ikili veya çok sınıflı problemler için doğrusal bir sınıflandırıcıdır. Adına rağmen sınıf olasılıklarını tahmin eder.
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
X, y = make_classification(random_state=0)
X_tr, X_te, y_tr, y_te = train_test_split(X, y, random_state=0)
model = LogisticRegression().fit(X_tr, y_tr)
print("Accuracy:", accuracy_score(y_te, model.predict(X_te)))Çok Sınıflı Lojistik Regresyon
3 veya daha fazla sınıf için multi_class="multinomial" ayarını yapın veya varsayılan OvR'yi (bire karşı geri kalan) kullanın.
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
X, y = load_iris(return_X_y=True)
model = LogisticRegression(max_iter=200).fit(X, y)
print("Classes:", model.classes_) # [0 1 2]
print("Accuracy:", model.score(X, y))Doğrusal Modellerde Özellik Ölçekleme
Özellikle düzenlileştirme kullanırken, doğrusal modeller için özellikleri her zaman ölçeklendirin. Ölçeklenmemiş özellikler, yanıltıcı biçimde farklı cezalar doğurur.
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
pipe = Pipeline([
("scale", StandardScaler()),
("clf", LogisticRegression())
])
pipe.fit(X_tr, y_tr)
print(pipe.score(X_te, y_te))Öğrenme Eğrisi
Bir öğrenme eğrisi, daha fazla eğitim verisiyle model performansının nasıl iyileştiğini gösterir — yetersiz veya aşırı uyumu teşhis etmek için kullanışlıdır.
from sklearn.model_selection import learning_curve
import numpy as np
train_sizes, train_scores, val_scores = learning_curve(
LogisticRegression(), X, y, cv=5,
train_sizes=np.linspace(0.1, 1.0, 5)
)
print("Val mean:", val_scores.mean(axis=1))Regresyon için R² Skoru
r2_score, açıklanan varyansın oranını ölçer. 1.0 kusursuzdur; 0, modelin ortalamayı tahmin etmekten daha iyi olmadığını belirtir.
from sklearn.metrics import r2_score
from sklearn.linear_model import LinearRegression
from sklearn.datasets import make_regression
X, y = make_regression(noise=20, random_state=0)
model = LinearRegression().fit(X, y)
print("R²:", r2_score(y, model.predict(X)))Polinom Özellikler
Doğrusal bir modelle doğrusal olmayan ilişkileri uydurmak için PolynomialFeatures kullanın.
from sklearn.preprocessing import PolynomialFeatures
from sklearn.pipeline import Pipeline
from sklearn.linear_model import LinearRegression
import numpy as np
X = np.array([[1],[2],[3],[4],[5]])
y = np.array([1, 4, 9, 16, 25]) # y = x^2
pipe = Pipeline([
("poly", PolynomialFeatures(degree=2)),
("lr", LinearRegression())
])
pipe.fit(X, y)
print(pipe.predict([[6]])) # ~36SGDClassifier ve SGDRegressor
Stokastik gradyan inişi, standart çözücülerin çok yavaş kaldığı çok büyük veri kümelerine ölçeklenebilir.
from sklearn.linear_model import SGDClassifier
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
from sklearn.datasets import make_classification
X, y = make_classification(n_samples=100_000, random_state=0)
pipe = Pipeline([("sc", StandardScaler()), ("sgd", SGDClassifier())])
pipe.fit(X, y)
print(pipe.score(X, y))Düzenlileştirme Yolları
RidgeCV/LassoCV ile alpha değerini bir ızgara üzerinde değiştirin; bu araçlar çapraz doğrulama yoluyla en iyi alpha değerini otomatik olarak seçer.
from sklearn.linear_model import RidgeCV, LassoCV
from sklearn.datasets import make_regression
X, y = make_regression(n_features=20, noise=10, random_state=0)
ridge = RidgeCV(alphas=[0.1, 1, 10]).fit(X, y)
print("Best alpha:", ridge.alpha_)Kısa Kontrol
Ridge ve Lasso regresyonu arasındaki temel fark nedir?
Özet
Regresyon için LinearRegression, sınıflandırma için LogisticRegression kullanın. Düzenlileştirme için Ridge/Lasso ekleyin. Özellikleri her zaman ölçeklendirin. Doğrusal olmayan problemler için PolynomialFeatures kullanın. Değerlendirmeyi regresyonda r2_score, sınıflandırmada ise accuracy_score ile yapın.
Sıkça Sorulan Sorular
“Doğrusal Modeller: Regresyon ve Sınıflandırma” dersi ücretsiz mi?
Evet — “Doğrusal Modeller: Regresyon ve Sınıflandırma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.
“Doğrusal Modeller: Regresyon ve Sınıflandırma” dersinde ne öğreneceğim?
Doğrusal regresyon ve lojistik regresyon modellerini eğitin. Python Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Python Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Python Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Doğrusal Modeller: Regresyon ve Sınıflandırma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Python Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Python Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- scikit-learn API'si: fit, transform, predict
- Doğrusal Modeller: Regresyon ve Sınıflandırma
- Ağaç Tabanlı Modeller: Karar Ağaçları ve Rastgele Ormanlar
- Model Değerlendirme ve Çapraz Doğrulama