Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

TRƯỜNG ĐẠI HỌC THỦY LỢI

KHOA CÔNG NGHỆ THÔNG TIN

BÀI TẬP LỚN

HỌC PHẦN: HỌC MÁY

ĐỀ TÀI:

DỰ ĐOÁN SỰ CHUẨN BỊ THI CỬ CỦA HỌC SINH

Giáo viên hướng dẫn: Nguyễn Thị Kim Ngân

Sinh viên/nhóm sinh viên thực hiện:

1. Lê Gia Hào, lớp 61TH2

2.Trần Thanh Quang, lớp 61TH2

3.Ngần Minh Đức, lớp 61TH2

Hà Nội, năm 2022


Phần 1: Lý thuyết
1.Perceptron

- Perceptron là một thuật toán Classification cho trường hợp đơn giản nhất:

+ Chỉ có hai class (binary classification)

+ 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 1 nằm về 1 phía,

+ 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 đó.

- Ý tưởng cơ bản của PLA:

+ Xuất phát từ một nghiệm dự đoán nào đó,

+ 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 đó.

- Giải quyết bài toán:

+ G/S ma trận chứa các điểm dữ liệu:

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:

𝑓x=𝑤𝑥+𝑤𝑥+⋯+𝑤𝑥+𝑤=0 hay w𝑇x = 0

+ 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:

𝑙𝑎𝑏𝑒𝑙 x =1𝑛ế𝑢 w 𝑇x ≥ 0, 𝑛𝑔ượ𝑐 𝑙ạ𝑖 −1 hay 𝑙𝑎𝑏𝑒𝑙 x = 𝑠𝑔𝑛( w𝑇x)

- Xây dựng hàm mất mát:

+ 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𝑖

+ Đạo hàm: 𝛻𝐽w,x,𝑦 =−𝑦x w𝑖𝑖𝑖𝑖

+ Qui tắc cập nhật: w = w + η𝑦𝑖 x𝑖

+ w𝑡+1 tiến về phía làm cho x𝑖 được phân lớp đúng

- Tổng quát:

+ Chọn ngẫu nhiên một vector hệ số w với các phần tử gần 0

+ Duyệt ngẫu nhiên qua từng điểm Xi:

> 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

thuật toán. Nếu còn, quay lại bước 2.

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)

-Cây quyết định :

+Cấu trúc cây giống như biểu đồ luồng.

+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

-Việc tạo cây quyết định gồm 2 giai đoạn

+Xây dựng cây quyết định

+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

+Phát hiện và loại bỏ những nhánh nhiễu hoặc ngoại lệ

-Sử dụng cây quyết định:

+Phân lớp một mẫu chưa biết

+Kiểm tra các giá trị thuộc tính của mẫu dựa trên cây quyết định

-Thuật toán cơ bản (thuật toán tham lam)

+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)

-Điều kiện dừng phân chia:

+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á

+Không còn mẫu nào

-Ý 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 , … , 𝑝𝑛).

Entropy của phân phối này được định nghĩa là:

=> 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

- Tên bài toán: Dự Đoán sự chuẩn bị thi cử của học sinh

- 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

- Input: gender, race/ethnicity, parental level of education, lunch

- Ouput: test preparation course


- Tóm tắt công việc thực hiện của bài toán:

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.

2. Mô tả tập dữ liệu của bài toán

- 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.

+Gồm 1001 vector dữ liệu

Gồm các chiều thông tin:

gender: Giới tính

race/ethnicity: Chủng tộc/sắc tộc

parental level of education: Trình độ học vấn của bố mẹ

lunch: Bữa trưa

test preparation course: Chuẩn bị thi cử

- Mô tả ma trận dữ liệu (X): gender, race/ethnicity, parental level of education, lunch

-Nhãn lớp (Y): test preparation course

- 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.

3. Viết ứng dụng

4. Phân tích kết quả của chương trình

- Tỷ lệ dự đoán đúng trên tập test:

Tỷ lệ dự đoán đúng Perceptron: ≈ 67,33

Tỷ lệ dự đoán đúng ID3: ≈ 60


Tỷ lệ dự đoán đúng Cart: ≈ 60

- Tỷ lệ dự đoán sai trên tập test:

Tỷ lệ dự đoán sai Perceptron: ≈ 32,67

Tỷ lệ dự đoán sai ID3: ≈ 40

Tỷ lệ dự đoán sai Cart: ≈ 40

- Perceptron có tỷ lệ dự đoán đúng cao nhất

=>Lựa chọn thuật toán Perceptron cho bài toán

5. Kết luận

-Các thuật toán trên cho độ chính xác tương đối cao.

-Hiểu và biết cách sử dụng 3 thuật toán Perceptron, ID3 và Cart.

Tài liệu tham khảo

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

You might also like