Model Linear: Regresi dan Klasifikasi
Latih model regresi linear dan regresi logistik.
Model Linear: Regresi dan Klasifikasi adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Python Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Python Academy mencakup 4 pelajaran total.
Regresi Linear
LinearRegression menyesuaikan garis lurus (atau hiperbidang) dengan meminimalkan kesalahan kuadrat terkecil.
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)Koefisien Model
Setelah penyesuaian model, periksa coef_ (bobot fitur) dan intercept_.
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_) # ~0Regresi Ridge dan Lasso
Ridge (L2) dan Lasso (L1) menambahkan regularisasi untuk mencegah model terlalu menyesuaikan data. alpha mengendalikan kekuatan regularisasi.
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)Regresi Logistik
LogisticRegression adalah pengklasifikasi linear untuk masalah biner atau multikelas. Meskipun namanya demikian, model ini memprediksi probabilitas kelas.
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)))Regresi Logistik Multikelas
Atur multi_class="multinomial" atau gunakan OvR bawaan (satu lawan semua) untuk 3 kelas atau lebih.
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))Penskalaan Fitur untuk Model Linear
Selalu skalakan fitur untuk model linear, terutama jika menggunakan regularisasi. Fitur yang tidak diskalakan menghasilkan penalti yang berbeda secara menyesatkan.
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))Kurva Pembelajaran
Kurva pembelajaran menunjukkan bagaimana kinerja model meningkat seiring bertambahnya data pelatihan—berguna untuk mendiagnosis model yang kurang atau terlalu menyesuaikan data.
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))Skor R² untuk Regresi
r2_score mengukur proporsi varians yang dijelaskan. Nilai 1.0 berarti sempurna, sedangkan 0 berarti model tidak lebih baik daripada memprediksi rata-rata.
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)))Fitur Polinomial
Gunakan PolynomialFeatures untuk menyesuaikan hubungan nonlinier dengan model linear.
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 dan SGDRegressor
Penurunan gradien stokastik dapat menangani kumpulan data yang sangat besar, ketika pemecah standar terlalu lambat.
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))Lintasan Regularisasi
Variasikan alpha pada suatu kisi dengan RidgeCV/LassoCV, yang secara otomatis memilih alpha terbaik melalui validasi silang.
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_)Pemeriksaan Singkat
Apa perbedaan utama antara regresi Ridge dan Lasso?
Rangkuman
Gunakan LinearRegression untuk regresi dan LogisticRegression untuk klasifikasi. Tambahkan Ridge/Lasso untuk regularisasi. Selalu skalakan fitur. Gunakan PolynomialFeatures untuk masalah nonlinier. Evaluasi dengan r2_score (regresi) atau accuracy_score (klasifikasi).
Belajar Python dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 76
- Pelajaran
- 320
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Model Linear: Regresi dan Klasifikasi” gratis?
Ya — teks lengkap “Model Linear: Regresi dan Klasifikasi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Python Academy, upgrade ke CoddyKit PRO. Kursus Python Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Model Linear: Regresi dan Klasifikasi”?
Latih model regresi linear dan regresi logistik. Kamu berlatih Python Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Python Academy?
Tidak diperlukan pengalaman sebelumnya. Python Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Model Linear: Regresi dan Klasifikasi” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Python Academy ini?
Ya. Setiap pelajaran Python Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- API scikit-learn: fit, transform, predict
- Model Linear: Regresi dan Klasifikasi
- Model Berbasis Pohon: Decision Tree dan Random Forest
- Evaluasi Model dan Validasi Silang