1. Trang chủ
  2. » Giáo Dục - Đào Tạo

thiết kế và thi công hệ thống tự động phân loại bàn chải đánh răng

109 0 0
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

Tiêu đề Thiết kế và thi công hệ thống tự động phân loại bàn chải đánh răng
Tác giả Lê Trường Giang, Nguyễn Thị Huỳnh Giao
Người hướng dẫn TS. Nguyễn Mạnh Hùng
Trường học Trường Đại học Sư Phạm Kỹ thuật Thành phố Hồ Chí Minh
Chuyên ngành Điện tử công nghiệp
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 109
Dung lượng 8,87 MB

Nội dung

Để cải thiện hiệu suất vàđộ tin cậy trong quy trình kiểm tra và phân loại chất lượng của sản phẩm này, sự kết hợp giữamô hình thuật toán học máy SVM Learning vào một hệ thống phân loại đ

Trang 1

THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

ĐỒ ÁN TỐT NGHIỆP NGÀNH ĐIỆN TỬ CÔNG NHIỆP

THIẾT KẾ VÀ THI CÔNG HỆ THỐNG TỰ ĐỘNG

PHÂN LOẠI BÀN CHẢI ĐÁNH RĂNG

GVHD: TS NGUYỄN MẠNH HÙNG SVTH: LÊ TRƯỜNG GIANG

NGUYỄN THỊ HUỲNH GIAO

Tp Hồ Chí Minh, tháng 12/2023

S K L 0 1 2 3 4 2

Trang 2

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH

KHOA ĐIỆN - ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP Y SINH

MSSV1: 19161225 SVTH2: Nguyễn Thị Huỳnh Giao MSSV2: 19161226

TP Hồ Chí Minh - 12/2023

THIẾT KẾ VÀ THI CÔNG HỆ THỐNG TỰ ĐỘNG PHÂN LOẠI BÀN CHẢI

ĐÁNH RĂNG

Trang 3

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH

KHOA ĐIỆN - ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP Y SINH

MSSV1: 19161225 SVTH2: Nguyễn Thị Huỳnh Giao MSSV2: 19161226

TP Hồ Chí Minh - 12/2023

Trang 4

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

—————————————–

Độc lập - Tự do - Hạnh phúc

Tp HCM, ngày 02 tháng 07 năm 2023

NHIỆM VỤ KHÓA LUẬN TỐT NGHIỆP

Họ tên sinh viên 1:Họ tên sinh viên 2:Chuyên ngành:Hệ đào tạo:Khóa:

Lê Trường GiangNguyễn Thị Huỳnh GiaoĐiện tử công nghiệpĐại học chính quy2019

MSSV: 19161225MSSV: 19161226Mã ngành: 7510302Mã hệ: 1

Lớp: 19161ĐTCN

I TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG TỰ ĐỘNG PHÂN LOẠI BÀN CHẢI ĐÁNH RĂNG

II NHIỆM VỤ:

1 Các số liệu ban đầu:

• Hệ điều hành Raspbian cho Raspberry Pi 4 Model B.• Các mô hình phân loại: LinearSVC, SVC, NuSVC.• Phương pháp đánh giá mô hình: Accuracy, Confusion matrix, và Classification report.• Ngôn ngữ lập trình sử dụng: Python, C/C++

• Các thư viện chính được sử dụng: Scikit-learn, NumPy, Matplotlib, Pandas, Pickle.• Phần mềm lập trình: Arduino IDE, Jupyter Notebook, và Thonny

2 Nội dung thực hiện:

• Thiết kế tay cầm giữ bàn chải.• Thiết kế trục cơ khí để tạo dao động cho bàn chải.• Kết nối cảm biến với Raspberry

• Tiến hành đo, thu thập và xử lý dữ liệu.• Xây dựng mô hình máy học cho việc phân loại chất lượng bàn chải

Trang 5

• Thi công phần cứng, chạy thử nghiệm và hiệu chỉnh hệ thống.• Đóng gói, triển khai hệ thống với thiết bị.

• Viết báo cáo.• Bảo vệ luận văn

III NGÀY GIAO NHIỆM VỤ: 11/09/2023.

IV NGÀY HOÀN THÀNH: 31/12/2023.

V HỌ VÀ TÊN NGƯỜI HƯỚNG DẪN: TS NGUYỄN MẠNH HÙNG.

CÁN BỘ HƯỚNG DẪN BM ĐIỆN TỬ CÔNG NGHIỆP - Y SINH

Trang 6

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

—————————————–

Độc lập - Tự do - Hạnh phúc

Tp HCM, ngày 02 tháng 07 năm 2023

LỊCH TRÌNH THỰC HIỆN KHÓA LUẬN TỐT NGHIỆP

Họ tên sinh viên 1: Lê Trường Giang

Họ tên sinh viên 2: Nguyễn Thị Huỳnh Giao

Tên đề tài: Thiết kế và thi công hệ thống tự động phân loại bàn chải đánh răng

Tuần 1(11/09 - 17/09)

Gặp GVHD để nghe phổ biến yêucầu làm đồ án, tiến hành lựa chọnđề tài và viết đề cương tóm tắt về đềtài đã chọn

Tuần 2(18/09 - 24/09)

Tìm hiểu nguyên lý hoạt động vàlựa chọn các linh kiện, thiết bị sửdụng cho đề tài Tìm hiểu về cáchkết nối giữa các cảm biến, Ardunio,Raspberry và các linh kiện khác sửdụng trong đề tài

Tuần 3(25/09 - 01/10)

Tìm hiểu và triển khai phương ánthiết kế tay cầm giữ bàn chảiTuần 4

(02/10 - 08/10)

Tìm hiểu và triển khai phương ánthiết kế trục cơ khí để tạo dao độngcho bàn chải

Tuần 5(09/10 - 15/10)

Ghép các thiết kế và viết chươngtrình cho phần cứng

Trang 7

(16/10 - 22/10) thích chức năng các khối, tính toán,

lựa chọn linh kiện sử dụng trongtừng khối

Tuần 7(23/10 - 29/10)

Kết hợp và chạy thử nghiệm phầncứng

Tuần 8(30/10 - 05/11)

Thử nghiệm, tiếp tục hiệu chỉnh vànâng cấp để tối ưu hiệu suất phầncứng

Tuần 9(06/11 - 12/11)

Tiến hành thu thập dữ liệu và lưutrên Raspberry Pi

Tuần 10(13/11 - 19/11)

Nghiên cứu và chọn mô hình phânloại

Tuần 11(20/11 - 26/11)

Huấn luyện mô hình phân loại chấtlượng bàn chải

Tuần 12(27/11 - 03/12)

Thử nghiệm và hiệu chỉnh mô hình

Tuần 13(04/12 - 10/12)

Chạy thử và hiệu chình toàn bộ hệthống Kiểm tra hoạt động hệ thốngvà sửa lỗi

Tuần 14(11/12 - 17/12)

Viết báo cáo

Tuần 15(18/12 - 24/12)

Chỉnh sửa, hoàn thiện báo cáo vàlàm slide thuyết trình

Tuần 16(25/12 - 31/12)

Báo cáo trước GVHD và nộp quyểnbáo cáo DATN

GV HƯỚNG DẪN(Ký và ghi rõ họ tên)

Trang 8

Đề tài đồ án tốt nghiệp “Thiết kế và thi công hệ thống tự động phân loại bàn chải đánh răng”là do nhóm chúng em bao gồm Lê Trường Giang và Nguyễn Thị Huỳnh Giao thực hiện dưới sựhướng dẫn của thầy Nguyễn Mạnh Hùng Chúng em xin xác nhận rằng tất cả những dữ liệu, tàiliệu tham khảo được sử dụng trong đề tài này đều được dùng với mục đích cung cấp thêm thôngtin, kiến thức và đã được ghi nhận, trích dẫn đúng cách, đầy đủ và minh bạch.

