0Pricing
Python Academy · Pelajaran

API scikit-learn: fit, transform, predict

Pahami interface estimator dan alur pembagian train/test.

API scikit-learn: fit, transform, predict adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 1 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.

Apa Itu scikit-learn?

scikit-learn adalah pustaka Python pilihan utama untuk pembelajaran mesin klasik. Pustaka ini menyediakan API yang konsisten: setiap estimator memiliki fit(), dan sebagian besar memiliki predict() atau transform().

from sklearn.linear_model import LinearRegression
import numpy as np

X = np.array([[1],[2],[3],[4],[5]])
y = np.array([2, 4, 6, 8, 10])

model = LinearRegression().fit(X, y)
print(model.predict([[6]]))   # [12.]

Pemisahan Pelatihan/Pengujian

Selalu pisahkan data sebelum pelatihan untuk mengevaluasi seberapa baik model menggeneralisasi data yang belum pernah dilihat.

from sklearn.model_selection import train_test_split
import numpy as np

X = np.random.rand(100, 5)
y = (X[:,0] > 0.5).astype(int)

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)
print(X_train.shape, X_test.shape)   # (80,5) (20,5)

fit() — Pelatihan

estimator.fit(X, y) melatih model menggunakan X (fitur) dan y (label). Untuk metode tanpa pengawasan, hanya X yang diteruskan.

from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification

X, y = make_classification(n_samples=200, random_state=0)
model = LogisticRegression()
model.fit(X, y)
print("Trained:", model.classes_)

predict() dan predict_proba()

predict(X) mengembalikan label kelas; predict_proba(X) mengembalikan probabilitas kelas untuk pengklasifikasi.

from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification

X, y = make_classification(random_state=0)
model = LogisticRegression().fit(X, y)

print(model.predict(X[:5]))          # [0 1 0 ...]
print(model.predict_proba(X[:2]))    # [[0.7 0.3] ...]

Transformer: fit dan transform

Transformer (penskala, encoder) memiliki fit(X) + transform(X). Selalu lakukan fit hanya pada data pelatihan, lalu transformasikan data pelatihan dan pengujian.

from sklearn.preprocessing import StandardScaler
import numpy as np

X_train = np.array([[1,2],[3,4],[5,6]])
X_test  = np.array([[2,3],[4,5]])

scaler = StandardScaler()
X_train_s = scaler.fit_transform(X_train)   # fit + transform
X_test_s  = scaler.transform(X_test)        # transform only (using train stats)

Pipeline

Pipeline menggabungkan transformer dan estimator menjadi satu objek. Pipeline mencegah kebocoran data dengan menerapkan transformasi secara tepat dalam validasi silang.

from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC

pipe = Pipeline([
    ("scaler", StandardScaler()),
    ("clf", SVC())
])
pipe.fit(X_train, y_train)
print(pipe.score(X_test, y_test))

Akurasi dan Metrik Lain

Gunakan accuracy_score, f1_score, dan classification_report untuk mengevaluasi pengklasifikasi.

from sklearn.metrics import accuracy_score, classification_report

y_pred = model.predict(X_test)
print(accuracy_score(y_test, y_pred))
print(classification_report(y_test, y_pred))

Validasi Silang

cross_val_score mengevaluasi model menggunakan validasi silang k-fold tanpa memisahkan data secara manual.

from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification

X, y = make_classification(random_state=0)
scores = cross_val_score(LogisticRegression(), X, y, cv=5)
print(f"CV scores: {scores.mean():.3f} ± {scores.std():.3f}")

Penyetelan Hyperparameter dengan GridSearchCV

GridSearchCV menelusuri semua kemungkinan dalam kisi parameter menggunakan validasi silang untuk menemukan hyperparameter terbaik.

from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVC
from sklearn.datasets import make_classification

X, y = make_classification(random_state=0)
param_grid = {"C": [0.1, 1, 10], "kernel": ["rbf", "linear"]}
gs = GridSearchCV(SVC(), param_grid, cv=5)
gs.fit(X, y)
print(gs.best_params_, gs.best_score_)

Pra-pemrosesan: LabelEncoder dan OneHotEncoder

Enkode label kategorikal dengan LabelEncoder dan fitur kategorikal dengan OneHotEncoder atau ColumnTransformer.

from sklearn.preprocessing import LabelEncoder, OneHotEncoder
import numpy as np

le = LabelEncoder()
print(le.fit_transform(["cat","dog","cat","fish"]))   # [0 1 0 2]

ohe = OneHotEncoder(sparse_output=False)
print(ohe.fit_transform([["red"],["green"],["blue"]]))

Menyimpan dan Memuat Model

Simpan model yang telah dilatih dengan joblib (lebih cepat daripada pickle untuk array NumPy).

import joblib
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification

X, y = make_classification(random_state=0)
model = LogisticRegression().fit(X, y)

joblib.dump(model, "model.joblib")
loaded = joblib.load("model.joblib")
print(loaded.predict(X[:3]))

Pemeriksaan Singkat

Mengapa Anda sebaiknya memanggil scaler.fit() hanya pada data pelatihan, bukan pada data pengujian?

Ringkasan

API seragam scikit-learn: fit() melatih, predict() membuat prediksi, dan transform() melakukan pra-pemrosesan. Gunakan Pipeline untuk menggabungkan langkah-langkah. Pisahkan data dengan train_test_split, evaluasi dengan cross_val_score, dan lakukan penyetelan dengan GridSearchCV.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “API scikit-learn: fit, transform, predict” gratis?

Ya — teks lengkap “API scikit-learn: fit, transform, predict” 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 “API scikit-learn: fit, transform, predict”?

Pahami interface estimator dan alur pembagian train/test. 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 1 dari 4.

Berapa lama pelajaran “API scikit-learn: fit, transform, predict” 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

  1. API scikit-learn: fit, transform, predict
  2. Model Linear: Regresi dan Klasifikasi
  3. Model Berbasis Pohon: Decision Tree dan Random Forest
  4. Evaluasi Model dan Validasi Silang
← Kembali ke Python Academy