API ของ scikit-learn: fit, transform, predict
ทำความเข้าใจอินเทอร์เฟซของตัวประมาณค่าและกระบวนการแบ่งข้อมูลฝึก/ทดสอบ
API ของ scikit-learn: fit, transform, predict เป็นบทเรียน Python Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Python Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน
scikit-learn คืออะไร
scikit-learn เป็นไลบรารี Python ยอดนิยมสำหรับการเรียนรู้ของเครื่องแบบดั้งเดิม โดยมี API ที่สอดคล้องกัน: ตัวประมาณค่าทุกตัวมี fit() และส่วนใหญ่มี predict() หรือ 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.]การแบ่งข้อมูลฝึกและทดสอบ
แบ่งข้อมูลก่อนฝึกโมเดลเสมอ เพื่อประเมินว่าโมเดลสามารถใช้งานกับข้อมูลที่ไม่เคยเห็นมาก่อนได้ดีเพียงใด
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() — การฝึกโมเดล
estimator.fit(X, y) ฝึกโมเดลด้วย X (ฟีเจอร์) และ y (ป้ายกำกับ) สำหรับวิธีการแบบไม่มีผู้สอน จะส่งเฉพาะ X เท่านั้น
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() และ predict_proba()
predict(X) ส่งคืนป้ายกำกับคลาส ส่วน predict_proba(X) ส่งคืนความน่าจะเป็นของคลาสสำหรับตัวจำแนก
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] ...]ตัวแปลง: fit และ transform
ตัวแปลง (ตัวปรับสเกลและตัวเข้ารหัส) มี fit(X) + transform(X) เรียกใช้ fit กับข้อมูลฝึกเท่านั้น แล้วจึง transform ทั้งข้อมูลฝึกและข้อมูลทดสอบเสมอ
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 เชื่อมตัวแปลงและตัวประมาณค่าให้เป็นออบเจ็กต์เดียว ป้องกันข้อมูลรั่วไหลด้วยการใช้การแปลงภายในกระบวนการตรวจสอบไขว้อย่างถูกต้อง
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))ความแม่นยำและตัวชี้วัดอื่น ๆ
ใช้ accuracy_score, f1_score และ classification_report เพื่อประเมินตัวจำแนก
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))การตรวจสอบไขว้
cross_val_score ประเมินโมเดลด้วยการตรวจสอบไขว้แบบ k-fold โดยไม่ต้องแบ่งข้อมูลด้วยตนเอง
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}")การปรับไฮเปอร์พารามิเตอร์ด้วย GridSearchCV
GridSearchCV ค้นหาทุกค่าที่เป็นไปได้ในตารางพารามิเตอร์ด้วยการตรวจสอบไขว้ เพื่อหาไฮเปอร์พารามิเตอร์ที่ดีที่สุด
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_)การเตรียมข้อมูล: LabelEncoder และ OneHotEncoder
เข้ารหัสป้ายกำกับประเภทข้อมูลด้วย LabelEncoder และเข้ารหัสฟีเจอร์ประเภทข้อมูลด้วย OneHotEncoder หรือ 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"]]))การบันทึกและโหลดโมเดล
จัดเก็บโมเดลที่ฝึกแล้วด้วย joblib (ทำงานกับอาร์เรย์ NumPy ได้เร็วกว่า pickle)
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]))ตรวจสอบความเข้าใจ
เหตุใดจึงควรเรียกใช้ scaler.fit() กับข้อมูลฝึกเท่านั้น ไม่ใช่ข้อมูลทดสอบ
สรุปทบทวน
API ที่สอดคล้องกันของ scikit-learn: fit() ใช้ฝึกโมเดล predict() ใช้ทำนาย และ transform() ใช้เตรียมข้อมูลล่วงหน้า ใช้ Pipeline เพื่อเชื่อมขั้นตอนต่าง ๆ แบ่งข้อมูลด้วย train_test_split ประเมินด้วย cross_val_score และปรับค่าด้วย GridSearchCV
คำถามที่พบบ่อย
บทเรียน “API ของ scikit-learn: fit, transform, predict” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “API ของ scikit-learn: fit, transform, predict” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Python Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “API ของ scikit-learn: fit, transform, predict”
ทำความเข้าใจอินเทอร์เฟซของตัวประมาณค่าและกระบวนการแบ่งข้อมูลฝึก/ทดสอบ คุณปฏิบัติ Python Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Python Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Python Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “API ของ scikit-learn: fit, transform, predict” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Python Academy นี้ได้ไหม
ได้ บทเรียน Python Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- API ของ scikit-learn: fit, transform, predict
- โมเดลเชิงเส้น: การถดถอยและการจำแนกประเภท
- โมเดลที่ใช้ต้นไม้: ต้นไม้ตัดสินใจและป่าสุ่ม
- การประเมินโมเดลและการตรวจสอบไขว้