Nhóm chúng em xin cam kết không sao chép từ các tài liệu hay công trình nào có liên quanhay ở bất kỳ đề tài nào trước đó Nếu có bất kỳ vấn đề gian lận nào, nhóm xin chịu toàn bộ tráchnhiệm về đề tài của mình

Sinh viên thực hiện đề tài

Lê Trường Giang - Nguyễn Thị Huỳnh Giao

Trang 9

Đầu tiên, nhóm xin gửi lời cảm ơn chân thành và sâu sắc đến TS Nguyễn Mạnh Hùng

-Giảng viên của bộ môn Điện tử công nghiệp – Y sinh đã tận tình hướng dẫn, giúp đỡ tạo điềukiện để nhóm hoàn thành tốt đề tài Nhóm muốn bày tỏ lòng biết ơn đến thầy với những sự đónggóp, sự đề xuất và những hỗ trợ quý báu của thầy đã góp phần lớn vào sự thành công và hoànthiện đề tài này

Nhóm xin chân thành cảm ơn các quý thầy cô của trường Đại Học Sư Phạm Kỹ Thuật ThànhPhố Hồ Chí Minh nói chung và các thầy cô bộ môn Điện tử công nghiệp - Y sinh nói riêng đãdạy dỗ, truyền đạt cho chúng em những kiến thức thức từ cơ sở đến chuyên ngành, góp ý và chiasẻ nhiều kinh nghiệm quý báu, tạo cho chúng em một nền tảng vững chắc trong một môi trườnghọc tập và rèn luyện chất lượng

Ngoài ra, nhóm xin gửi lời cảm ơn chân thành đến gia đình, người thân, anh chị, bạn bèngành Điện tử công nghiệp Khoá 2019 đã bên cạnh ủng hộ, động viên và hỗ trợ chúng em trongsuốt quãng đường đại học, góp ý và chia sẻ tận tình giúp chúng em có nhiều động lực, ý chí dốchết sức mình học tập và thực hiện thành công đồ án tốt nghiệp

Và cuối cùng, trong quá trình triển khai, nghiên cứu và tìm hiểu đề tài sẽ không tránh khỏinhững sai sót và hạn chế Nhóm chúng em rất mong nhận được những sự góp ý từ quý Thầy Côđể đề tài được hoàn thiện hơn và có thể ứng dụng trên thực tiễn phục vụ con người

Nhóm chúng em xin trân trọng cảm ơn!

Sinh viên thực hiện đề tài

Lê Trường Giang - Nguyễn Thị Huỳnh Giao

Trang 10

2.2 Hiệu ứng áp điện và ứng dụng trong cảm biến rung 7

2.3 Giới thiệu về thuật toán máy học SVM 8

2.3.1 Giới thiệu về thuật toán máy học SVM 8

2.3.2 Mục tiêu của thuật toán máy học SVM 8

2.3.3 Ứng dụng của thuật toán máy học SVM 9

2.4 Phân loại đa lớp với thuật toán máy học SVM 10

2.4.1 Phương pháp One-vs-One (OvO) trong SVM 11

2.4.2 Phương pháp One-Vs-All (OvA) trong SVM 12

2.5 Các mô hình phân loại thuật toán máy học SVM dựa trên thư viện Scikit-learn 142.5.1 LinearSVC 14

Trang 11

2.6.5 Module Relay 30

2.6.6 Tay Gắp Động Cơ Servo MG995 31

2.6.7 LCD 20x4 32

3 TÍNH TOÁN VÀ THIẾT KẾ 343.1 Yêu cầu của hệ thống 34

3.3.2 Các thành phần quan trọng trong Support Vector Machine (SVM) 41

3.4 Các phương pháp tốt ưu và phương pháp đánh giá mô hình 49

3.4.1 Tối ưu hóa Tham số C và Gamma bằng Stratified K-Fold Cross-Validation 493.4.2 Đánh giá mô hình trên tập kiểm thử dựa vào Confusion Matrix 50

3.5 Thiết kế khung 51

3.6 Thiết kế động cơ 52

4 THI CÔNG HỆ THỐNG 544.1 Thi công phần cứng 54

5.2 Kết quả tập dữ liệu thu được 67

5.3 Kết quả bộ phân loại 68

Trang 12

5.3.2 Với tham số C = 1 và gamma = 0.001 74

5.3.3 Với tham số C = 100, gamma = 0.0001 76

5.3.4 Với tham số C = 10, gamma = 0.001 78

5.3.5 Với tham số C = 1, gamma = 0.01 80

6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 846.1 Kết luận 84

6.2 Hướng phát triển của đề tài 84

Trang 13

1.1 Thị trường bàn chải đánh răng: Phân tích và dự báo ngành công nghiệp toàn cầu

(2023-2029)[4] 1

2.1 Lông bàn chải của 3 loại tốt, thường và cũ theo thứ tự từ trái sang phải 6

2.2 Sơ đồ của SVM Learning[9] 9

2.3 Sự khác nhau giữa Binary classification và Multiclass classification 11

2.4 Ví dụ về phương pháp OvO)[1] 12

2.5 Ví dụ về phương pháp OvA)[1] 13

2.6 Các mô hình phân loại SVM được hỗ trợ trong Scikit-learn[12] 14

2.7 LinearSVC với Linear Kernel[15] 15

2.8 Raspberry Pi 4 Mode B 23

2.9 Khối chức năng trên Raspberry Pi 4 Model B 23

2.10 Cảm biến áp điện Ceramic 25

2.11 Cảm biến áp điện Ceramic 26

2.12 Điện áp ngõ ra tương ứng với độ rung 26

2.13 Ardunio Uno 27

2.14 Cấu trúc bên trong Ardunio Uno 28

2.15 Động cơ RC Servo MG996 29

2.16 Module 1 Relay 5V Kích Mức Cao/Thấp 30

2.17 Tay Gắp Động Cơ Servo MG995 31

2.18 LCD 2004 nền xanh dương chữ trắng 5V kèm I2C driver 32

3.1 Sơ đồ khối 35

3.2 Sơ đồ nguyên lý hệ thống 36

3.3 Từ trường trong ống dây 38

3.4 Các mẫu bàn chải được sử dụng để thu dữ liệu 40

Trang 14

3.6 Hàm số siêu phẳng[20] 43

3.7 Tập dữ liệu có thể phân tách tuyến tính[20] 44

3.8 Tập dữ liệu không thể phân tách tuyến tính[20] 45

3.9 Kernel trong SVM)[19] 46

3.10 RBF kernel trong SVM)[18] 48

3.11 K-fold Cross-validation 49

3.12 Confusion matrix 3x3 50

3.13 Khung kéo đẩy 52

3.14 Công thức tương quan lực và từ trường 52

3.15 Mạch điện đảo chiều với 2 relay 53

4.9 Lưu đồ giải thuật Arduino 60

4.10 Lưu đồ giải thuật của Raspberry Pi 63

5.1 Hệ thống hoàn thiện 66

5.2 Dữ liệu độ rung của 3 loại bàn chải đo từ tập dữ liệu 67

5.3 25 trường hợp C và gamma được thử nghiệm trên bộ dữ liệu 70

5.4 Đánh giá hiệu suất với C = 10 và gamma = 0.0001 72

Trang 15

5.12 Đánh giá hiệu suất với C = 1 và gamma = 0.01 815.13 Ma trận nhầm lẫn với C = 1 và gamma = 0.01 82

Trang 16

2.1 Thông số kỹ thuật của Raspberry Pi 4 model B 24

2.2 Thông số kỹ thuật của cảm biến áp điện Ceramic 25

2.3 Thông số kỹ thuật Ardunio Uno 28

2.4 Thông số kỹ thuật Động cơ servo MG996R 29

2.5 Thông số kỹ thuật Module 1 Relay 5V Kích Mức Cao/Thấp 31

2.6 Thông số kỹ thuật tay gắp động cơ Servo MG995 32

2.7 Chức năng của từng chân LCD 20x4 33

3.1 So sánh các loại cảm biến rung 37

