Trong thời đại phát triển như vũ bão ngày nay, ngành công nghệ thông tin nắm giữ vai trò vô cùng quan trọng khó có thể thay thế. Những sản phẩm công nghệ liên tục được ứng dụng rộng rãi trong sản xuất, đồng thời lượng thông tin mới, phức tạp và các tập dữ liệu nghiệp vụ ngày một tích trữ nhiều lên. Chính vì vậy, nhu cầu mới nảy sinh là cần tìm cách trích rút dữ liệu để lấy thông tin cần có với tốc độ nhanh nhất để đưa ra dự đoán cũng như quyết định dựa trên lượng dữ liệu khổng lồ thu thập được. Những phương pháp quản trị và khai thác dữ liệu truyền thống đã không thể đáp ứng được nhu cầu ngày một tăng của khách hàng, vì thế những kỹ thuật nghiệp vụ thông minh sẽ được tạo ra nhằm phục vụ cho nghiên cứu cũng như thực tiễn. Công nghệ phân lớp ra đời chính là để phục vụ đáp ứng nhu cầu đó. Công nghệ phân lớp đã và đang được nghiên cứu, ứng dụng mạnh mẽ trước sự khát khao tri thức của con người trong nhiều lĩnh vực khác nhau trên thế giới như thương mại, marketing, nghiên cứu xu hướng thị trường, y tế, giáo dục. Cho đến nay, kĩ thuật phân lớp cho dữ liệu đã có mặt trong nhiều chương trình nghiên cứu khác nhau như khai phá dữ liệu, học máy, thống kê... Kĩ thuật này đang không ngừng được tìm tòi cũng như phát triển để có thể phân lớp hoặc dự đoán thông tin một cách nhanh và chính xác nhất.Bài toán càng cấp thiết hơn đối với những lĩnh vực cần độ chính xác, những bài toán phục vụ cho việc nghiên cứu , đánh giá ảnh hưởng trực tiếp tới đời sống con người
XÁC ĐỊNH VÀ PHÂN TÍCH BÀI TOÁN
Tổng quan về bài toán phân lớp
Phân lớp dữ liệu, hay còn gọi là Classification, là một trong những nghiên cứu chính của khai phá dữ liệu, đáp ứng nhu cầu trích rút thông tin từ cơ sở dữ liệu lớn Kỹ thuật này nhằm gán nhãn lớp cho các đối tượng dữ liệu chưa có nhãn, có thể áp dụng cho cả dữ liệu liên tục và rời rạc Trong lĩnh vực tài chính ngân hàng, phân lớp được sử dụng để phát hiện giao dịch tài chính bất thường và phân loại khách hàng có nợ xấu Ngoài ra, phương pháp này còn được ứng dụng rộng rãi trong quảng cáo, chăm sóc khách hàng, giáo dục, và đặc biệt là trong y tế và dược học.
Dự đoán là quá trình xây dựng mô hình từ dữ liệu lịch sử để ước lượng các giá trị mới Phương pháp này thường sử dụng hồi quy để xác định mối quan hệ giữa các biến, từ đó dự đoán giá trị phụ thuộc dựa trên các biến độc lập Dự đoán có ứng dụng rộng rãi trong đời sống, như dự đoán doanh số bán hàng, thời tiết và chu kỳ sản xuất.
Quá trình phân lớp dữ liệu gồm hai bước :
➢ Bước thứ nhất ( huấn luyện)
Quá trình học hay huấn luyện nhằm xây dựng mô hình từ các tập dữ liệu đã được tiền xử lý và gán nhãn Đầu vào của quá trình này là các mẫu hay case trong bộ dữ liệu, mỗi phần tử thuộc về một lớp đã được quy định, tức là có nhãn Kết quả của quá trình thường là các quy tắc phân lớp dưới dạng luật if-then, công thức logic, cây quyết định hoặc mạng.
Hình 1: Quá trình phân lớp dữ liệu –(a) Bước xây dựng mô hình
Bước thứ hai trong quá trình phân lớp dữ liệu là sử dụng mô hình đã được xây dựng ở bước 1 để phân loại dữ liệu mới Đầu vào của bài toán này bao gồm dữ liệu cần được phân lớp, còn được gọi là dữ liệu đầu vào.
Sau khi hoàn thành bước thu thập dữ liệu và phân lớp bằng bộ phân lớp, mô hình sẽ cung cấp kết quả phân lớp Bước tiếp theo là đánh giá và cải tiến mô hình, một phần quan trọng trong quá trình phát triển máy học và học sâu Việc này đảm bảo rằng mô hình không chỉ hoạt động hiệu quả trên dữ liệu huấn luyện mà còn có khả năng tổng quát hóa với dữ liệu mới Thông thường, các thước đo hiệu suất được sử dụng để đánh giá mô hình, với nhiều độ đo có thể áp dụng.
- Độ chính xác (Accuracy): Phần trăm mẫu dự đoán đúng trên tổng số mẫu
- F1-score: Sự kết hợp giữa độ chính xác và độ nhạy, thường được sử dụng khi mất cân bằng giữa các lớp
Recall (độ nhạy) là một chỉ số quan trọng trong đánh giá hiệu suất của các mô hình phân loại, đặc biệt khi mục tiêu là tối đa hóa việc nhận diện dữ liệu thuộc một lớp cụ thể Nó được định nghĩa là tỷ lệ giữa số lượng dự đoán chính xác của lớp tích cực và tổng số mẫu thực tế thuộc lớp này.
Chúng ta có thể sử dụng các phương pháp và tiêu chí khác nhau để đánh giá mô hình Dưới đây là quy trình phân lớp mô hình.
Hình 2:Quá trình phân lớp dữ liệu –(b1) Ước lượng độ chính xác của mô hình
Hình 3: Quá trình phân lớp dữ liệu – (b2) Phân lớp dữ liệu mới
Trong mô hình phân lớp, thuật toán phân lớp là yếu tố quyết định sự thành công của toàn bộ hệ thống Chìa khóa để phân lớp dữ liệu hiệu quả là tìm kiếm một thuật toán nhanh, chính xác và có khả năng mở rộng Đặc biệt, khả năng mở rộng của thuật toán được chú trọng phát triển Một số thuật toán có thể áp dụng trong quá trình phân lớp bao gồm
➢ Phân lớp cây quyết định
➢ Mô hình phân lớp K láng giềng(KNN)
Bài toán phân loại bào ngư
Bào ngư, một loại động vật thân mềm thuộc họ Haliotidae, nổi tiếng với giá trị dinh dưỡng cao và được ưa chuộng trong ẩm thực Chúng thường sống bám trên đá ở vùng biển miền Trung Việt Nam và là nguyên liệu chính trong nhiều món ăn bổ dưỡng như súp và cháo bào ngư Ngoài giá trị ẩm thực, vỏ bào ngư còn được sử dụng trong y học để điều chế thuốc hỗ trợ gan và mắt, đồng thời có tác dụng ngăn ngừa ung thư, giảm nguy cơ mắc bệnh tim mạch, điều hòa tuyến giáp và duy trì sức khỏe xương Với những lợi ích này, bào ngư không chỉ mang lại giá trị dinh dưỡng mà còn có giá trị kinh tế cao.
Nghiên cứu đặc tính và thói quen sinh hoạt của bào ngư đóng vai trò quan trọng trong khoa học, giúp các nhà khoa học đánh giá sự thay đổi trong hệ sinh thái Qua đó, nghiên cứu này hỗ trợ việc nhân giống, lai tạo và nuôi cấy bào ngư ngoài tự nhiên Hơn nữa, việc tìm hiểu hoạt động sinh sản của bào ngư cũng mang lại ý nghĩa đặc biệt đối với hoạt động sinh sản của con người.
Trong những năm gần đây, bài toán phân lớp trên bào ngư được áp dụng rộng rãi để xác định tuổi của chúng, giúp trả lời các câu hỏi về sự thay đổi cân nặng theo độ tuổi và giới tính Việc ước tính tuổi bào ngư qua các đặc điểm vật lý cũng đang được nghiên cứu Thông thường, tuổi của bào ngư được xác định bằng cách cắt vỏ, nhuộm màu và đếm vòng qua kính hiển vi Tuy nhiên, bài viết này sẽ trình bày một phương pháp mới - sử dụng các phép đo vật lý để xác định tuổi bào ngư.
Nhóm nghiên cứu lựa chọn thuật toán "cây quyết định" vì nó dễ hiểu và trực quan Mô hình cây quyết định có thể được giải thích ngắn gọn, giúp người dùng dễ dàng nắm bắt Thuật toán này được áp dụng để xác định một số mục tiêu mong muốn trong nghiên cứu.
➢ Nghiên cứu và đánh giá một cách khái quát nhất về cây quyết định
➢ Thiết kế các chiến lược tăng cường dữ liệu để ngăn chặn việc overfitting
➢ Điều chỉnh và cải tiến mô hình để có độ hiệu quả cao nhất
➢ So sánh được mức độ hiệu quả so với những thuật toán, mô hình khác
1.2.2 Các khó khăn thách thức của bài toán
Bài toán phân loại bào ngư là một thách thức cơ bản trong học máy, với mục tiêu xây dựng mô hình phân loại hiệu quả nhất Mặc dù đây là một bài toán kinh điển, nhưng nó vẫn chứa đựng nhiều thách thức đáng kể đối với nhóm nghiên cứu.
Một trong những thách thức lớn nhất trong quá trình nghiên cứu là vấn đề dữ liệu, bao gồm việc lựa chọn thuộc tính phù hợp cho mô hình và đảm bảo độ chính xác của dữ liệu Việc loại bỏ các vấn đề về “đột biến” chỉ là bước đầu, vì vẫn còn nhiều thuộc tính cần xem xét Độ chính xác trong quá trình xác định thuộc tính thông qua các phương pháp như cắt vỏ qua hình nón và đếm vòng qua kính hiển vi là rất quan trọng Hơn nữa, sự hiện diện của “dị tật” trong bộ dữ liệu và kích thước của nó ảnh hưởng đến hiệu quả của thuật toán Khi dữ liệu mất cân đối, cây quyết định có thể thiên lệch và hiệu suất trên lớp thiểu số sẽ kém Cây quyết định cũng gặp khó khăn trong việc xử lý các biến liên tục, dẫn đến việc mô hình hóa không chính xác Việc đánh giá và cải tiến mô hình là một thách thức lớn, vì mỗi thuật toán có ưu nhược điểm riêng, và không phải lúc nào cũng đạt được kết quả mong muốn Cuối cùng, cây quyết định dễ bị quá mức phức tạp trên dữ liệu huấn luyện, đặc biệt khi chúng được xây dựng quá chi tiết và "nhớ" các điểm dữ liệu.
Bài toán phân lớp dữ liệu vẫn đang đối mặt với nhiều thách thức cho các nhà nghiên cứu, từ việc thu thập và xử lý dữ liệu, lựa chọn mô hình, đến quá trình huấn luyện và đánh giá mô hình Những vấn đề này không hề đơn giản, nhưng hy vọng rằng với sự phát triển không ngừng của công nghệ, các thách thức này sẽ được giải quyết trong tương lai.
1.2.3 Đầu vào đầu ra của bài toán
- Tập huấn luyện : Đây là một bộ data gồm những thuộc tính như : sex , length , diameter, height, whole weight , Shucked weight , Shell weight, …
Tập dữ liệu test là bộ dữ liệu được sử dụng để kiểm tra mô hình, bao gồm các thuộc tính tương tự như tập huấn luyện Tuy nhiên, điểm khác biệt là nó không có thuộc tính "phân lớp" hoặc thuộc tính phân lớp có thể bị lờ đi.
- Dữ liệu đã được phân lớp : Đây chính là kết quả của quá trình phân lớp, dữ liệu sẽ được phân loại và gán nhãn
- Bộ phân lớp : Chúng ta có thể vẽ và trực quan hóa cây quyết định dưới dạng hình ảnh Từ đó có cái nhìn trực quan nhất nhất
Các chỉ số đánh giá mô hình đóng vai trò quan trọng trong việc xác định hiệu quả của mô hình Những chỉ số này thường bao gồm recall, accuracy và prediction, giúp người dùng hiểu rõ hơn về hiệu suất của mô hình.
1.2.4 Ứng dụng của bài toán
Sau khi nghiên cứu và phát triển được bài toán, nhóm nghiên cứu mong muốn :
Để đạt được độ chính xác tối ưu trong việc phân loại bào ngư, điều quan trọng nhất là khả năng phân loại một cách chính xác và hiệu quả nhất.
Hiệu suất trong thời gian thực là yếu tố quan trọng, với kỳ vọng rằng sau khi thành công, thuật toán sẽ được phát triển để hoạt động hiệu quả trong môi trường thực tế, đồng thời tích hợp mượt mà vào các hệ thống khác.
Ứng dụng và mở rộng đa ngành của bài toán này hy vọng sẽ hỗ trợ ngư dân và các nhà khoa học trong việc phân loại bào ngư một cách chính xác và hiệu quả.
Quản lý tài nguyên đánh bắt hiệu quả thông qua việc phân loại bảo ngư dựa trên dữ liệu thu thập từ các tàu đánh bắt cá Điều này hỗ trợ ngành đánh cá trong việc điều chỉnh quy mô khai thác và bảo vệ các loài cá cần được bảo tồn.
Ngành công nghiệp thủy sản có thể nâng cao chất lượng và đồng đều hóa sản phẩm thông qua việc phân loại bảo ngư Điều này không chỉ giúp theo dõi chất lượng sản phẩm mà còn xác định loại bảo ngư phù hợp cho các mục đích thị trường khác nhau.
MỘT SỐ KỸ THUẬT HIỆN CÓ ĐỂ GIẢI QUYẾT BÀI TOÁN
KNN(K-Nearest Neighbour)
KNN (K-Nearest Neighbors) là một trong những thuật toán học có giám sát đơn giản nhất, thường được áp dụng trong khai phá dữ liệu và học máy Thuật toán này không thực hiện quá trình học từ tập dữ liệu mà chỉ thực hiện tính toán khi cần dự đoán nhãn cho dữ liệu mới, do đó được xếp vào loại lazy learning KNN có thể được sử dụng cho cả bài toán phân loại (Classification) và hồi quy (Regression) Đối với bài toán Classification, nhãn của một điểm dữ liệu mới được xác định từ K điểm dữ liệu gần nhất trong tập huấn luyện thông qua phương pháp bầu chọn theo số phiếu hoặc bằng cách áp dụng trọng số cho từng điểm gần nhất.
Các bước của thuật toán KNN:
D là tập hợp các điểm dữ liệu đã được gán nhãn, trong khi A là dữ liệu chưa được phân loại Để phân loại dữ liệu mới A, ta đo khoảng cách (theo các phương pháp Euclidian, Manhattan, Cosin hoặc Trọng số) từ A đến tất cả các điểm dữ liệu đã được phân loại trong D.
D = 1 – cos ∅ (cos ∅: độ đo Cosin) cos ∅ = 𝑎 ⃗⃗⃗ 𝑏 ⃗
Chọn K (K là tham số mà bạn định nghĩa) khoảng cách nhỏ nhất
Kiểm tra danh sách các lớp có khoảng cách ngắn nhất và đếm số lượng của mỗi lớp xuất hiện
Lấy đúng lớp (lớp xuất hiện nhiều lần nhất)
Lớp của dữ liệu mới là lớp mà bạn đã nhận được ở bước 5
Giả sử ta có tập dữ liệu D có gắn nhãn gồm 15 điểm như trên ảnh
1 Điểm cần dự đoán nhãn A(3,9)
2 Ta tính khoảng cách từ điểm A đến các điểm dữ liệu trong D bằng công thức Euclidian
3 Ta chọn K= 5, và tìm ra 5 điểm có khoảng cách gần với điểm A nhất
4 Trong 5 điểm ta thấy có 4 điểm mang nhãn (+) và 1 điểm mang nhãn (-)
5 Vậy ta có thể đưa ra kết luận là điểm A cần dự đoán mang nhãn (+)
Hình 5: Các nhãn sau khi phân loại
Giá trị k trong thuật toán k-NN xác định số lượng điểm lân cận cần quan sát để phân loại điểm đang xem xét Khi k = 1, điểm được xét sẽ nhận nhãn giống với điểm gần nhất trong tập huấn luyện.
Lựa chọn giá trị k thường phụ thuộc vào dữ liệu, với k lớn giúp giảm nhiễu trong phân lớp nhưng làm ranh giới giữa các lớp trở nên mờ nhạt Để xác định k tối ưu, có thể sử dụng các phương pháp heuristic như GridSearchCV hoặc RandomizeSearchCV trong Scikit-learn, cho phép kiểm tra nhiều giá trị k khác nhau Bên cạnh đó, việc áp dụng cross-validation cũng là một cách hiệu quả để lọc ra giá trị k phù hợp.
Thông thường, khi ta làm việc với bài toán phân lớp nhị phân, ta nên để k lẻ để tránh trường hợp hoà
2.1.2 Ưu điểm Độ phức tạp tính toán của quá trình training là bằng 0 KNN không yêu cầu quá nhiều trong quá trình huấn luyện, không cần tạo ra một mô hình đoán trước Việc dự đoán kết quả của dữ liệu mới rất đơn giản Với các bộ dữ liệu lớn, KNN có thể đưa ra dự đoán dựa vào sự tương đồng của các đặc điểm dữ liệu Không cần giả sử gì về phân phối của các class KNN có thể áp dụng cho cả dữ liệu phi tuyến tính và dữ liệu có phân phối không chuẩn
Bằng cách điều chỉnh giá trị của k (số lân cận), bạn có thể kiểm soát độ phức tạp của mô hình Khi k nhỏ, mô hình sẽ phức tạp hơn và có nguy cơ cao bị overfitting Ngược lại, nếu k lớn, mô hình trở nên đơn giản hơn và dễ gặp tình trạng underfitting.
K-NN có thể gặp khó khăn khi xử lý dữ liệu nhiễu và ngoại lệ, dẫn đến những dự đoán không chính xác Sự nhạy cảm của thuật toán này đối với dữ liệu không chuẩn có thể ảnh hưởng tiêu cực đến hiệu suất của nó.
Cần lựa chọn K phù hợp, nếu quá to thì mô hình sẽ nhạy còn quá nhỏ thì mô hình bị đơn giản hóa.
Naive Bayes
Naive Bayes Classification (NBC) là một thuật toán dựa trên định lý Bayes trong lý thuyết xác suất, giúp phân loại dữ liệu và đưa ra phán đoán dựa trên các dữ liệu quan sát và thống kê NBC được ứng dụng rộng rãi trong lĩnh vực Machine Learning nhờ vào khả năng đưa ra dự đoán chính xác từ tập dữ liệu đã thu thập, với ưu điểm là dễ hiểu và độ chính xác cao Thuật toán này thuộc nhóm Supervised Machine Learning Algorithms, cho phép máy học từ các ví dụ có sẵn trong mẫu dữ liệu.
Công thức chỉ ra xác suất của A xảy ra nếu B cũng xảy ra, ta viết là P(A|B) và ngược lại:
P(A|B): xác suất của A khi biết B
P(A): xác suất xảy ra của A
P(B|A): xác suất của B khi biết A
P(B): xác suất xảy ra của B
Ví dụ: Cho cơ sở dữ liệu khách hàng
Hình 6: Cơ sở dữ liệu khách hàng
Giả sử ta có một khách hàng mới X có các thuộc tính
Để xác định xem khách hàng X (tuổi trẻ, thu nhập trung bình, là sinh viên, và có xếp hạng tín dụng khá) có thuộc lớp Cyes (mua máy tính) hay không, ta tiến hành các bước tính toán cần thiết.
Xác suất của các thành phần:
Các xác suất kết luận:
Từ kết quả này ta thấy P(X |Cyes)P(Cyes) có giá trị lớn nhất, do đó thuật toán Bayes sẽ kết luận là khách hàng X sẽ mua máy tính
Naive Bayes là một thuật toán dễ sử dụng cho việc dự đoán nhanh dữ liệu từ tệp test, yêu cầu ít tham số và không tiêu tốn nhiều tài nguyên tính toán Khi các đặc điểm độc lập với nhau, Naive Bayes hoạt động hiệu quả hơn so với các thuật toán khác.
Có tính linh hoạt khá cao, thường được sử dụng trong các ứng dụng thực tế như phân loại văn bản, lọc thư rác
Khó xử lý khi gặp dữ liệu chứa thông tin mới
Trong thực tiễn, các đặc điểm thường không thể tách rời, dễ bị tác động bởi dữ liệu liên tục và các biến không quan trọng.
Thuật toán Naive Bayes có thể dễ dàng mất cân bằng trong việc xử lý dữ liệu khi gặp phải tình huống có một lượng lớn dữ liệu thuộc một lớp và rất ít dữ liệu thuộc lớp khác Trong trường hợp này, Naive Bayes thường ưu tiên xử lý lượng lớn dữ liệu hơn, dẫn đến khả năng phân loại không chính xác cho lớp ít dữ liệu.
SVM(Support Vector Machine)
SVM, hay Support Vector Machine, là một phương pháp phân lớp dữ liệu dựa trên lý thuyết thống kê với nền tảng toán học vững chắc, đảm bảo tính chính xác của kết quả Đây là thuật toán học có giám sát (Supervised Learning) mạnh mẽ, đặc biệt hiệu quả trong việc giải quyết các bài toán phân lớp phi tuyến tính Phương pháp này được phát triển bởi các tác giả Vapnik và Chervonenkis, đóng góp quan trọng vào lĩnh vực học máy.
Vào năm 1995, phương pháp phân lớp giám sát không tham số SRM (Structural Risk Minimization) đã được phát triển dựa trên nguyên lý tối thiểu hóa rủi ro Đây được coi là một trong những phương pháp tinh vi nhất trong lĩnh vực này hiện nay.
SVM là một bài toán tối ưu nhằm tìm không gian F và siêu phẳng f trên F với sai số phân loại tối thiểu Có hai loại bài toán phân loại SVM: phân loại hai lớp và phân loại nhiều lớp.
Bài toán phân hai lớp
Bài toán yêu cầu xác định hàm phân lớp cho các mẫu dữ liệu, tức là phân loại mỗi mẫu vào lớp +1 hoặc -1 Để thực hiện điều này bằng phương pháp SVM, chúng ta cần tìm hai siêu phẳng song song, sao cho khoảng cách giữa chúng là lớn nhất, nhằm phân tách hai lớp dữ liệu Hàm phân tách tương ứng với phương trình của siêu phẳng nằm giữa hai siêu phẳng đã xác định.
Hình 7: Hai siêu phẳng song song
Các điểm nằm trên hai siêu phẳng phân tách được gọi là các Support Vector Các điểm này sẽ quyết định đến hàm phân tách dữ liệu
Bài toán phân nhiều lớp Để có thể phân nhiều lớp thì kỹ thuật SVM sẽ chia không gian dữ liệu thành
2 phần và lặp đi lặp lại quá trình này Khi đó hàm quyết định phân loại dữ liệu vào lớp i của tập n là:
Những phần tử x là Support Vector sẽ thỏa mãn điều kiện:
Từ đó bài toán phân loại nhiều lớp hoàn toàn có thể thực hiện như phân loại hai lớp bằng cách sử dụng chiến lược “một – đối – một”
Hiệu suất tốt trong không gian đa chiều, đặc biệt là khi số chiều dữ liệu lớn hơn số mẫu
SVM có thể sử dụng các hàm kernel để chuyển đổi không gian đặc trưng giúp nó có thể giải quyết các vấn đề phi tuyến tính
Thuật toán SVM có thể đưa ra kết quả tốt cho bộ dữ liệu mới, điều này cho thấy tính tổng quát hóa của SVM là rất cao
2.3.3 Nhược điểm Đòi hỏi tài nguyên tính toán lớn, việc tính toán kernel hay tìm kiếm tập hỗ trợ vector đều cần một lượng tài nguyên lớn
SVM khá nhạy cảm với nhiễu nên cần đặt đúng tỷ lệ giữa các lớp và tham số
Không thể trực tiếp xử lý bài toán phân nhiều lớp mà cần chuyển về hai lớp.
Cây quyết định
Cây quyết định (decision tree) là một công cụ trực quan và dễ hiểu để mô tả dữ liệu, bao gồm các nút và nhánh Nút lá ở dưới cùng đại diện cho các giá trị nhãn lớp, trong khi các nút con là thuộc tính của tập dữ liệu, khác với thuộc tính phân lớp Mỗi nhánh của cây bắt nguồn từ một nút p, phản ánh một phép so sánh dựa trên miền giá trị của nút đó, với nút gốc là nút đầu tiên của cây.
Hình 8: Bảng dữ liệu ví dụ
Từ bảng dữ liệu trên ta xây dựng được cây quyết định sau:
Hình 9: Sơ đồ cây quyết định
Cây quyết định trong ví dụ trên được giải thích với các nút lá chứa giá trị thuộc tính phân lớp "Play" Nút gốc, tương ứng với thuộc tính "Outlook", cùng các nút con đại diện cho các thuộc tính khác Mỗi nhánh của cây thể hiện một phép so sánh, như so sánh bằng, khác, lớn hơn hoặc nhỏ hơn, với kết quả là giá trị logic (Đúng hoặc Sai) dựa trên thuộc tính của nút Đặc biệt, thuộc tính "thu nhập" không được đưa vào cây, được coi là thuộc tính dư thừa vì không ảnh hưởng đến quá trình xây dựng mô hình.
Các thuộc tính trong quá trình phân lớp thông thường có thể chia thành hai loại: giá trị liên tục (kiểu số) và giá trị rời rạc (kiểu dữ liệu phân loại) Ví dụ, dữ liệu lương được biểu diễn bằng số thực thuộc loại giá trị liên tục, trong khi dữ liệu giới tính là kiểu dữ liệu rời rạc, có thể dễ dàng phân loại thành các nhóm khác nhau.
• Bắt đầu từ nút đơn biểu diễn tất cả các mẫu
• Nếu các mẫu thuộc về cùng một lớp, nút trở thành nút lá và được gán nhãn bằng lớp đó
• Ngược lại, dùng độ đo thuộc tính để chọn thuộc tính sẽ phân tách tốt nhất các mẫu vào các lớp Decision Tree 6
• Một nhánh được tạo cho từng giá trị của thuộc tính được chọn và các mẫu đƣợc phân hoạch theo
• Dùng đệ quy cùng một quá trình để tạo cây quyết định
• Tiến trình kết thúc chỉ khi bất kỳ điều kiện nào sau đây là đúng
- Tất cả các mẫu cho một nút cho trước đều thuộc về cùng một lớp
- Không còn thuộc tính nào mà mẫu có thể dựa vào để phân hoạch xa hơn
Không còn mẫu nào cho nhánh test_attribute = ai Nếu không chọn được thuộc tính phân lớp hợp lý tại mỗi nút, chúng ta sẽ tạo ra một cây phân loại rất phức tạp, như minh họa trong ví dụ dưới đây.
Hình 10: Cách xây dựng cây quyết định
Vấn đề quan trọng là lựa chọn thuộc tính phân lớp tối ưu Trong phần tiếp theo, chúng tôi sẽ trình bày các tiêu chuẩn để xác định thuộc tính phân lớp tốt nhất tại mỗi nút.
2.4.3 Các thuật toán của cây quyết định
ID3, do J R Quinlan phát triển vào năm 1993, áp dụng phương pháp tham lam để tìm kiếm từ trên xuống trong không gian các nhánh mà không cần quay lại Thuật toán này sử dụng Entropy và Information Gain để xây dựng cây quyết định hiệu quả.
Để đánh giá độ thành công của một bộ phim dựa trên một yếu tố duy nhất, bạn có thể xem xét hai khía cạnh chính: diễn viên chính và thể loại phim.
Theo sơ đồ, phương pháp đầu tiên cho phép phân loại rõ ràng, trong khi phương pháp thứ hai dẫn đến kết quả lộn xộn hơn Tương tự, cây quyết định cũng sẽ hoạt động như vậy khi chọn các biến.
Phương pháp cây quyết định sử dụng nhiều hệ số khác nhau để phân chia dữ liệu Trong số đó, hai hệ số phổ biến nhất là Information Gain và Gain Ratio, bên cạnh đó còn có hệ số Gini.
Entropy trong Cây quyết định (Decision Tree):
Entropy là khái niệm trong Nhiệt động lực học, dùng để đo lường sự biến đổi, hỗn loạn và ngẫu nhiên Năm 1948, Claude Shannon đã mở rộng khái niệm này vào lĩnh vực nghiên cứu thống kê, phát triển một công thức mới để áp dụng trong phân tích thông tin.
Với 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 x1,x2,…,xn
Giả sử rằng xác suất để x nhận các giá trị này là pi=p(x=xi)
Ký hiệu phân phối này là p=(p1 ,p2 ,…,pn) Entropy của phân phối này được định nghĩa là:
Giả sử bạn tung một đồng xu, entropy sẽ được tính như sau:
Hình vẽ minh họa sự biến đổi của hàm entropy, cho thấy entropy đạt giá trị tối đa khi xác suất xuất hiện của hai lớp bằng nhau.
P tinh khiết: pi = 0 hoặc pi = 1
P vẩn đục: pi = 0.5, khi đó hàm Entropy đạt đỉnh cao nhất
Information Gain trong Cây quyết định (Decision Tree)
Information Gain là một chỉ số quan trọng trong việc xây dựng cây quyết định, được tính dựa trên sự giảm của hàm Entropy khi tập dữ liệu được phân chia theo thuộc tính Để tạo ra một cây quyết định hiệu quả, cần xác định thuộc tính nào mang lại Information Gain cao nhất Việc này giúp xác định các nút trong mô hình cây quyết định một cách chính xác.
Infomation Gain tại mỗi nút theo trình tự sau:
Bước 1: Tính toán hệ số Entropy của biến mục tiêu S có N phần tử với Nc phần tử thuộc lớp c cho trước:
Bước 2: Tính toán hàm số Entropy cho từng thuộc tính Đối với thuộc tính x, tập dữ liệu S được phân chia thành K child node S1, S2, …, SK, với số lượng điểm dữ liệu trong mỗi child node lần lượt là m1, m2, …, mK.
Bước 3: Chỉ số Gain Information được tính bằng:
Với ví dụ 2 trên, ta tính được hệ số Entropy như sau:
Hệ số Entropy theo phương pháp chia thứ nhất:
Ta có thể tính hệ số Information Gain như sau:
Hệ số Entropy với phương pháp chia thứ hai như sau:
So sánh kết quả giữa hai phương pháp, chúng ta nhận thấy rằng phương pháp 1 mang lại giá trị hệ số Information Gain lớn gấp 4 lần so với phương pháp 2, cho thấy lượng thông tin thu được từ phương pháp 1 cũng vượt trội hơn hẳn phương pháp 2.
Thuật toán C4.5 là thuật toán cải tiến của ID3
Trong thuật toán ID3, độ đo Information Gain được sử dụng, nhưng nó có xu hướng ưu tiên các thuộc tính với nhiều giá trị, bỏ qua những thuộc tính có giá trị ít hơn Để khắc phục nhược điểm này, thuật toán C4.5 áp dụng độ đo Gain Ratio bằng cách chuẩn hoá information gain với trị thông tin phân tách (split information).
Trong đó: Split Info được tính như sau:
PHÂN LOẠI BÀO NGƯ SỬ DỤNG THUẬT TOÁN CÂY QUYẾT ĐỊNH
Thu thập và xử lý dữ liệu
Dữ liệu về bào ngư, hay còn gọi là "abalon" trong tiếng Anh, là một bộ dữ liệu phổ biến, thường được áp dụng trong các nghiên cứu khai phá và phân tích dữ liệu.
Bộ dữ liệu được sử dụng trong báo cáo này được thu thập từ Kaggle, do “Phòng thí nghiệm nghiên cứu biển – Taroona” thuộc sở Công nghiệp và Thủy sản Tasmania thực hiện vào tháng 12 năm 1995 Bộ dữ liệu này gồm 4,177 bản ghi với 8 thuộc tính chính, bao gồm: Giới tính, Chiều dài, Đường kính, Chiều cao, Tổng trọng lượng, Trọng lượng sau khi bóc vỏ, Trọng lượng nội tạng và Trọng lượng vỏ.
Thông tin về bộ data:
Hình 13: Thông tin bộ dữ liệu
Bộ dữ liệu này bao gồm 9 cột, trong đó 8 cột là thuộc tính và 1 cột dùng để phân lớp Nhóm nghiên cứu sẽ chia dữ liệu thành 2 tập chính: tập "train" chiếm 80% tổng số dữ liệu với đầy đủ 9 cột, và tập "test" chiếm 20% còn lại, chủ yếu tập trung vào 8 cột đầu, trong khi cột "Ring" có thể được bỏ qua trong quá trình kiểm tra mô hình.
Chúng ta có thể có cái nhìn trực quan nhất về bộ dữ liệu trên bằng cách xem các biểu đồ sau :
Hình 14: Biểu đồ đo sự tập trung của dữ liệu
Chúng em đã tạo bảng thống kê mô tả bộ dữ liệu, cung cấp cái nhìn tổng quan về phân bố kích thước và số vòng của mẫu hàu nghiên cứu Bảng thống kê này rất hữu ích cho việc hiểu rõ dữ liệu trước khi tiến hành phân tích chi tiết hơn.
Hình 15: Bảng thống kê mô tả
Các số liệu này cung cấp cái nhìn tổng quan về phân bố và sự biến thiên của dữ liệu, từ đó hỗ trợ người phân tích đưa ra quyết định đúng đắn về các phương pháp phân tích thống kê tiếp theo.
3.1.2 Tiền xử lý dữ liệu
Nhóm nghiên cứu đã thu thập được bộ dữ liệu gần như không cần tiền xử lý do không có dữ liệu khuyết Thuật toán “Cây quyết định” thường không yêu cầu tiền xử lý dữ liệu như một số mô hình học máy khác Tuy nhiên, việc tiền xử lý có thể cải thiện hiệu suất của thuật toán, giúp tránh tình trạng thiếu thông tin ở một số nút, dẫn đến phân lớp không chính xác Đầu tiên, chúng ta có thể kiểm tra và xử lý dữ liệu bị khuyết Đối với dữ liệu khuyết, có thể lựa chọn xóa bỏ hoặc điền giá trị khuyết bằng các phương pháp như trung bình hoặc trung vị Nếu chọn cách xóa bỏ dữ liệu khuyết, chúng ta có thể thực hiện theo các bước cụ thể.
Hình 16: Xóa dữ liệu bị khuyết
Sau khi chạy chúng ta có thể thu được kết quả như sau:
Hình 17: Kết quả xóa dữ liệu khuyết
Trong bộ dữ liệu hiện tại, không có giá trị khuyết, và mọi phần tử đều cho kết quả là 4177 Tuy nhiên, với các bộ dữ liệu nhỏ và ít bản ghi, việc xóa giá trị khuyết không khả thi Do đó, phương pháp xử lý cần được điều chỉnh bằng cách điền giá trị khuyết vào dữ liệu.
Hình 18: Điền khuyết dữ liệu
Chuẩn hóa dữ liệu là một bước quan trọng bên cạnh việc xử lý dữ liệu khuyết Việc chuẩn hóa giúp đồng đều hóa các đặc trưng và giảm thiểu sự chênh lệch độ lớn giữa chúng, từ đó giúp các thuật toán học máy hội tụ nhanh hơn và giảm thời gian huấn luyện Hơn nữa, khi các đặc trưng được đo bằng các đơn vị khác nhau, việc so sánh giữa chúng trở nên khó khăn Chuẩn hóa dữ liệu giúp đồng nhất các đơn vị đo lường, làm cho việc so sánh và phân tích trở nên hiệu quả hơn.
Hình 19: Chuẩn hóa dữ liệu bằng MinMaxScaler
Sau khi hoàn thành quá trình chuẩn hóa dữ liệu, chúng ta có được một bộ dữ liệu mới với các giá trị đã được chuẩn hóa về cùng một độ đo Phương pháp chuẩn hóa được áp dụng là Min-Max Normalization, giúp chuyển đổi miền dữ liệu của các thuộc tính về khoảng [0,1] Để thực hiện phương pháp này, dữ liệu cần phải là kiểu số và liên tục.
Kết quả đạt được sau khi chuẩn hóa :
Hình 20: Dữ liệu sau khi chuẩn hóa
Huấn luyện mô hình và đánh giá
3.2.1 Xây dựng cây quyết định Decision Tree Classifier
Cây quyết định (Decision Tree) là một cấu trúc phân cấp dùng để phân loại đối tượng dựa trên các quy tắc Các thuộc tính của đối tượng có thể thuộc nhiều kiểu dữ liệu khác nhau như Nhị phân, Định danh, Thứ tự và Số lượng, trong khi thuộc tính phân lớp phải là Binary hoặc Ordinal Thuật toán ID3, phát triển bởi J R Quinlan vào năm 1993, hoạt động theo phương pháp tham lam, tìm kiếm từ trên xuống mà không cần quay lui ID3 sử dụng Entropy và Information Gain để xây dựng cây quyết định hiệu quả.
Hình 21: Xây dựng mô hình cây quyết định
Trong bài toán phân loại bào ngư, dữ liệu được chia thành hai phần: 80% cho tập huấn luyện và 20% cho tập kiểm tra Mô hình cây quyết định được khởi tạo bằng hàm DecisionTreeClassifier() và được huấn luyện thông qua clf = clf.fit(X_train, y_train) Cuối cùng, kết quả dự đoán được đưa ra bằng y_pred = clf.predict(X_test).
Hình 22: Kết quả của Decision Tree Classifier
Ngoài ra, chúng em sử dụng plot_tree hay pydotplus để có thể vẽ cây quyết định
Hình 23: Vẽ cây quyết định bằng Pydotplus
Hình 24: Vẽ cây quyết định sử dụng Plot_tree
Từ kết quả thu được, chúng ta có thể đưa ra một số đánh giá về mô hình như sau:
Mô hình dự đoán hiện tại có độ chính xác thấp, chỉ đạt 0.21, cho thấy tỷ lệ dự đoán đúng chỉ khoảng 21% Đây là một điểm cần được cải thiện để nâng cao hiệu quả của mô hình.
➢ Độ nhạy (Recall) thấp, chỉ đạt 0.23 Điều này cho thấy mô hình không tốt trong việc dự đoán các mẫu dương tính
➢ Độ đo (Precision) rất thấp, chỉ 0.126 Điều này cho thấy trong số các dự đoán dương tính, tỷ lệ dự đoán đúng rất thấp
➢ F1 score thấp, chỉ đạt 0.479 Điều này cho thấy sự cân bằng giữa độ chính xác và độ nhạy kém
Nhìn chung, với kết quả thu được chúng ta phải cải tiến lại mô hình để mô hình có độ chính xác cao hơn
3.2.2 Cải tiến mô hình Để cải thiện hiệu suất của mô hình Decision Tree, có một số siêu tham số chính có thể điều chỉnh:
Max_depth là một yếu tố quan trọng trong việc điều chỉnh độ phức tạp của mô hình cây quyết định Tăng giá trị max_depth có thể dẫn đến việc mô hình trở nên phức tạp hơn và dễ bị overfitting, trong khi giảm max_depth sẽ giúp đơn giản hóa mô hình và giảm nguy cơ overfitting Việc thử nghiệm với các giá trị max_depth khác nhau là cần thiết để xác định giá trị tối ưu cho mô hình.
➢ Min_samples_split: số lượng mẫu tối thiểu cần thiết để chia nhánh
Tăng giá trị này sẽ làm mô hình ít phức tạp hơn
➢ Min_samples_leaf: số lượng mẫu tối thiểu trên mỗi lá Tăng giá trị này cũng làm giảm độ phức tạp của mô hình
➢ Criterion: thước đo để chọn điểm chia nhánh tốt nhất, thường dùng entropy hoặc gini Có thể thử đổi qua lại giữa hai thước đo này
Để tối ưu hóa mô hình, các siêu tham số như max_features và min_weight_fraction_leaf cần được điều chỉnh Việc thử nghiệm với nhiều giá trị khác nhau sẽ giúp tìm ra tổ hợp siêu tham số tốt nhất.
Hình 25: Cải tiến mô hình Decision Tree Classifier
Mô hình đang được điều chỉnh để giảm độ sâu của cây, giúp đơn giản hóa cấu trúc và hạn chế tình trạng overfitting Bên cạnh đó, chúng tôi cũng đang cài đặt số mẫu tối thiểu trên mỗi lá, điều này không chỉ làm mô hình trở nên đơn giản hơn mà còn nâng cao độ chính xác.
Hình 26: Kết quả của mô hình sau khi được cải tiến
Dựa vào kết quả này chúng ta có thể đưa ra một số nhận xét như sau:
• Độ chính xác (Accuracy) tăng từ 0.2129 lên 0.2822, tốt hơn
• Độ nhạy (Recall) giảm từ 0.2294 xuống 0.1582, kém hơn
• Độ đo (Precision) tăng đáng kể từ 0.126 lên 0.6632, tốt hơn
• F1 score giảm nhẹ từ 0.4793 xuống 0.1860
Sau khi cải thiện, mô hình mới cho thấy độ chính xác và độ đo cao hơn, nhưng độ nhạy lại giảm Tùy vào mục tiêu cụ thể, có thể điều chỉnh siêu tham số để nâng cao độ nhạy, hoặc chấp nhận hy sinh độ nhạy để đạt được độ chính xác và độ đo tốt hơn Hiện tại, việc sử dụng Decision Tree Classifier trong bài toán chưa mang lại kết quả khả quan, do đó chúng tôi sẽ nghiên cứu mô hình Random Forest, được coi là cải tiến hơn.
3.2.3 Xây dựng và đánh giá mô hình RandomForest Regressor
Random Forest is a machine learning model that belongs to the Ensemble Learning family, designed to combine multiple Decision Trees to create a robust and stable model Introduced by Leo Breiman and Adele Cutler in 2001, it has become one of the most popular methods in the field of machine learning.
Dưới đây là một số đặc điểm và lợi ích quan trọng của RandomForest:
➢ Kết hợp nhiều Decision Trees:
RandomForest là một thuật toán học máy mạnh mẽ, tạo ra một "rừng" các cây quyết định Mỗi cây trong rừng này được huấn luyện dựa trên một tập dữ liệu con được chọn ngẫu nhiên từ tập dữ liệu huấn luyện thông qua phương pháp bootstrap sampling.
• Sự kết hợp giữa nhiều cây giúp giảm nguy cơ overfitting, tăng tính ổn định và chính xác của mô hình
RandomForest áp dụng phương pháp "bootstrap sampling" để tạo ra các tập dữ liệu con khác nhau cho từng cây, từ đó tạo ra sự đa dạng giữa các cây Điều này giúp mô hình tổng hợp thông tin một cách hiệu quả từ dữ liệu.
Khi xây dựng mỗi cây quyết định, chỉ một số lượng ngẫu nhiên các thuộc tính được xem xét tại mỗi nút Điều này không chỉ giúp giảm thiểu sự chệch mà còn làm cho mỗi cây trở nên độc lập hơn.
• RandomForest thường cho ra dự đoán ổn định trên dữ liệu mới và có khả năng làm việc tốt trên cả dữ liệu có nhiễu và không có nhiễu
➢ Độ chính xác cao và ổn định:
• Với sự kết hợp từ nhiều cây, RandomForest thường có độ chính xác cao và giảm rủi ro do các biến ngẫu nhiên
➢ Phân tích tính quan trọng của thuộc tính:
RandomForest cung cấp thông tin chi tiết về tầm quan trọng của từng thuộc tính trong dự đoán, giúp người dùng hiểu rõ hơn về ảnh hưởng của các biến đối với kết quả.
Chúng ta có áp vào bài toán này như sau :
Unlike the Decision Tree Classifier, the Random Forest model does not rely on metrics such as Recall, Accuracy, or Prediction Instead, it utilizes performance measures like R² score, Mean Squared Error, and Mean Absolute Error After running the model, we obtained the results for its performance.
Hình 28: Kết quả của mô hình Random Forest
➢ Mean Absolute Error (MAE) là 1.571, tương đối thấp, cho thấy mô hình dự đoán khá chính xác, sai số trung bình khoảng 1.5 đơn vị
➢ Mean Squared Error (MSE) là 5.003, cũng tương đối thấp MSE cao hơn MAE là điều bình thường do MSE tính bình phương sai số
Hệ số R-squared đạt 0.537 cho thấy mô hình có khả năng giải thích 53.7% sự biến thiên của biến đầu ra Mặc dù đây là mức trung bình khá, nhưng vẫn còn cơ hội để cải thiện hiệu suất của mô hình.
Mô hình này có tiềm năng tích cực, nhưng giống như Decision Tree Classifier, chúng ta có thể tối ưu hóa nó bằng cách điều chỉnh một số tham số khác để nâng cao hiệu suất.
Cải tiến mô hình RandomForestRegressor