Tải bản đầy đủ (.pdf) (13 trang)

bài tập lớn học máy đề tài dự đoán loại thủy tinh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.1 MB, 13 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

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

<b>KHOA CÔNG NGHỆ THÔNG TIN</b>

<b>BÀI TẬP LỚN</b>

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

<b>ĐỀ TÀI: DỰ ĐOÁN LOẠI THỦY TINH</b>

Giáo viên hướng dẫn: Nguyễn Thị Kim NgânSinh viên/Nhóm sinh viên thực hiện:1. Bùi Thúy Ngọc, lớp 63CNTT12. Đỗ Quyên, lớp 63CNTT13. Nguyễn Phương Vy, lớp 63CNTT14.Vũ Thanh Xuân, lớp 63CNTT1

<b>Hà Nội, năm 2023</b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>Mục lục </b>

<b>Lời mở đầuPhần 1: Tổng quan:</b>

1. Giới thiệu học máy:

- Lịch sử và vai trò của machine learning:- Ưu điểm của Học có giám sát và không giám sát:- Hạn chế của Học có giám sát và khơng giám sát:2. Trình bày phương pháp học máy

2.1. K-fold cross validation:2.2. ID3

2.3. Cart:

<b>Phần 2: Thực nghiệm:</b>

1. Mô tả bài tốn:2. Mơ tả dữ liệu:3. Đánh giá kết quả:

4. Mơ tả các chức năng của chương trình

<b>Lời mở đầu</b>

Học máy (tiếng Anh : machine learning) là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc nghiên cứu và xây dựng các kĩ thuật cho phép các hệ thống "học" tự động từ dữ liệu để giải quyết những vấn đề cụ thể.

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

Học máy có liên quan lớn đến thống kê, vì cả hai lĩnh vực đều nghiên cứu việc phân tích dữ liệu, nhưng khác với thống kê, học máy tập trung vào sự phức tạp của các giải thuật trong việc thực thi tính tốn. Nhiều bài tốn suy luận được xếp vào loại bài tốn NP-khó, vì thế một phần của học máy là nghiên cứu sự phát triển các giải thuật suy luận xấp xỉ mà có thểxử lý được.

Học máy có hiện nay được áp dụng rộng rãi bao gồm máy truy tìm dữ liệu, chẩn đốn y khoa, phát hiện thẻ tín dụng giả, phân tích thị trường chứng khốn, phân loại các chuỗi DNA, nhận dạng tiếng nói và chữ viết, dịch tự động…

Những năm gần đây, sự phát triển của các hệ thống tính tốn cùng với lượng dữ liệukhổng lồ được thu thập bởi các hãng công nghệ lớn đã giúp machine learning tiến thêm một bước dài.

Vì vậy, chúng em đã áp dụng ba thuật toán trong học máy - thuật toán để làm bài phương pháp Iterative Dichotomiser 3 (ID3) kết hợp K-fold cross validation và Classificationand regression tree (CART) kết hợp K-fold cross validation để dự đoán loại thủy tinh.

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>Phần 1: Tổng quan: 1. Giới thiệu học máy: </b>

<b>- Lịch sử và vai trò của machine learning:</b>

+ Những năm gần đây, AI - Artificial Intelligence (Trí Tuệ Nhân Tạo), và cụ thể hơn là Machine Learning (Học Máy hoặc Máy Học) nổi lên như một bằng chứng của cuộc cách mạng công nghiệp lần thứ tư (1 - động cơ hơi nước, 2 - năng lượng điện, 3 - công nghệ thông tin). Trí Tuệ Nhân Tạo đang len lỏi vào mọi lĩnh vực trong đời sống mà có thể chúng ta khơng nhận ra. Xe tự hành của Google và Tesla, hệ thống tự tag khuôn mặt trong ảnh của Facebook, trợ lý ảo Siri của Apple, hệ thống gợi ý sản phẩm của Amazon, hệ thống gợi ý phim của Netflix, máy chơi cờ vây AlphaGo của Google DeepMind, …, chỉ là một vài trong vô vàn những ứng dụng của AI/Machine Learning.