3.2 So sánh các loại tay gắp động cơ 37

Trang 17

STT Từ viết tắt Giải thích

2 SVC Support Vector Classification3 LinearSVC Linear Support Vector Classification4 NuSVC Nu Support Vector Classification

Trang 18

Bàn chải đánh răng đóng một vai trò hết sức quan trọng trong sức khỏe nha khoa và vệ sinhrăng miệng của con người Hiện nay, việc kiểm tra chất lượng của bàn chải đánh răng thườngdựa vào các phương pháp thủ công, mất nhiều thời gian và công sức Để cải thiện hiệu suất vàđộ tin cậy trong quy trình kiểm tra và phân loại chất lượng của sản phẩm này, sự kết hợp giữamô hình thuật toán học máy SVM Learning vào một hệ thống phân loại đa cấu trúc, bao gồmcác cơ cấu, cảm biến rung Ceramic và nền tảng kit Raspberry Pi 4 Model B, được triển khaibằng ngôn ngữ lập trình Python, đã mang lại một tiềm năng to lớn.

Bằng cách sử dụng mô hình SVM Learning để huấn luyện dữ liệu thu thập được từ cảm biếnrung Ceramic để tiến hành thực hiện việc phân loại đa lớp (Multiclass Classification) với 3 lớp:"Tốt", "Thường", và "Cũ" Tạo ra một hyperplane tối ưu sao cho các điểm thuộc các nhóm khácnhau nằm càng xa nhau, mỗi hyperplane đại diện cho một nhãn cụ thể

Quá trình xây dựng mô hình bao gồm các bước quan trọng như thu thập dữ liệu độ rung từcảm biến rung, ghi lại các giá trị này vào tệp CSV Quá trình tiền xử lý gồm xử lý và chuẩnhoá để có tập dữ liệu, sau đó gán nhãn của từng lớp tương ứng với từng mẫu để chuẩn hoá Dữliệu được tổng hợp gồm hai phần chính: X chứa các đặc trưng (điện áp), và Y chứa nhãn củacác lớp cần phân loại ("T", "B", "K") Tập dữ liệu được phân chia thành tập huấn luyện và tậpvalidation để đào tạo và tối ưu hiệu suất cho mô hình Mô hình SVM được huấn luyện trên tậpdữ liệu huấn luyện để tìm ra hyperplane tối ưu cho việc phân loại chất lượng bàn chải Sử dụngthư viện scikit-learn, chọn Kernel phù hợp như RBF (Radial Basis Function) tùy vào đặc tínhcủa dữ liệu Chọn các siêu tham số như C (tham số kiểm soát độ chệch) và gamma để cải thiệnhiệu suất mô hình

Mô hình huấn luyện của đề tài dựa trên thuật toán máy học SVM đã thể hiện khả năng phânloại với hiệu suất khá tốt trên cả tập huấn luyện (Training set) và tập kiểm định chéo (Validationset) Độ chính xác trên tập huấn luyện là khoảng 89%, trong khi trên tập Validation đạt 71.68%.Sau khi tối ưu hóa siêu tham số và lựa chọn các giá trị tốt nhất, mô hình đã được kiểm thử trêntập test và đạt được độ chính xác khá cao là 72.41% Các chỉ số precision, recall, f1-score và matrận nhầm lẫn (confusion matrix) cho từng lớp cũng đạt mức cao, điều này làm tăng độ tin cậy

Trang 19

Tuy nhiên khi triển khai thực tế, mô hình vẫn còn một số điểm chưa được tối ưu hoá đầy đủ,nhưng mô hình vẫn đáp ứng tốt trong quá trình phân loại đối với bàn chải, với hiệu suất khá caotrên nhiều chỉ số quan trọng trong từng lớp Cần tiếp tục tinh chỉnh và cải thiện mô hình để đảmbảo hiệu suất tối ưu khi triển khai trong các thực tế.

Cuối cùng, nhóm xây dựng một hệ thống gồm các cơ cấu dùng để thực hiện công việc giữcố định và di chuyển bàn chải tương tác với cảm biến rung Ceramic Các kết quả đo được từcảm biến Ceramic thông qua Ardunio Uno truyền về Raspberry Pi 4, được hiển thị qua LCD

Trang 20

Chương 1 TỔNG QUAN

1.1 Đặt vấn đề

Ngày nay chúng ta đều chăm sóc răng bằng bàn chải Bàn chải đánh răng là một sản phẩmsử dụng hàng ngày, đóng vai trò không thể thiếu trong cuộc sống của mỗi người Sự phát triểnnhanh chóng của ngành công nghiệp bàn chải đánh răng đã mang lại doanh thu hàng tỷ USDmỗi năm, nhờ vào sự đa dạng trong chất lượng và phong cách thiết kế của sản phẩm Thôngthường, một bàn chải đánh răng nên được thay đổi khoảng mỗi 2-3 tháng, do đó, trong một năm,mỗi người có thể cần 4-6 bàn chải đánh răng Ước tính tại Việt Nam, mỗi năm sản xuất hơn 250triệu sản phẩm bàn chải, đưa đi tiêu thụ toàn cầu[2]

Hình 1.1: Thị trường bàn chải đánh răng: Phân tích và dự báo ngành công nghiệp toàn cầu(2023-2029)[4]

Với quy mô sản xuất lớn như vậy, không chỉ có khả năng đáp ứng nhu cầu thị trường màcòn đặt ra thách thức đối với việc đảm bảo chất lượng Điều này đòi hỏi quy trình kiểm tra chấtlượng phải trở nên mạnh mẽ, linh hoạt và chính xác Chất lượng đóng vai trò quan trọng trongviệc duy trì sức khỏe răng nướu của người dùng Bàn chải đánh răng kém chất lượng có thể gây

Trang 21

tổn thương cho nướu, tạo ra mảng bám, và trong những trường hợp nghiêm trọng, có thể dẫnđến nguy cơ mắc bệnh ung thư miệng.[22].

Hiện nay, việc kiểm tra chất lượng của bàn chải đánh răng thường dựa vào các phương phápthủ công, mất nhiều thời gian và công sức Để đáp ứng nhu cầu ngày càng tăng về chất lượng vàsản lượng, việc tự động hóa quy trình kiểm tra chất lượng trở nên cấp thiết hơn bao giờ hết Saukhi tiến hành tìm hiểu về sự phát triển liên tục trong lĩnh vực công nghệ cảm biến, cùng với sứcmạnh tính toán của máy tính nhúng Raspberry Pi 4 Model B, nhóm đã nhận thấy được một cơhội đáng kể để cải thiện hiệu suất và độ tin cậy trong quy trình kiểm tra và phân loại chất lượngcủa sản phẩm bàn chải đánh răng

Với những ý tưởng trên, kết hợp cùng những kiến thức đã được trang bị sẵn, và sự hỗ trợhướng dẫn của Giảng viên, nhóm đã quyết định lựa chọn thực hiện đề tài “Thiết kế và thi cônghệ thống tự động phân loại bàn chải đánh răng” để giúp nâng cao số lượng trong quy trình kiểmtra chất lượng sản phẩm cũng như tiết kiệm chi phí và thời gian cho ngành công nghiệp sản xuấtbàn chải đánh răng này Đặc biệt, thuật toán học máy SVM sẽ được sử dụng để làm mô hìnhphân loại trong đề tài này, giúp đảm bảo độ chính xác và hiệu suất tốt nhất trong quá trình vậnhành của hệ thống phân loại

1.2 Mục tiêu

Mục tiêu của đề tài là thiết kế và thi công hệ thống tự động phân loại chất lượng bàn chảiđánh răng Bàn chải sẽ được cố định và di chuyển lên xuống thông qua các cơ cấu trong hệthống để tương tác với cảm biến rung Ceramic Từ đó, dữ liệu điện áp liên quan đến chất lượngcủa từng loại bàn chải sẽ được thu thập trực tiếp từ hệ thống, và được chuyển vào Raspberry Pithông qua Arduino để tạo thành tập dữ liệu huấn luyện cho mô hình phân loại

