Quiz
2 gio
Bài 15/15

Tổng kết và Bài kiểm tra

Ôn tập kiến thức và bài kiểm tra đánh giá cuối khóa

Tổng ket khoa hoc ML Fundamentals

Tổng quan kien thuc

Cấu trúc khoa hoc

Chủ đềNội dung chính
Supervised Learning
- RegressionLinear Regression, Polynomial Regression
- ClassificationLogistic Regression, Decision Tree, Random Forest, XGBoost
Unsupervised Learning
- ClusteringK-Means
- Dimensionality ReductionPCA
- Anomaly DetectionIsolation Forest
Evaluation
- MetricsAccuracy, Precision, Recall, F1-Score, ROC-AUC
- ValidationCross-Validation, GridSearchCV
Data Processing
- PreprocessingFeature Scaling, Missing Values, Encoding

ML Algorithm Cheat Sheet

Hinh: Scikit-learn Algorithm Cheat Sheet


Checklist kiến thức

1. Preprocessing

  • Xử lý missing values (imputation)
  • Feature scaling (StandardScaler, MinMaxScaler)
  • Encoding categorical (OneHot, Label)
  • Train/Test split đúng cách

2. Algorithms

  • Linear Regression: y^=β0+β1x\hat{y} = \beta_0 + \beta_1 x
  • Logistic Regression: σ(z)=11+ez\sigma(z) = \frac{1}{1+e^{-z}}
  • Decision Tree: Gini Impurity, Information Gain
  • K-Means: Inertia, Elbow Method
  • Random Forest, XGBoost

3. Evaluation

  • Confusion Matrix: TP, TN, FP, FN
  • Precision = TPTP+FP\frac{TP}{TP+FP}
  • Recall = TPTP+FN\frac{TP}{TP+FN}
  • F1 = 2\tıˋmesP\tıˋmesRP+R\frac{2 \tìmes P \tìmes R}{P + R}
  • ROC-AUC, PR Curve

4. Model Selection

  • Cross-Validation (K-Fold, Stratified)
  • GridSearchCV, RandomizedSearchCV
  • Bias-Variance Tradeoff

Bài kiểm tra cuối khóa

Phần 1: Trắc nghiệm (40 điểm)

Câu 1: Trong bài toán classification với 100 samples, model dự đoán dung 80 positive va 5 negative, sai 10 positive va 5 negative. Precision là:

A. 0.80
B. 0.89
C. 0.94
D. 0.85


Câu 2: Khi nào nên dùng F1-Score thay vì Accuracy?

A. Dataset cân bằng
B. Dataset imbalanced
C. Chỉ quan tâm positive class
D. Cả B và C


Câu 3: Công thức Gini Impurity là:

A. Gini=1pi2Gini = 1 - \sum p_i^2
B. Gini=pi2Gini = \sum p_i^2
C. Gini=pilog(pi)Gini = -\sum p_i \log(p_i)
D. Gini=piqiGini = \sum |p_i - q_i|


Câu 4: Trong K-Means, Elbow Method dùng để:

A. Tính Silhouette Score
B. Chọn so clusters K
C. Khởi tạo centroids
D. Đánh giá convergence


Câu 5: Sigmoid function có output trong khoảng:

A. (,+)(-\infty, +\infty)
B. [0,1][0, 1]
C. [1,1][-1, 1]
D. (0,+)(0, +\infty)


Câu 6: Random Forest khac Bagging o điểm nao?

A. Sử dụng bootstrap sampling
B. Kết hợp nhiều trees
C. Random feature selection tại mỗi split
D. Voting để predict


Câu 7: Overfitting xảy ra khi:

A. Train error cao, test error cao
B. Train error thấp, test error cao
C. Train error cao, test error thấp
D. Train error thấp, test error thấp


Câu 8: PCA chọn principal components dựa trên:

A. Minimize variance
B. Maximize variance
C. Random selection
D. User input


Câu 9: XGBoost cải tiến so với Gradient Boosting bằng cách:

A. Loại bỏ regularization
B. Thêm L1, L2 regularization
C. Chi dùng đểcision tree
D. Không dùng learning rate


Câu 10: Stratified K-Fold nên dùng khi:

A. Regression problem
B. Classification voi imbalanced classes
C. Time series data
D. Small dataset


Phần 2: Tu luan (60 điểm)

Câu 11 (15 điểm): Cho confusion matrix:

Predicted 0Predicted 1
Actual 08515
Actual 11090

Tính: a) Accuracy
b) Precision (class 1)
c) Recall (class 1)
d) F1-Score (class 1)


Câu 12 (15 điểm): Cho data points:

PointXY
A12
B21
C45
D54

Voi K-Means (K=2), khởi tạo:

  • Centroid 1 = A = (1, 2)
  • Centroid 2 = D = (5, 4)

