Professional Documents
Culture Documents
BTL2 Nhom15
BTL2 Nhom15
ĐỀ TÀI:
- Perceptron là một thuật toán Classification cho trường hợp đơn giản nhất:
+ Cũng chỉ hoạt động được trong một trường hợp rất cụ thể.
- Bài toán Perceptron, cho hai class được gán nhãn, hãy tìm một đường phẳng sao cho:
+ toàn bộ các điểm thuộc class 2 nằm về phía còn lại của đường phẳng đó.
+ Qua mỗi vòng lặp, nghiệm sẽ được cập nhật tới một ví trí tốt hơn cập nhật dựa trên việc
giảm giá trị của một hàm mất mát nào đó.
X = [x1,x2,...,x𝑁] ∈ R𝑑×𝑁
+ G/S các nhãn của mỗi điểm dữ liệu được lưu trong một véc tơ hàng
y = [𝑦 , 𝑦 , ... , 𝑦 ] ∈ R1xN
+ G/S, tại một thời điểm, ta tìm được đường boundary là đường phẳng có phương trình:
+ Tìm được w (nghiệm của bài toán Perceptron) và một điểm x chưa có nhãn, ta có thể xác
định class của nó bởi:
+ Hàm mất mát là đếm số lượng các điểm bị misclassied và tìm cách tối thiểu hàm số này:
+ Khi một x𝑖 (bị phân lớp sai) nằm càng xa boundary thì giá trị −𝑦𝑖 w𝑇x𝑖 càng lớn
+ Giá trị nhỏ nhất của hàm mất mát này bằng 0 nếu không có điểm nào bị phân lớp sai
+ Hàm này trừng phạt nặng những điểm lấn sâu sang lãnh thổ của lớp khác.
- Với một điểm x𝑖 bị phân lớp sai, hàm mất mát trở thành: 𝐽w,x𝑖,𝑦𝑖 =−𝑦𝑖w𝑇x𝑖
+ w𝑡+1 tiến về phía làm cho x𝑖 được phân lớp đúng
- Tổng quát:
> Nếu x: được phân lớp đúng, tức sgn(wT xi) = yi, chung ta không cần làm gì.
> Nếu x: bị misclassifed, câp nhât w theo công thức: W=W+ yiXi
+ Kiểm tra xem có bao nhiêu điểm bị misclassifed. Nếu không còn điểm nào, dùng
2.ID3
-Cây quyết định là một mô hình có giám sát (supervised learning), có thể được áp
dụng cho cả bài toán phân lớp (classification) và hồi quy (regression)
+Mỗi nút trong thể hiện một sự kiểm tra trên một thuộc tính
+ Mỗi nhánh đại diện cho một kết quả của sự kiểm tra
+Các nút lá đại diện cho các nhãn lớp hoặc phân phối lớp
+Tại bước khởi tạo, nút gốc bao gồm tất cả các mẫu huấn luyện
+Các mẫu được phân chia đệ quy dựa trên thuộc tính được chọn
+Tỉa cây
+Kiểm tra các giá trị thuộc tính của mẫu dựa trên cây quyết định
+Cây quyết định được xây dựng theo cách chia để trị từ trên xuống (top-down)
+Tại vị trí khởi tạo, tất cả các mẫu thuộc nút gốc
+Các thuộc tính được phân loại (nếu giá trị của thuộc tính là liên tục, thì phải được rời
rạc hoá trước)
+Các mẫu được phân chia đệ quy dựa vào các thuộc tính được chọn
+Thuộc tính kiểm tra được lựa chọn dựa vào kinh nghiệm (heuristic) hoặc độ đo thống
kê (statistical measure) (ví dụ, information gain)
+Tất cả các mẫu của nút xem xét thuộc cùng một lớp
+Không có thuộc tính nào để phân chia - biểu quyết đa số được sử dụng để gán nhãn
phân loại cho lá
-Ý tưởng:
+Chúng ta cần xác định thứ tự của thuộc tính cần được xem xét tại mỗi bước tại mỗi bước,
một thuộc tính tốt nhất sẽ được chọn ra dựa trên một tiêu chuẩn nào đó
+Với mỗi thuộc tính được chọn, ta chia dữ liệu vào các nút con tương ứng với các giá trị của
thuộc tính đó rồi tiếp tục áp dụng phương pháp này cho mỗi nút con
+Việc chọn ra thuộc tính tốt nhất ở mỗi bước như thế này được gọi là cách chọn tham lam
(greedy). Cách chọn này có thể không phải là tối ưu, nhưng trực giác cho chúng ta thấy rằng
cách làm này sẽ gần với cách làm tối ưu
-Ta cần có một hàm số đo độ tinh khiết (purity), hoặc độ vẩn đục (impurity) của một
phép phân chia.
+Hàm số này sẽ cho giá trị thấp nhất nếu dữ liệu trong mỗi child node nằm trong cùng
một class (tinh khiết nhất), cho giá trị cao nếu mỗi child node có chứa dữ liệu thuộc
nhiều class khác nhau.
=>Một hàm số có các đặc điểm này và được dùng nhiều trong lý thuyết thông tin là hàm
entropy
-Hàm số entropy:
+Cho một phân phối xác suất của một biến rời rạc x có thể nhận n giá trị khác nhau 𝑥1 , 𝑥2 ,
… , 𝑥𝑛.
+Giả sử rằng xác suất để x nhận các giá trị này là 𝑝𝑖 = 𝑝 𝑥 = 𝑥𝑖 , 𝑣ớ𝑖 0 ≤ 𝑝𝑖 ≤ 1, σ𝑖=1 𝑛
𝑝𝑖 = 1 Ký hiệu phân phối này là 𝑝 = (𝑝1 , 𝑝2 , … , 𝑝𝑛).
=> Mục đích: Tìm các cách phân chia hợp lý (thứ tự chọn thuộc tính hợp lý). sao cho hàm
mất mát cuối cùng đạt giá trị càng nhỏ càng tốt.
=>Việc này đạt được bằng cách chọn ra thuộc tính sao cho nếu dùng thuộc tính đó để phân
chia, entropy tại mỗi bước giảm đi một lượng lớn nhất
3.Gini index(Cart)
-Gini index tương tự như information gain, dùng để đánh giá xem việc phân chia ở node
điều kiện có tốt hay không.
Để tính Gini index, trước hết mình sẽ tính chỉ số Gini, chỉ số Gini tính ở từng node.
Phần 2: Ứng dụng trong thực tế
1. .Mô tả bài toán
- Mục đích của bài toán: xác định việc chuẩn bị cho thi cử của học sinh
1.Chia tập dữ liệu thành 2 phần: 70% dùng để huấn luyện mô hình, 30% dùng để kiểm
tra sự phù hợp của mô hình.
2.Dùng thuật toán Perceptron, thuật toán ID3 và thuật toán CART để xây dựng mô hình
phân lớp cho bài toán.
3.Dùng tập dữ liệu kiểm tra để so sánh các độ đo: tỷ lệ mẫu được dự đoán đúng,
Precision, Recall, F1 của Perceptron, ID3 và CART.
- Dữ liệu gồm những chiều thông tin gì (mỗi mẫu (vertor) dữ liệu có những thông tin
gì), có bao nhiêu mẫu dữ liệu (ít nhất là 200 vector dữ liệu). Mô tả nhãn lớp của dữ liệu.
- Chia tập dữ liệu thành 2 phần: 70% dùng để huấn luyện mô hình, 30% dùng để kiểm
tra sự phù hợp của mô hình.
5. Kết luận
-Các thuật toán trên cho độ chính xác tương đối cao.
https://viblo.asia/p/confusion-matrix-ma-tran-nham-lan-ma-tran-loi-p1-
V3m5WQB7ZO7?
fbclid=IwAR03wD2oaWnTl_T9TVwbu1fFISmHEZdM39HxOZgAWr3sk59blphcPL4uRow
https://www.kaggle.com/datasets/whenamancodes/students-performance-in-exams
https://scikit-learn.org/stable/modules/generated/sklearn.metrics.f1_score.html?
fbclid=IwAR39L2ix7p2zDRNP4zgWMde14huawJoz48x6u_AetOVNzh5qsEdgxRWwAmo
https://scikit-learn.org/stable/modules/generated/sklearn.metrics.recall_score.html?
fbclid=IwAR2oX1TGnZ1luEM0ZH_AOPkL88V5vX12Vp9ryDtQPqmHGBGUJpiD2pwXyhg