Trong đề tài này, mô hình máy học SVM sẽ được sử dụng làm mô hình phân loại chất lượngbàn chải đánh răng Mô hình này được xây dựng dựa trên tập dữ liệu thu thập trực tiếp từ hệthống và sau đó sẽ được triển khai để phân loại chất lượng bàn chải thành các mức Tốt, Thường,và Cũ Cuối cùng thông qua các thử nghiệm đánh giá hiệu suất của mô hình, mô hình SVM với

Trang 22

độ chính xác cao nhất sẽ được tích hợp vào Raspberry Pi Điều này giúp hệ thống có tính chínhxác cao khi vận hành việc phân loại chất lượng trên dữ liệu mới.

1.3 Nội dung nghiên cứu

Trong quá trình thực hiện Đồ án tốt nghiệp với đề tài Thiết kế hệ thống tự động phân loạichất lượng bàn chải, nhóm chúng em đã tập trung giải quyết và hoàn thành được những nội dungsau:

• Nội dung 1: Thiết kế tay cầm giữ bàn chải • Nội dung 2: Thiết kế trục cơ khí để tạo dao động cho bàn chải • Nội dung 3: Kết nối cảm biến với Ardunio và truyền dữ liệu về Raspberry • Nội dung 4: Lập trình để giao tiếp với hệ thống.

• Nội dung 5: Đo và thu thập dữ liệu • Nội dung 6: Xây dựng, huấn luyện và đánh giá mô hình phân loại • Nội dung 7: Thi công phần cứng, chạy thử nghiệm và hiệu chỉnh hệ thống • Nội dung 8: Viết báo cáo thực hiện.

• Nội dung 9: Bảo vệ luận văn.

Trang 23

đại diện cho bàn chải loại thường và label K đại diện cho bàn chải cũ.• Mẫu bàn chải được sử dụng trong đề tài là những sản phẩm đang lưu hành trên thị trường,

được phân ra theo 3 loại là Tốt, Thường dựa theo giá sản phẩm và loại Cũ dựa vào tìnhtrạng hỏng cũng như thời gian dùng từ 3 tháng trở đi Điều này giúp người dùng có cáinhìn thực tế hơn về sự chênh lệch điện áp của 3 loại bàn chải

• Để mô hình phân loại đạt được độ chính xác cao hơn thì cần phải tăng số lượng bàn chảikiểm tra và trích xuất nhiều đặc trưng điện áp hơn, điều này đòi hỏi sự đầu tư và yêu cầuhệ thống phải ổn định, nên ở đây nhóm chỉ thực hiện trên 9 bàn chải với 3 phân loại, sốlượng đặc trưng điện áp là 100

• Kết quả của quá trình phân loại sẽ được hiển thị lên LCD để người quan sát dễ dàng theodõi

Trang 24

1.5 Bố cục

• Chương 1:Tổng quan.Chương này trình bày lý do chọn đề tài, mục tiêu, nôi dung nghiên cứu, các giới hạn thôngsố và bố cục của đề tài

• Chương 2:Cơ sở lý thuyết.Chương này sẽ đưa ra các kiến thức liên quan đến đề tài như độ mịn của từng loại bànchải, nguyên lý về độ rung, phần mềm và phần cứng được sử dụng trong đề tài

• Chương 3:Tính toán và thiết kế hệ thốngChương này sẽ trình bày sơ đồ khối và chức năng hoạt động của các khối trong hệ thốngđiều khiển, từ đó đưa ra tính toán lựa chọn các linh kiện cho từng khối điều khiển và đưara nguồn ổn áp đầu vào cung cấp cho toàn bộ hệ thống Trình bày sơ đồ mạch nguyên lý,giải thích nguyên lý hoạt động của mạch Tiếp theo, đưa ra các tập dữ liệu cũng như làmô hình phân loại sử dụng và phương pháp đánh giá

• Chương 4:Thi công hệ thốngSau khi tính toán bố trí linh kiện phù hợp, chương này sẽ tập trung hoàn thiện mạch, thicông hoàn chỉnh mạch, đưa ra lưu đồ giải thuật, trình bày về cách hoạt động chi tiết

• Chương 5:Kết quả - Nhận xétChương này trình bày kết quả thi công của đề tài cùng với các nhận xét và đánh giá chohệ thống về sự ổn định và tìm cách khắc phục những lỗi còn sai xót

• Chương 6:Kết luận và hướng phát triểnChương này sẽ trình bày những kết quả đạt được từ hệ thống đã thực hiện để đưa ra kếtluận cuối cùng sau khi hoàn thành sản phẩm, đưa ra những định hướng phát triển để môhình hoàn thiện và có tính ứng dụng cao hơn trong thực tế

Trang 25

Chương 2 CƠ SỞ LÝ THUYẾT

2.1 Ảnh hưởng của độ mịn lông bàn chải tới chất lượng bàn

chải đánh răng

Đánh giá chất lượng của một bàn chải đánh răng không chỉ phụ thuộc vào thiết kế tổng thể,mà còn tập trung chủ yếu vào đặc tính độ mịn của lông bàn chải Đối với lông bàn chải, độ mịnđóng vai trò quan trọng trong việc xác định hiệu suất và chất lượng của bàn chải, tạo ra sự chênhlệch rõ ràng giữa các loại bàn chải như bàn chải tốt, bàn chải giá rẻ bình thường và bàn chải đãqua sử dụng bị hỏng

• Bàn chải đánh răng có chất lượng tốt thường sử dụng lông mềm và mịn Điều này giúpgiảm áp lực lên nướu và bề mặt răng, giảm nguy cơ gây tổn thương Lông mềm còn cókhả năng linh hoạt khi di chuyển giữa các kẽ răng và nấm răng, đảm bảo hiệu suất làmsạch cao

• Bàn chải rẻ thường có lông cứng và ít mịn Điều này có thể tạo ra áp lực lớn khi đánhrăng, gây tổn thương nướu và sưng răng Đồng thời, lông ít mịn cũng làm giảm hiệu suấtlàm sạch, khó di chuyển qua các kẽ răng

• Bàn chải hỏng thường xuất hiện khi lông bàn chải mất mịn và đàn hồi sau một thời giansử dụng dài Các sợi lông bị nứt, cong vênh, gây tổn thương cho nướu và không còn khảnăng làm sạch tốt

Hình 2.1: Lông bàn chải của 3 loại tốt, thường và cũ theo thứ tự từ trái sang phải

Trang 26

Do đó, khi lựa chọn bàn chải đánh răng, sự chú ý đến độ mịn của lông bàn chải đóng vai tròquan trọng Bàn chải tốt với lông mịn và mềm sẽ mang lại trải nghiệm đánh răng thoải mái vàhiệu quả Ngược lại, sự thiếu mịn có thể làm giảm chất lượng đánh răng và gây hại cho sức khỏerăng miệng.

2.2 Hiệu ứng áp điện và ứng dụng trong cảm biến rung

Hiệu ứng áp điện trực tiếp được anh em nhà Curie phát hiện vào năm 1880, khi họ đặt mộtvật nặng lên trên tinh thể thạch anh, trên bề mặt của tinh thể xuất hiện điện tích, và lượng điệntích này tỷ lệ với khối lượng của vật nặng [16] Đây là một hiện tượng đặc biệt trong vật liệu,bắt nguồn từ sự không đối xứng trong cấu trúc tinh thể của vật liệu, nơi mà các ion âm và iondương tự nhiên được sắp xếp không đồng đều Khi vật liệu trải qua biến đổi cơ học dẫn đến sựbiến đổi điện tích trong vật liệu, các ion di chuyển tạo ra sự thay đổi đáng kể trong lượng điệntích

Mối quan hệ giữa điện dung C (F) và lượng điện tích Q (C), điện áp ngõ ra V (V) có thểđược mô tả bằng công thức:

V =Q