a) Gan moi điểm vao cluster (Iteration 1)
b) Cap nhat centroids
c) Tính Inertia sau iteration 1


Câu 13 (15 điểm): Giải thích su khac biet giữa: a) Bagging vs Boosting
b) Precision vs Recall
c) ROC-AUC vs PR-AUC


Câu 14 (15 điểm): Viet code Python hoan chinh de:

  • Load dataset (co the dung sklearn datasets)
  • Preprocess data (scale, split)
  • Train Random Forest
  • Tune hyperparameters voi GridSearchCV
  • Evaluate voi cross-validation
  • In confusion matrix va classification report

Dap an tham khao

Trắc nghiệm

CâuDap anGiải thích
1BTP=80, FP=5. Precision = 80/(80+5) = 0.89
2DF1 huu ich khi imbalanced va focus positive
3ACông thức Gini chuan
4BElbow tìm K tối ưu
5BSigmoid output (0,1)
6CRF them feature randomness
7BHigh variance = overfitting
8BPCA maximize variance
9BXGBoost co regularization
10BStratified cho classification imbalanced

Câu 11

a) Accuracy = 85+90200=0.875\frac{85+90}{200} = 0.875

b) Precision = 9090+15=0.857\frac{90}{90+15} = 0.857

c) Recall = 9090+10=0.9\frac{90}{90+10} = 0.9

d) F1 = 2\tıˋmes0.857\tıˋmes0.90.857+0.9=0.878\frac{2 \tìmes 0.857 \tìmes 0.9}{0.857 + 0.9} = 0.878

Câu 12

a) Khoang cach:

Pointd(C1)d(C2)Cluster
A04.47C1
B1.414.24C1
C4.241.41C2
D4.470C2

b) New centroids:

  • C1 = ((1+2)/2, (2+1)/2) = (1.5, 1.5)
  • C2 = ((4+5)/2, (5+4)/2) = (4.5, 4.5)

c) Inertia: J=d(A,C1)2+d(B,C1)2+d(C,C2)2+d(D,C2)2J = d(A,C1)^2 + d(B,C1)^2 + d(C,C2)^2 + d(D,C2)^2 =0.52+0.52+0.52+0.52+0.52+0.52+0.52+0.52=2= 0.5^2+0.5^2 + 0.5^2+0.5^2 + 0.5^2+0.5^2 + 0.5^2+0.5^2 = 2

Câu 14 - Code mau

Python
1from sklearn.datasets import load_breast_cancer
2from sklearn.model_selection import train_test_split, GridSearchCV, cross_val_score
3from sklearn.preprocessing import StandardScaler
4from sklearn.ensemble import RandomForestClassifier
5from sklearn.metrics import classification_report, confusion_matrix
6import numpy as np
7
8# 1. Load data
9data = load_breast_cancer()
10X, y = data.data, data.target
11
12# 2. Preprocess
13scaler = StandardScaler()
14X_scaled = scaler.fit_transform(X)
15
16X_train, X_test, y_train, y_test = train_test_split(
17 X_scaled, y, test_size=0.2, random_state=42, stratify=y
18)
19
20# 3. Train Random Forest
21rf = RandomForestClassifier(random_state=42)
22
23# 4. GridSearchCV
24param_grid = {
25 'n_estìmators': [50, 100, 200],
26 'max_depth': [5, 10, None],
27 'min_samples_split': [2, 5]
28}
29
30grid_search = GridSearchCV(rf, param_grid, cv=5, scoring='f1', n_jobs=-1)
31grid_search.fit(X_train, y_train)
32
33print(f"Best params: {grid_search.best_params_}")
34print(f"Best CV F1: {grid_search.best_score_:.4f}")
35
36# 5. Cross-validation
37best_model = grid_search.best_estìmator_
38cv_scores = cross_val_score(best_model, X_train, y_train, cv=5, scoring='f1')
39print(f"\nCV Scores: {cv_scores}")
40print(f"Mean: {cv_scores.mean():.4f} (+/- {cv_scores.std()*2:.4f})")
41
42# 6. Evaluate on test set
43y_pred = best_model.predict(X_test)
44
45print("\n=== Confusion Matrix ===")
46print(confusion_matrix(y_test, y_pred))
47
48print("\n=== Classification Report ===")
49print(classification_report(y_test, y_pred, target_names=data.target_names))

Chuc mung hoan thanh khoa hoc!

Ban da nam vung cac kien thuc nen tang ve Machine Learning. Tiep theo:

  1. Thuc hanh: Lam cac projects thuc te
  2. Kaggle: Tham gia competitions
  3. Deep Learning: Hoc tiep Neural Networks
  4. Chuyen sau: NLP, Computer Vision, Time Series

Hen gap lai o cac khoa hoc tiep theo!