API scikit-learn: fit, transform, predict
Fahami antara muka penganggar dan aliran kerja pembahagian latihan/ujian.
API scikit-learn: fit, transform, predict ialah pelajaran Python Academy percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Python Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Python Academy merangkumi sejumlah 4 pelajaran.
Apakah scikit-learn?
scikit-learn ialah pustaka Python pilihan utama untuk pembelajaran mesin klasik. Ia menyediakan API yang konsisten: setiap penganggar mempunyai fit(), dan kebanyakannya mempunyai 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 Latihan/Ujian
Sentiasa pisahkan data sebelum latihan untuk menilai sejauh mana model dapat membuat generalisasi terhadap 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() — Latihan
estimator.fit(X, y) melatih model menggunakan X (ciri) dan y (label). Untuk kaedah tanpa seliaan, hanya X dihantar.
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) memulangkan label kelas; predict_proba(X) memulangkan kebarangkalian kelas bagi pengelas.
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, pengekod) mempunyai fit(X) + transform(X). Sentiasa lakukan fit pada data latihan sahaja, kemudian lakukan transform pada data latihan dan ujian.
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)Saluran Paip
Pipeline menggabungkan transformer dan penganggar ke dalam satu objek. Ia mencegah kebocoran data dengan menggunakan transformasi dalam pengesahan silang secara betul.
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))Ketepatan dan Metrik Lain
Gunakan accuracy_score, f1_score dan classification_report untuk menilai pengelas.
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))Pengesahan Silang
cross_val_score menilai model menggunakan pengesahan silang k-lipatan tanpa membahagikan 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}")Penalaan Hiperparameter dengan GridSearchCV
GridSearchCV mencari seluruh grid parameter menggunakan pengesahan silang untuk menemukan hiperparameter 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_)Prapemprosesan: LabelEncoder dan OneHotEncoder
Kodkan label kategori dengan LabelEncoder dan ciri kategori 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 Memuatkan Model
Kekalkan model terlatih dengan joblib (lebih pantas daripada pickle untuk tatasusunan 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]))Semakan Pantas
Mengapakah anda patut memanggil scaler.fit() hanya pada data latihan dan bukan pada data ujian?
Ringkasan
API seragam scikit-learn: fit() melatih, predict() membuat inferens dan transform() melakukan prapemprosesan. Gunakan Pipeline untuk menggabungkan langkah. Pisahkan data dengan train_test_split, nilai dengan cross_val_score dan tala dengan GridSearchCV.
Pelajari Python dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 76
- Pelajaran
- 320
Soalan Lazim
Adakah pelajaran “API scikit-learn: fit, transform, predict” percuma?
Ya — teks penuh “API scikit-learn: fit, transform, predict” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Python Academy, tingkat taraf kepada CoddyKit PRO. Kursus Python Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “API scikit-learn: fit, transform, predict”?
Fahami antara muka penganggar dan aliran kerja pembahagian latihan/ujian. Anda berlatih Python Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Python Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Python Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.
Berapa lamakah pelajaran “API scikit-learn: fit, transform, predict” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Python Academy ini?
Ya. Setiap pelajaran Python Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- API scikit-learn: fit, transform, predict
- Model Linear: Regresi dan Pengelasan
- Model Berasaskan Pepohon: Pepohon Keputusan dan Hutan Rawak
- Penilaian Model dan Pengesahan Silang