Trong đó:• V (V): Điện áp ngõ ra.• Q(C): Lượng điện tích.• C(F): Điện dung.Nguyên lý của hiệu ứng áp điện: khi tác dụng áp lực lên vật liệu áp điện, nó sẽ tạo ra hiệuđiện thế ( hiệu ứng áp điện dương) Khi đặt một hiệu điện thế lên vật liệu áp điện, nó sẽ tạo raứng suất cơ học (hiệu ứng áp điện nghịch đảo) Nếu áp suất là một dao động tần số cao, nó sẽtạo ra một dòng điện tần số cao Khi tín hiệu điện tần số cao được áp dụng cho gốm áp điện(ceramic), sẽ tạo ra dòng điện có tần số cao Gốm áp điện có chức năng chuyển đổi và biến đổinghịch đảo giữa năng lượng cơ học và năng lượng điện, điều này làm cho nó trở thành một thànhphần quan trọng và được tích hợp vào nhiều cấu trúc cơ khí khác nhau và đặc biệt nhất là trong

Trang 27

cảm biến rung.

Khi cảm biến rung trải qua lực hoặc biến dạng do rung động, nó truyền các yếu tố cơ họcnày vào lớp ceramic, gây ra biến dạng trong vật liệu và kích thích một tín hiệu điện Mối quanhệ giữa độ rung và áp điện trong ceramic được biểu diễn bằng công thức:

Trong đó:• D(C/m²): Mật độ thông lượng điện trường tạo ra bởi hiện tượng áp điện.• T (N/m²): Áp lực tác động lên cảm biến

• E (V/m): Điện trường.• d (C/N hoặc m/V): Hằng số áp điện.• ε (F/M): Độ điện thẩm

2.3 Giới thiệu về thuật toán máy học SVM

2.3.1 Giới thiệu về thuật toán máy học SVM

Support Vector Machine (SVM) là một phương pháp học máy giám sát (Supervised machinelearning) được sử dụng phổ biến cho các nhiệm vụ phân loại, hồi quy tuyến tính hoặc phi tuyếntính và thậm chí là phát hiện ngoại lệ Được giới thiệu bởi Corinna Cortes và Vladimir N Vapnikvào những năm 1990, SVM đã trở thành một thuật toán quan trọng trong lĩnh vực học máy, vớikhả năng thích ứng và hiệu quả trong nhiều ứng dụng vì chúng có thể quản lý dữ liệu đa chiềuvà các mối quan hệ phi tuyến

2.3.2 Mục tiêu của thuật toán máy học SVM

Trong thuật toán này, chúng ta biểu diễn dữ liệu dưới dạng các điểm trong không gian Nchiều, với mỗi điểm dữ liệu có giá trị tương ứng với các tính năng cụ thể Mục tiêu của SVMlà tìm kiếm một "siêu phẳng" trong không gian N chiều (tương đương với N đặc trưng) để chiadữ liệu thành hai phần tương ứng với lớp của chúng Siêu phẳng này phải có lề cực đại và phân

Trang 28

chia hai bao lồi và cách đều chúng Trong không gian hai chiều, siêu phẳng tương ứng với mộtđường thẳng, còn trong không gian ba chiều, nó là một mặt phẳng Margin là khoảng cách từmặt phẳng phân tách( decision boundary) đến các điểm dữ liệu gần nó nhất Các điểm dữ liệugần nhất này hợp thành đường thẳng và được gọi là support vectors Mục tiêu của thuật toánSVM là đi tìm mặt phẳng phân tách có margin lớn nhất Vì vậy thuật toán này đôi khi còn đượcgọi là large margin classification Các véc tơ hỗ trợ đóng vai trò quan trọng trong việc tối ưuhóa lề và xác định vị trí của siêu phẳng, giúp tăng khả năng tổng quát hóa và hiệu suất của môhình trên các dữ liệu mới và cho phép phân loại hiệu quả ngay cả trong các tình huống phức tạp,phi tuyến tính SVM phân loại dữ liệu bằng cách gán nhãn cho các điểm dữ liệu dựa trên vị trícủa chúng trong siêu phẳng đã được xác định trước.

Hình 2.2: Sơ đồ của SVM Learning[9]

2.3.3 Ứng dụng của thuật toán máy học SVM

SVM được sử dụng rộng rãi trong nhiều lĩnh vực như:• Phân loại hình ảnh: SVM có thể được sử dụng để phân loại các đối tượng trong nhận dạng

khuôn mặt, phân loại chữ viết tay (ORC), và nhận diện đối tượng trong các hình ảnh ykhoa

• Nhận dạng giọng nói: SVM được sử dụng để phân loại giọng nói vào các nhóm khácnhau, chẳng hạn như giới tính hoặc ngôn ngữ, cung cấp một cơ sở cho ứng dụng trong cáchệ thống nhận dạng giọng nói và giao tiếp giữa người và máy

Trang 29

• Dự đoán tài chính: SVM có thể được sử dụng để dự đoán giá cổ phiếu dựa trên các chỉ sốkinh tế và tài chính.

• Phân loại văn bản: SVM có thể được sử dụng để phân loại văn bản, giúp tự động đưa raquyết định về việc một đoạn văn bản thuộc vào nhóm nào, ví dụ như phân loại email làthư rác hay không

• Phát hiện gian lận tín dụng: SVM có thể được áp dụng để phát hiện gian lận trong giaodịch tín dụng

• Phân tích dữ liệu y tế: SVM có thể được áp dụng để phân loại và dự đoán các bệnh lý,giúp chẩn đoán và theo dõi tiến triển của các bệnh trạng khác nhau

2.4 Phân loại đa lớp với thuật toán máy học SVM

Phân loại đa lớp (Multiclass classification) là một bài toán phổ biến trong học máy có giámsát Mục tiêu là phân loại một điểm dữ liệu vào một trong nhiều lớp khác nhau

Ví dụ, trong một bài toán phân loại phân loại chất lượng thiết bị, ta có các mẫu dữ liệu đođiện áp từ cảm biến theo các lớp "Chưa đạt chuẩn", "Đặc biệt cao", "Đặc biệt thấp" Trước tiênxem xét Binary Classification, mặc dù đơn giản và dễ triển khai, nhưng không đủ phản ánhsự đa dạng trong dữ liệu, vì trong dữ liệu này có nhiều hơn hai trạng thái khác nhau Sự giớihạn của Binary classification có thể dẫn đến mất mát thông tin quan trọng và làm giảm chínhxác của mô hình Vậy thế cho nên trong trường hợp này, sử dụng Multiclass Classification làphương pháp tối ưu nhất, lúc này mỗi mẫu được gán cho một và chỉ một nhãn - không thể mộtmẫu thuộc cả "Đặc biệt cao" và "Đặc biệt thấp" Với Multiclass Classification, có thể xây dựngmột mô hình có khả năng phân loại mẫu dữ liệu vào một trong ba lớp cụ thể, giúp giải quyếtbài toán phân loại một cách toàn diện hơn, vì mỗi trạng thái có thể được biểu diễn như một lớpriêng biệt Điều này mang lại sự linh hoạt và chính xác cao trong việc đánh giá chất lượng củadữ liệu điện áp, đồng thời cung cấp thông tin chi tiết về tình trạng của hệ thống theo các mức độkhác nhau

Dựa vào hình 2.3, với Binary classification, mô hình dự đoán giữa hai lớp chỉ có thể đưa raquyết định True (đúng) hoặc False (sai), 0 hoặc 1, Positive hoặc Negative Bài toán Multiclass

Trang 30

Hình 2.3: Sự khác nhau giữa Binary classification và Multiclass classification

classification có thể giúp mô hình học nhiều loại nhãn trong 1 mẫu dữ liệu, đầu ra đưa ra nhãncó xác suất dự đoán cao nhất