+ Machine Learning là một tập con của AI. Theo định nghĩa của Wikipedia, Machine learning is the subfield of computer science that “gives computers the ability to learn without being explicitly programmed”. Nói đơn giản, Machine Learning là một lĩnh vực nhỏ của Khoa Học Máy Tính, nó có khả năng tự học hỏi dựa trên dữ liệu đưa vào mà không cần phải được lập trình cụ thể.

+ Những năm gần đây, khi mà khả năng tính tốn của các máy tính được nâng lên một tầmcao mới và lượng dữ liệu khổng lồ được thu thập bởi các hãng công nghệ lớn, Machine Learning đã tiến thêm một bước dài và một lĩnh vực mới được ra đời gọi là Deep Learning (Học Sâu - thực sự tôi không muốn dịch từ này ra tiếng Việt). Deep Learning đã giúp máy tính thực thi những việc tưởng chừng như không thể vào 10 năm trước: phân loại cả ngàn vật thể khác nhau trong các bức ảnh, tự tạo chú thích cho ảnh, bắt chước giọng nói và chữ viết của con người, giao tiếp với con người, hay thậm chí cả sáng tác văn hay âm nhạc.

<b>- Ưu điểm của Học có giám sát và khơng giám sát:</b>

+ Học có giám sát: Supervised learning là thuật tốn dự đoán đầu ra (outcome) của một dữ liệu mới (new input) dựa trên các cặp (input, outcome) đã biết từ trước. Cặp dữ liệu này còn được gọi là (data, label), tức (dữ liệu, nhãn). Supervised learning là nhóm phổ biến nhất trong các thuật toán Machine Learning. Chúng học thông qua một bộ dữ liệu đã được gán nhãn chính xác và cố gắng đưa ra các dự đốn đầu ra mục tiêu chính xác nhất có thể trên bộ dữ liệu cho trước.

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

+ Học khơng giám sát: Thuật tốn unsupervised learning sẽ dựa vào cấu trúc của dữ liệuđể thực hiện một cơng việc nào đó, ví dụ như phân nhóm (clustering) hoặc giảm số chiều của dữ liệu (dimension reduction) để thuận tiện trong việc lưu trữ và tính tốn.

<b>- Hạn chế của Học có giám sát và khơng giám sát:</b>

Có một phương pháp học rơi vào giữa 2 phương pháp này là học bán giám sát supervised learning) khi dữ liệu học chỉ có một phần nhỏ là có đầy đủ cặp đầu vào - đầu ra tương ứng và phần dữ liệu cịn lại chỉ có đầu vào. Phương pháp này phù hợp trong trường hợp việc gắn đầu ra cho từng đầu vào là không khả thi hoặc tốn rất nhiều tài nguyên và việc sử dụng dữ liệu không được gắn đầu ra sẽ hiệu quả hơn.

