1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

13 1 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 1,1 MB

Nội dung

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

Trang 1

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 LOẠI THỦY TINH

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 Bùi Thúy Ngọc, lớp 63CNTT1

2 Đỗ Quyên, lớp 63CNTT1

3 Nguyễn Phương Vy, lớp 63CNTT1 4.Vũ Thanh Xuân, lớp 63CNTT1

Hà Nội, năm 2023

Trang 2

Mục lục

Lời mở đầu

Phần 1: Tổng quan:

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:

Phần 2: Thực nghiệm:

1 Mô tả bài toá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

Lời mở đầu

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ể

Trang 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 toán Nhiều bài toán suy luận được xếp vào loại bài toá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 đoán y khoa, phát hiện thẻ tín dụng giả, phân tích thị trường chứng khoá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 toán cùng với lượng dữ liệu khổ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à Classification and regression tree (CART) kết hợp K-fold cross validation để dự đoán loại thủy tinh

Trang 4

Phần 1: Tổng quan:

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

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

+ 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 toán của các máy tính được nâng lên một tầm cao 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

- Ưu điểm của Học có giám sát và không giám sát:

+ Học có giám sát: Supervised learning là thuật toá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ự đoán đầu ra mục tiêu chính xác nhất có thể trên bộ

dữ liệu cho trước

Trang 5

+ Học không giám sát: Thuật toá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 toán

- Hạn chế của Học có giám sát và không giám sát:

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 (semi-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

+ 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ước như trong trường hợp học có giám sát Các thuật toá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

2 Trình bày phương pháp học máy

2.1 K-fold cross validation:

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

Trang 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ất

cả 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

- Phương pháp:

+ Hàm mất mát: tổng có trọng số của entropy tại các leaf-node sau khi xây dựng decision tree x

+ Các bước thực hiện thuật toán:

1.Tạo một nút N

2.Nếu tất cả các mẫu thuộc cùng lớp C thì N được gán nhãn C;dừng thuật toán 3.Nếu A (tập thuộc tính) là rỗng thì N được gán nhãn C là nhãn phổ biến nhất trong S;dừng thuật toán

4.Chọn a thuộc S, có độ đo information gain cao nhất;gán nhãn N theo a

5.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=v

b.Đặ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 S

d.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 toán:

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

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

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

Trang 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 k

o S : tập các mẫu sao cho thuộc tính x có giá trị là k k

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

B3: tính information gain trên thuộc tính x

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

2.3 Cart:

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

- Input: Là một tập dữ liệu đã được gán nhãn

Trang 8

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

B1: Tính giá trị Gini

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

+ p = n / Ni i

+ n là số lượng phần tử ở lớp thứ ii

+ N: là tổng số lượng phần tử ở node đó

B2: Tính chỉ số gini_index.

+ gini(p): chỉ số gini ở node cha

+ K: số node con được tách ra

+ gini(c ): chỉ số gini ở node con thứ kk

+ M: số phần tử ở node p

+ m : là số phần tử ở node con thứ ii

⇨ chọn ra thuộc tính có gini_index lớn nhất Gini split nhỏ nhất

B3: 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, thực hiện lặp tìm ra thuộc tính tốt nhất trong tập dữ liệu mới

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

Trang 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

Phần 2: Thực nghiệm:

1 Mô tả bài toán:

- 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ới phương pháp k-fold cross validation, (2) sử dụng thuật toán CART kết hợp vớ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 toán phân lớp

+ Tạo một giao diện (form) người dùng để dự đoá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ỗi mẫu là một vector dữ liệu có d chiều, thì trên form có d ô text box để nhập thô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ự đoá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ự đoán đúng, được tính là tỷ lệ mẫu trong tập test được dự đoán đúng)

2 Mô tả dữ liệu:

Trang 10

- Tập dữ liệu gồm: 214 mẫu

- Mô tả thuộc tính vecto dữ liệu:

Tên dữ liệu Ý nghĩa

RI Chỉ số khúc xạ

Na Natri

Mg Magie

Al Nhôm

Si Silic

K Kali

Ca Canxi

Ba Bari

Fe Sắt

- Nhãn lớp Y:

- Chia dữ liệu:

+ 70% tập train để huấn luyện mô hình:

Trang 11

+ 30% tập test:

3 Đánh giá kết quả:

Giả sử ta có bài toán nhị phân với 7 lớp được quy ước lần lượt là:

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

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

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

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

-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 toán CART cho kếất quả tốất hoơn

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

Trang 12

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

Phần 3: Kết luận

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

+ 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 K-fold và 74% của phương pháp ID3 kết hợp K-K-fold

+ 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

Tài liệu tham khảo

- 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

Trang 13

[2]Vũ Hữu Tiệp, ML_Book, Machine Learning Cơ Bản tại: https://machinelearningcoban.com/

[3] Link data : Glass data

Ngày đăng: 16/05/2024, 16:22

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w