Một trong những phương pháp phổ biến để giải quyết bài toán Multiclass classification làsử dụng thuật toán Support Vector Machines (SVM) SVM ban đầu được thiết kế để giải quyếtbài toán Binary classification, giúp hỗ trợ phân loại nhị phân và tách các điểm dữ liệu thành hailớp Nhưng bây giờ nó có thể được mở rộng để phân loại đa lớp bằng cách sử dụng các phươngpháp như One-vs-All (OvA) hoặc One-vs-One (OvO)

2.4.1 Phương pháp One-vs-One (OvO) trong SVM

Phương pháp OvO trong SVM là một kỹ thuật giúp xử lý phân loại đa lớp (multiclassclassification) bằng cách chia thành nhiều bài toán nhị phân (binary classification) Trong SVMmỗi bài toán nhị phân sẽ xác định giữa hai lớp cụ thể

Quá trình huấn luyện OvO Tạo các bài toán nhị phân

Với một tập dữ liệu gồm N lớp, sẽ tạo được số bài toán nhị phân là:

N· (N − 1)

Mỗi bài toán nhị phân sẽ xác định giữa hai lớp cụ thể Ví dụ, nếu có ba lớp (A, B, C), bạn sẽtạo ba bài toán nhị phân: AB, AC, BC

Huấn luyện SVM cho từng bài toán nhị phân

• Cho mỗi bài toán nhị phân, sẽ huấn luyện một mô hình SVM để phân loại giữa hai lớptương ứng

Trang 31

• SVM sẽ tìm ra ranh giới quyết định (decision boundary) sao cho khoảng cách giữa cácđiểm dữ liệu của hai lớp là lớn nhất.

Dự đoán kết quả

Sau khi có mô hình cho mỗi bài toán nhị phân, trong quá trình thực hiện phân loại trên mộtmẫu mới, ta sẽ sử dụng tất cả các mô hình và đếm số phiếu cho mỗi lớp để đưa ra dự đoán cuốicùng Lớp với số phiếu cao nhất sẽ được chọn là kết quả phân loại

Hình 2.4: Ví dụ về phương pháp OvO)[1]

Trong One-vs-One, ta cần một siêu phẳng để phân tách giữa hai lớp, bỏ qua các điểm củalớp thứ ba Dựa vào hình 2.4, đường màu đỏ-xanh dương cố gắng tối đa hóa khoảng cách chỉgiữa các điểm màu xanh dương và đỏ Nó không liên quan gì đến điểm xanh lá cây

Phương pháp OvO có ưu điểm là dễ triển khai và thường mang lại hiệu suất tốt trên các tậpdữ liệu với số lớp nhỏ hoặc vừa Tuy nhiên, với số lớp lớn, số lượng bộ phân loại có thể trở nênlớn và yêu cầu nhiều bộ nhớ và tài nguyên tính toán

2.4.2 Phương pháp One-Vs-All (OvA) trong SVM

Phương pháp One-vs-All (OvA), còn được gọi là One-vs-Rest (OvR), là một kỹ thuật trongSVM để giải quyết bài toán phân loại đa lớp OvA chuyển bài toán phân loại đa lớp thành nhiềubài toán phân loại nhị phân Thay vì huấn luyện một mô hình SVM duy nhất để phân loại tất cảcác lớp cùng một lúc, ta huấn luyện một mô hình SVM riêng biệt cho mỗi lớp

Trang 32

Quá trình huấn luyện OvA

• Một tập dữ liệu gồm N lớp, sẽ tạo được N bài toán nhị phân, mỗi bài toán nhị phân tươngứng với việc phân biệt giữa một lớp (được chọn làm lớp dương) và tất cả các lớp còn lại(lớp âm)

• Tạo một tập dữ liệu con chỉ chứa các mẫu từ lớp dương và mẫu từ lớp âm tương ứng.• Sử dụng tập dữ liệu con này để huấn luyện một mô hình SVM nhị phân

• Lặp lại các bước trên cho tất cả các lớp trong tập dữ liệu đa lớp.• SVM sẽ tìm ra ranh giới quyết định sao cho khoảng cách giữa các điểm dữ liệu của lớp

được quan tâm và các lớp khác là lớn nhất

Dự đoán kết quả: Mỗi mô hình sẽ được huấn luyện để phân loại giữa lớp dương (lớp đang xét)

và tất cả các lớp khác (lớp âm) Sau khi huấn luyện các mô hình SVM riêng biệt cho mỗi lớp,khi có một mẫu mới cần phân loại, ta sẽ chạy mẫu này qua tất cả N mô hình SVM và xem xemmẫu đó rơi vào lớp nào có đầu ra cao nhất Lớp được dự đoán cho mẫu mới sẽ là lớp mà môhình SVM có giá trị quyết định (decision value) cao nhất

Hình 2.5: Ví dụ về phương pháp OvA)[1]

Trong One-vs-All, ta cần một siêu phẳng để phân tách giữa một lớp và tất cả các lớp kháccùng một lúc, phân tách sẽ tính đến tất cả các điểm, chia chúng thành hai nhóm; một nhóm chođiểm lớp và một nhóm cho tất cả các điểm khác Dựa vào hình 2.5, đường màu xanh dương cốgắng tối đa hóa khoảng cách giữa các điểm màu xanh lá cây và tất cả các điểm khác cùng một

Trang 33

Phương pháp OvA dễ triển khai và hiệu quả với các tập dữ liệu có nhiều lớp Cho phép sửdụng các mô hình SVM nhị phân độc lập để giải quyết bài toán phức tạp hơn Tuy nhiên OvAvẫn có hạn chế là Có thể xảy ra hiện tượng không chắc chắn (ambiguity) khi các mẫu nằm gầnranh giới giữa các lớp

2.5 Các mô hình phân loại thuật toán máy học SVM dựa trên

thư viện Scikit-learn

Trong thuật toán máy học SVM có ba lớp mô hình quan trọng được cung cấp trong thư việnscikit-learn của Python là LinearSVC, SVC và NuSVC

Hình 2.6: Các mô hình phân loại SVM được hỗ trợ trong Scikit-learn[12]

2.5.1 LinearSVC

Giới thiệu về LinearSVC

LinearSVC (Linear Support Vector Classification) là một mô hình Support Vector cation dựa trên kernel tuyến tính Nó được xây dựng trên thư viện liblinear, và khác với lớp SVCtrong thư viện sklearn.svm về cách tính toán loss function và regularization Lớp này hỗ trợ cả

Trang 34

Classifi-đầu vào dạng dense (mảng 2D) và sparse (ma trận thưa), và hỗ trợ phân loại đa lớp bằng phươngpháp "one-vs-the-rest".

Mô hình này thực hiện việc phân loại các điểm dữ liệu vào các lớp khác nhau bằng cách sửdụng một đường ranh giới tuyến tính (hyperplane) sao cho khoảng cách từ mỗi điểm dữ liệu đếnranh giới là lớn nhất

Hình 2.7: LinearSVC với Linear Kernel[15]

Tham số (Parameters) • penalty:Chọn norm được sử dụng trong regularization Có hai giá trị ’L1’ và ’L2’ ’L2’

là norm chuẩn được sử dụng trong SVC, ’L1’ tạo ra các vectơ coef_ có dạng sparse

• loss: Chọn hàm loss function Có hai giá trị ’hinge’ và ’squared_hinge’ ’hinge’ là hàmloss chuẩn (được sử dụng trong SVC), ’squared_hinge’ là bình phương của hàm loss hinge

• dual: Chọn giải thuật giải bài toán tối ưu là dual hoặc primal Giá trị “auto” sẽ tự độngchọn giải thuật dựa trên các thông số khác

• tol:Độ chính xác (tolerance) để dừng quá trình tối ưu

• C:Tham số regularization, độ mạnh của regularization nghịch đảo tỷ lệ với C

• multi_class:Xác định chiến lược phân loại đa lớp nếu y chứa nhiều hơn hai lớp Có haigiá trị ’ovr’ (one-vs-rest) và ’crammer_singer’

• fit_intercept:Xác định có tính intercept (chặn) hay không