(semi-+ Học không giám sát: chúng ta không biết câu trả lời chính xác cho mỗi dữ liệu đầu vào. Giống như khi ta học, khơng có thầy cơ giáo nào chỉ cho ta biết đó là chữ A hay chữ B. Cụm không giám sát được đặt tên theo nghĩa này. Các dữ liệu không được "hướng dẫn" trướcnhư trong trường hợp học có giám sát. Các thuật tốn cần học được từ dữ liệu mà khơng hề có bất cứ sự hướng dẫn nào.

<b>2. Trình bày phương pháp học máy 2.1. K-fold cross validation: </b>

- Input : tập dữ liệu được chia thành K phần tách ngẫu nhiên từ tập train (chiếm 70% dữ liệu gốc)

- Output: đánh giá độ chính xác thuật tốn- Cách thực hiện:

● Bước 1: chia tập dữ liệu thành 2 phần: tập dữ liệu huấn luyện (70%) và tập dữ liệu test(30%).

● Bước 2: Chia toàn bộ tập dữ liệu huấn luyện thành k phần (phương pháp k-fold cross validation).

○ Chọn ngẫu nhiên k-1 phần làm training data, 1 phần còn lại làm test data.○ Sử dụng phương pháp học máy đã lựa chọn trên tập training data và test data để xây dựng và đánh giá mơ hình (bước này được làm k lần)

● Bước 4: Chọn mơ hình có (train error + validation error) là nhỏ nhất.

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

2.2. ID3

- ID3 là một thuật toán decision tree được áp dụng cho các bài toán classification mà tấtcả các thuộc tính đều ở dạng categorical.

- Input: Một tập dữ liệu huấn luyện

- Output: một cây quyết định dùng để phân loại dữ liệu mới dựa trên các đặc trưng có sẵn trong dữ liệu huấn luyện

4.Chọn a thuộc S, có độ đo information gain cao nhất;gán nhãn N theo a5.Với mỗi giá trị v của a:

a.Phát triển một nhánh từ N với điều kiện a=vb.Đặt Sv là tập con của S với a=v

d.Nếu Sv là rỗng thì gắn một lá có nhãn phổ biến nhất trong Sd.Ngược lại gắn một nút được tạo bởi GenDecTree(Sv,A-a)

+ Cách giải bài tốn:

<b>B1: tính entropy trên tồn bộ tập S (tại 1 nút không phải là lá)</b>

o H(S) : entropy trên toàn bộ tập dữ liệu S o S: tập dữ liệu huấn luyện(gồm cả x và y) o N: tổng số mẫu dữ liệu huấn luyện

o Nc: số các mẫu dữ liệu trong tập S đc gán nhãn c o C: tổng số nhãn khác nhau trong tập S o c: chỉ số của nhãn dữ liệu

<b>B2: Tính entropy của thuộc tính x trên tập S </b>

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

o x: là thuộc tính đang xét o K: số giá trị của thuộc tính đó

o m : số mẫu có thuộc tính x và có giá trị là k <small>k</small>o S : tập các mẫu sao cho thuộc tính x có giá trị là k <small>k</small>

o H(S ) : entropy trên tập dữ liệu trong S có thuộc tính là x và có giá trị k<small>k</small>

<b>B3: tính information gain trên thuộc tính x </b>

Thay vì tìm thuộộc tính có information gain cao nhấất thì ta tìm thuộộc tính có entropy ⇒

nhỏ nhấất

Điều kiện dừng: ❖

– TH1: nếu tất cả các mẫu trong node con thuộc cùng 1 lớp C (entropy=0) thì node đó đc gán nhãn C

– TH2: nếu node con là rỗng (khơng có dữ liệu) thì node đó sẽ được gán = nhãn phổ biến nhất trong tập S

– TH3: nếu khơng cịn thuộc tính nào để phân chia (các thuộc tính đều được xét hết) -> node lá đó sẽ được gán = nhãn phổ biến nhất

● Đánh giá mơ hình:

o Ưu điểm: cây phân loại thực hiện tốt trong thực tế

o Nhược điểm: không bị giới hạn, các cây riêng lẻ dễ bị quá mức.

<b>2.3. Cart:</b>

- Là một kỹ thuật phi tham số hữu ích có thể được sử dụng để giải thích một biến phụ thuộc liên tục hoặc phân loại dưới dạng nhiều biến độc lập. Các biến độc lập có thể liên tục hoặc phân loại. CART sử dụng phương pháp phân vùng thường được gọi là “chia để trị”. Thuật tốn CART hoạt động để tìm biến độc lập tạo ra nhóm đồng nhất tốt nhất khi tách dữ liệu. - <b>Input</b>: Là một tập dữ liệu đã được gán nhãn

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

- <b>Output</b>: Là một cây quyết định - Công việc thực hiện của bài toán:

+ Sử dụng chỉ số “gini index” làm thước đo trong khi tạo cây quyết định (decision tree) trong thuật toán CART (Classification and Regression Tree), chỉ số “gini index” càng cao càng tốt. - Các bước thực hiện:

<b>B1: Tính giá trị Gini </b>

+ C: số lớp cần phân loại (số nhãn trong 1 thuộc tính)+ p = n / N<small>i i</small>

+ n là số lượng phần tử ở lớp thứ i<small>i</small>+ N: là tổng số lượng phần tử ở node đó

<b>B2: Tính chỉ số gini_index.</b>

+ gini(p): chỉ số gini ở node cha+ K: số node con được tách ra+ gini(c ): chỉ số gini ở node con thứ k<small>k</small>+ M: số phần tử ở node p

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

– TH3: nếu khơng cịn thuộc tính nào để phân chia (các thuộc tính đều được xét hết) -> node lá đó sẽ được gán = nhãn phổ biến nhất

<b>Phần 2: Thực nghiệm:1. Mô tả bài toán:</b>

- Tên bài toán: Dự đoán loại thủy tinh

- Input: Data bao gồm : RI, Na, Mg, Al, Si, K, Ca, Ba, Fe, Type- Ouput: Dự đoán phân loại thủy tinh (gồm 7 loại)

-- 1 building_windows_float_processed-- 2 building_windows_non_float_processed-- 3 vehicle_windows_float_processed

-- 4 vehicle_windows_non_float_processed (none in this database)-- 5 containers

-- 6 tableware-- 7 headlamps

- Tóm tắt cơng việc thực hiện của bài toán.+ Đọc tập dữ liệu của bài toán

+ Chia dữ liệu thành 2 phần: 70% cho tập train, 30% cho tập test

+ Xây dựng các mơ hình phân lớp: (1) sử dụng thuật toán ID3 kết hợp vớiphương pháp k-fold cross validation, (2) sử dụng thuật toán CART kết hợpvới phương pháp k-fold cross validation

+ Sử dụng các độ đo đánh giá chất lượng mơn hình phân lớp, để chọn mơhình tốt nhất cho bài tốn phân lớp.

+ Tạo một giao diện (form) người dùng để dự đốn nhãn của một mẫu mới.Trên form này có các text box để nhập vào các thông tin của mẫu mới (mỗimẫu là một vector dữ liệu có d chiều, thì trên form có d ơ text box để nhậpthơng tin cho d chiều). Có nút để khi click vào thì sẽ hiển thị nhãn mà mơhình dự đốn cho mẫu mới này. Trên form cũng hiển thị độ tin cậy của mơhình (độ tin cậy là khả năng dự đốn đúng, được tính là tỷ lệ mẫu trong tậptest được dự đốn đúng).

<b>2. Mơ tả dữ liệu:</b>

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

- Tập dữ liệu gồm: 214 mẫu- Mơ tả thuộc tính vecto dữ liệu:

<b> Tên dữ liệu Ý nghĩa</b>

RI Chỉ số khúc xạ Na Natri Mg Magie Al Nhôm Si Silic K Kali Ca Canxi Ba Bari Fe Sắt

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

-- 4 vehicle_windows_non_float_processed (none in this database)-- 5 containers

-- 6 tableware-- 7 headlamps

-Accuracy_score là tính độ chính xác của mẫu dự đốn và thực tế.

-Precision được định nghĩa là tỉ lệ <b>số điểm thủy tinh mơ hình dự đốn đúng</b> trên <b>tổng số điểm mơ hình dự đốn là thủy tinh.</b>

-Recall được định nghĩa là tỉ lệ <b>số điểm thủy tinh mô hình dự đốn đúng</b> trên <b>tổng số điểmthật sự là thủy tinh.</b>

-F1-score là trung bình điều hịa (harmonic mean) của precision và recall.

→ So sánh 2 kếất quả, ta có thuậột tốn CART cho kếất quả tốất hoơn.

<b>4. Mơ tả các chức năng của chương trình</b>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

- Chương trình bao gồm giao diện đồ họa

<b>Phần 3: Kết luận</b>

<b>-Tóm lược các nội dung chính mà bài tập lớn làm được</b>

+ Kết hợp K-fold cross validation với ID3, Cart để dự đoán loại thuỷ tinh

+ Bài toán Phân loại thuỷ tinh cho ra kết quả đạt 82% của phương pháp Cart kết hợp fold và 74% của phương pháp ID3 kết hợp K-fold.

K-+ Hiển thị kết quả độ đo lên form và hiển thị button theo mơ hình có kết quả cao hơn,khi click vào button thì in ra loại thủy tinh được phân loại

<b>Tài liệu tham khảo</b>

- Các tài liệu được tham khảo trong báo cáo

[1]TS. Nguyễn Thị Kim Ngân, Bài Giảng, Học Máy, Khoa Công Nghệ Thông Tin, Trường Đại Học Thủy Lợi

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

[2]Vũ Hữu Tiệp, ML_Book, Machine Learning Cơ Bản tại: Link data : Glass data

</div>

×