• intercept_scaling:Tham số điều chỉnh ảnh hưởng của intercept trong quá trình ization

Trang 35

regular-• class_weight:Xác định trọng số của các lớp trong bài toán phân loại đa lớp.

• verbose:Xác định cấp độ thông báo chi tiết

• random_state:Xác định seed cho quá trình tạo số ngẫu nhiên

• max_iter:Số lần lặp tối đa

Một số thuộc tính (Attributes) quan trọng: • coef_: Đây là một thuộc tính chứa trọng số gán cho các đặc trưng trong mô hình SVM

Đối với bài toán phân loại đa lớp, coef_ là một mảng 2D với kích thước (n_classes,n_features), trong đó n_classes là số lớp và n_features là số lượng đặc trưng Mỗihàng của coef_ tương ứng với trọng số của một lớp

• intercept_:Đây là thuộc tính chứa hệ số tự do trong hàm quyết định của mô hình SVM.Nó là một mảng 1D với kích thước (n_classes,), trong đó n_classes là số lớp Mỗiphần tử của intercept_ tương ứng với hệ số tự do của một lớp

• classes_:Đây là thuộc tính chứa danh sách các nhãn lớp duy nhất mà mô hình SVM đãhọc được từ dữ liệu huấn luyện Đối với bài toán phân loại đa lớp, classes_ là một mảng1D chứa các nhãn lớp

• n_features_in_:Đây là thuộc tính chỉ số lượng đặc trưng đã được sử dụng trong quá trìnhfit (huấn luyện) Nó sẽ có giá trị sau khi gọi phương thức fit()

• feature_names_in_:Đây là thuộc tính chứa tên của các đặc trưng nếu dữ liệu đầu vào Xcó các tên đặc trưng là chuỗi ký tự Nếu không có tên đặc trưng, thuộc tính này sẽ là None

• n_iter_:Đây là thuộc tính chứa số lần lặp tối đa trên tất cả các lớp Nó chỉ có giá trị saukhi gọi phương thức fit()

Một số phương thức (Methods) quan trọng:

• fit(X, y): Phương thức này được sử dụng để huấn luyện mô hình SVM trên dữ liệuhuấn luyện X và nhãn tương ứng y Sau khi gọi phương thức này, mô hình sẽ học cáctrọng số và hệ số tự do cho mỗi lớp

Trang 36

• decision_function(X): Phương thức này tính toán giá trị của hàm quyết định cho cácmẫu dữ liệu X Kết quả trả về là một mảng 2D với kích thước (n_samples, n_classes),trong đó n_samples là số lượng mẫu và n_classes là số lớp Mỗi phần tử (i, j) củamảng kết quả là giá trị của hàm quyết định cho mẫu thứ i thuộc lớp thứ j.

• predict(X): Phương thức này dùng để dự đoán nhãn lớp cho các mẫu dữ liệu X Kết quảtrả về là một mảng 1D chứa các nhãn dự đoán tương ứng

• score(X, y): Phương thức này tính toán độ chính xác của mô hình trên dữ liệu X vớinhãn thực tế y Kết quả trả về là một số thể hiện độ chính xác của mô hình

• get_params(): Phương thức này trả về các tham số của mô hình SVM và giá trị hiện tạicủa chúng

• set_params(**params): Phương thức này được sử dụng để thiết lập các tham số củamô hình SVM dựa trên các giá trị được đưa vào thông qua params Các tham số có thểđược chỉ định dưới dạng tên_tham_số=giá_trị

Ưu điểm của Linear SVC

LinearSVC thường hiệu quả với dữ liệu lớn hơn so với SVC, vì không cần phải tính toán vàtinh chỉnh tham số nhiều các đặc trưng ở không gian cao chiều như khi sử dụng kernel Khi dữliệu có biểu diễn tuyến tính tốt, LinearSVC có thể cung cấp mô hình phân loại đơn giản và dễhiểu

Nhược điểm của Linear SVC

LinearSVC bị hạn chế khi dữ liệu không được phân loại tuyến tính và có thể overfitting nếucó quá nhiều đặc trưng, nhiễu LinearSVC không hỗ trợ các kernel phi tuyến, điều này làm giảmđi sự chính xác trong các mô hình với dữ liệu phức tạp

Giới thiệu SVC

SVC (Support Vector Classification) được cài đặt dựa trên thư viện libsvm, được dùng trongcác bài toán phân loại đa lớp khác nhau, có thể xử lý cả dữ liệu tuyến tính và không tuyến tínhtùy thuộc vào loại kernel được sử dụng

Trang 37

Các Tham Số (Parameters) Cơ Bản: • C (float, mặc định=1.0):Tham số regularization, kiểm soát độ mạnh của regularization.

Nếu giá trị C quá lớn, mô hình có thể bị overfitting Nếu giá trị C quá nhỏ, mô hình cóthể bị underfitting

• kernel (str hoặc callable, mặc định=’rbf’): Loại kernel được sử dụng trong thuật toán(linear: kernel tuyến tính cho dữ liệu có cấu trúc tuyến tính, poly: kernel đa thức cho dữliệu có hình dạng phức tạp, RBF kernel mặc định thích hợp cho dữ liệu không tuyến tính,sigmoid kernel cho dữ liệu có hình dạng phức tạp, precomputed sử dụng ma trận kernelđã tính trước

• degree (int, mặc định=3): Bậc của kernel đa thức được sử dụng trong kernel đa thức.Bậc càng cao, mô hình có khả năng học được các đa thức phức tạp hơn

• gamma (float hoặc {’scale’, ’auto’}, mặc định=’scale’): Tham số hạt nhân cho cáckernel ’rbf’, ’poly’ và ’sigmoid’ Gamma xác định mức độ ảnh hưởng của mỗi điểm dữliệu đến quyết định biên Các giá trị có thể là:

– Giá trị số thực: Gamma được sử dụng trực tiếp và phải là không âm Giá trị gamma

nhỏ sẽ tạo ra các siêu phẳng mượt hơn, gamma lớn sẽ tạo ra các siêu phẳng phânchia gập gềnh hơn

• shrinking (bool, mặc định=True):Xác định xem thuật toán có sử dụng heuristics giảmkích thước của bài toán tối ưu hay không Khi shrinking=True, thuật toán SVM có thểloại bỏ một số điểm dữ liệu không quan trọng để giảm độ phức tạp tính toán và tăng tốcđộ huấn luyện Tuy nhiên, nếu tập dữ liệu rất nhỏ, tắt tính năng này có thể giúp tăng độchính xác của mô hình

Trang 38

• probability (bool, mặc định=False): Xác định xem mô hình có tính toán xác suất dựđoán hay không Khi probability=True, mô hình sẽ tính toán xác suất dự đoán cho từnglớp, bằng cách sử dụng một phương pháp dự đoán xác suất như phân phối Gaussian Tuynhiên, tính toán xác suất có thể tốn nhiều thời gian và tài nguyên hơn.

• tol (float, mặc định=1e-3): Sai số tối đa cho việc dừng quá trình tối ưu hóa Quá trìnhtối ưu hóa sẽ dừng khi chênh lệch giữa hai lần lặp liền kề nhỏ hơn tol

Thuộc tính chủ yếu:

• class_weight (dict hoặc ’balanced’, mặc định=None): Xác định trọng số được gáncho mỗi lớp Có thể được chỉ định dưới dạng một từ điển, trong đó các khóa là các lớp vàcác giá trị là các trọng số tương ứng Một lớp cũng có thể được gán giá trị ’balanced’để tự động cân bằng trọng số theo số lượng mẫu trong lớp đó

• decision_function_shape (str, mặc định=’ovr’): Xác định cách tính hàm quyếtđịnh Có hai tùy chọn: ’ovr’ (one-vs-rest) tính toán hàm quyết định cho mỗi lớp độclập với các lớp khác, ’ovo’ (one-vs-one) tính toán tất cả các cặp hàm quyết định cho tấtcả các cặp lớp

• random_state (int hoặc RandomState, mặc định=None): Xác định hạt giống để tạo sốngẫu nhiên cho các quá trình ngẫu nhiên Sử dụng một giá trị cố định của random_statesẽ đảm bảo rằng mỗi lần chạy mô hình sẽ trả về kết quả như nhau

Trang 39

Ưu điểm của SVC

Hiệu suất Tốt trong Không Gian Chiều Cao SVC có thể xử lý cả các bài toán phân loại phituyến tính và tuyến tính, có thể sử dụng các hàm kernel phức tạp để tìm ra siêu phẳng phân chiaphi tuyến tính Có thể mở rộng để giải quyết bài toán phân loại đa lớp thông qua các phươngpháp như one-vs-one hoặc one-vs-rest

Nhược điểm của SVC

LinearSVC bị hạn chế khi dữ liệu không được phân loại tuyến tính và có thể overfitting nếucó quá nhiều đặc trưng, nhiễu LinearSVC không hỗ trợ các kernel phi tuyến, điều này làm giảmđi sự chính xác trong các mô hình với dữ liệu phức tạp

Giới thiệu về NuSVC

NuSVC là viết tắt của Nu-Support Vector Classification Đây là một thuật toán phân loạitrong SVM, tương tự như SVC, nhưng sử dụng một tham số để điều khiển số lượng vector hỗtrợ NuSVC hỗ trợ nhiều loại kernel khác nhau như: linear, poly, rbf, sigmoid

Giá trị này phải không âm và bị bỏ qua đối với các hàm kernel khác.• gamma ({’scale’, ’auto’} hoặc float, mặc định=’scale’): Tham số gamma là hệ số

kernel cho các hàm ’rbf’, ’poly’, và ’sigmoid’ Giá trị có thể là ’scale’, ’auto’, hoặc một số

Trang 40

thực không âm.• coef0 (float, mặc định=0.0): Tham số coef0 là hằng số độc lập trong hàm kernel Chỉ

có ý nghĩa đối với các hàm kernel ’poly’ và ’sigmoid’.• shrinking (bool, mặc định=True): Tham số shrinking xác định liệu thuật toán có sử

dụng phép heuristics thu gọn hay không.• probability (bool, mặc định=False): Tham số probability xác định liệu xác suất ước

lượng có được kích hoạt hay không.• tol (float, mặc định=1e-3): Tham số tol là một ngưỡng dừng cho tiêu chí dừng của

thuật toán.• cache_size (float, mặc định=200): Tham số cache_size xác định kích thước bộ nhớ

cache của kernel (tính bằng MB).• class_weight ({dict, ’balanced’}, mặc định=None): Tham số class_weight cho

phép điều chỉnh tham số C của lớp i thành class_weight[i].• verbose (bool, mặc định=False): Tham số verbose xác định xem liệu quá trình huấn

luyện có in ra thông tin chi tiết hay không.• max_iter (int, mặc định=-1): Tham số max_iter xác định số lượng lần lặp tối đa.• decision_function_shape ({’ovr’, ’ovo’}, mặc định=’ovr’): xác định phương pháp

tính toán hàm quyết định cho SVM đa lớp.• break_ties (bool, mặc định=False): Tham số break_ties xác định xem liệu cần phải

phá vỡ sự cân bằng trong kết quả quyết định hay không.• random_state (int, RandomState instance or None, mặc định=None): Tham số

random_state xác định seed cho generator ngẫu nhiên khi shuffle=True trong quátrình tối ưu hóa

Phương Thức

• fit(X, y[, sample_weight]): Huấn luyện mô hình với dữ liệu huấn luyện X và nhãny sample_weight là một mảng trọng số tùy chọn cho mỗi mẫu

Ngày đăng: 26/09/2024, 12:36

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[10] Farikhin Keszya Wabang, Oky Dwi Nurhayati. Application of the na¨ıve bayes classifier al- gorithm to classify community complaints. Jurnal RESTI (Rekayasa Sistem dan Teknologi Informasi), 11/2022 Sách, tạp chí
Tiêu đề: Jurnal RESTI (Rekayasa Sistem dan TeknologiInformasi)
[15] Ratnakar Dash Ladi Sandeep Kumar Pradeep Kumar Ladi, Murali Gopal Kakita. Pknnet:a novel feature learning architecture for vegetation mapping using remote sensing hyper- spectral image classification. Earth Science Informatics, 2023 Sách, tạp chí
Tiêu đề: Earth Science Informatics
[1] baeldung. Multiclass classification using support vector machines, 04/09/2023. https://www.baeldung.com/cs/svm-multiclass-classification Link
[3] Thế giới IC. Cảm biến Áp Điện ceramic, 2023. https://www.thegioiic.com/cam-bien-ap-dien-ceramic Link
[4] Thế giới IC. Lcd 2004 nền xanh dương chữ trắng 5v kèm i2c driver, 2023. https://www.thegioiic.com/lcd-2004-nen-xanh-duong-chu-trang-5v-kem-i2c-driver Link
[5] Thế giới IC. Mg996r Động cơ servo giảm tốc rc, 2023. https://www.thegioiic.com/mg996r-dong-co-servo-180-do-rang-kim-loai-9-4-kg-cm-4-8-7-2v Link
[6] Thế giới IC. Module 1 relay 5v kích mức cao/thấp, 2023. https://www.thegioiic.com/module-1-relay-5v-kich-muc-cao-thap Link
[7] Thế giới IC. Tay gắp Động cơ servo mg995, 2023. https://www.thegioiic.com/tay-gap-dong-co-servo-mg995 Link
[8] Abhisek Jana. Support vector machines for beginners – linear svm, 05/04/2020.https://www.adeveloperdiary.com/data-science/machine-learning/support-vector-machines-for-beginners-linear-svm/ Link
[9] Javatpoint. Support vector machine algorithm, 2023. https://www.javatpoint.com/machine-learning-support-vector-machine-algorithm Link
[11] Keyestudio. Ks0272 keyestudio analog piezoelectric ceramic vibration sen- sor, 07/01/2021. https://wiki.keyestudio.com/Ks0272_keyestudio_Analog_Piezoelectric_Ceramic_Vibration_Sensor Link
[12] Scikit learn developers. 1.4. support vector machines, 2023. https://scikit-learn.org/stable/modules/svm.html#svm-classification Link
[13] Raspberry Pi (Trading) Ltd. Raspberry pi 4 model b datasheet, 06/2019. https://datasheets.raspberrypi.com/rpi4/raspberry-pi-4-datasheet.pdf Link
[14] MMR. Toothbrush market: Global industry analysis and forecast (2023-2029), 06/2023. https://www.maximizemarketresearch.com/market-report/toothbrush-market/147872/ Link
[17] J Call Quer. Ardunio uno, 2014. https://datasheet.octopart.com/A000066-Arduino-datasheet-38879526.pdf Link
[18] Sidharth. The rbf kernel in svm: A complete guide, 12/12/2022. https://www.pycodemates.com/2022/10/the-rbf-kernel-in-svm-complete-guide.html Link
[19] Sidharth. Svm kernels: Polynomial kernel - from scratch using python, 12/12/2022.https://www.pycodemates.com/2022/10/svm-kernels-polynomial-kernel.html Link
[20] Tommy Tran. Tập tành tìm hiểu thuật toán support vector machine – svm, 28/02/2023. https://expressmagazine.net/ai-machine-learning/tap-tanh-tim-hieu-thuat-toan-support-vector-machine-svm.html Link
[21] Jerome Friedman Trevor Hastie, Robert Tibshirani. The elements of statisti- cal learning, 08/2008. https://www.sas.upenn.edu/~fdiebold/NoHesitations/BookAdvanced.pdf Link
[22] Công ty cổ phần TM DV hành tinh xanh trụ sở chính. Tác hại khi dùng bàn chải đánh răng kém chất lượng trong khách sạn, 22/12/2023. http://hanhtinhxanhhanoi.com/ Link

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

TÀI LIỆU LIÊN QUAN

w