Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.07 MB, 15 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
Hà Nội, tháng 9, 2022Giảng viên hướng dẫn:
Sinh viên thực hiện:
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">II. Một số nghiên cứu liên quan 61. High dimensional data (Dữ liệu đa chiều) 61.1. Tại sao dữ liệu đa chiều lại là một vấn đề? 61.2. Cách xử lý dữ liệu nhiều chiều 6a. Chọn ít thuộc tính hơn. 6b. Sử dụng phương pháp chính quy hóa. 72. Các mơ hình học máy về phân lớp hiện nay 72.1. Logistic Regression 7
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">1.4.2. Mơ hình phân lớp Naive Bayes 331.4.3. Một số kiểu mơ hình Naive Bayes 34a. Gaussian Naive Bayes 34b. Multinomial Naive Bayes 34c. Bernoulli Naive Bayes 35
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">1.5.1. Ý tưởng 371.5.2. Ưu điểm của K-nearest neighbor 371.5.3. Nhược điểm của K-nearest neighbor 382. Số đo về thống kê (statistical metrics) 38
2.2. Accuracy (độ chính xác) 41IV. Thực nghiệm và phân tích 43
2. Kết quả và thảo luận 44
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">Trong thời buổi cách mạng Công nghiệp 4.0 với sự phát triển chóng mặtcủa Cơng nghệ Trí tuệ nhân tạo (Artificial Intelligence) thì Dữ liệu là nền tảngcốt lõi của mỗi mơ hình học máy (Machine Learning) (ML). Điều đó cho thấytầm quan trọng của dữ liệu và việc xử lý (Data Processing) và khai thác dữliệu (Data Mining). Có rất nhiều loại dữ liệu khác nhau, vậy phải làm sao đểcó thể biết được với mơ hình học máy nào sẽ có thể khai thác hết tiềm năngcủa dữ liệu đó. Cụ thể trong bài báo cáo này, chúng ta sẽ cùng thảo luận vềmột loại dữ liệu khá là phổ biến, đó là dữ liệu đa chiều (High dimensionaldata) với các phương pháp phân loại (Classification Methods).
Hiện nay, các vấn đề về phân loại dữ liệu đa chiều trở nên phổ biến donhững tiến bộ vượt bậc trong công nghệ. Tính đa chiều cao đặt ra nhữngthách thức lớn về thống kê và khiến nhiều thuật toán phân loại truyền thốngkhơng đạt được kết quả tốt để có thể sử dụng. Trong bài báo cáo này, tơi sẽtrình bày tổng quan về các thuật toán học máy dùng để phân loại dữ liệu đachiều. Tôi sẽ đi lần lượt và bắt đầu với các phương pháp học máy phổ biếnnhư Support Vector Machine (SVM), Decision Tree Classifier (DT), NaiveBayes Classifier (NB), Logistic Regression (LR), K-Neighbors Classifier (KNN).Sau đó chúng ta sẽ cùng thảo luận về các phương pháp học máy phân loại gầnđây hơn như các phương pháp Ensemble Classifier (Boosting Classifier,Random Forest Classifier, Bagging Classifier, Stacking Classifier). Và cuốicùng chúng ta sẽ cùng xem kết quả để có thể chọn ra được các thuật toán tốiưu nhất với mỗi bộ dữ liệu đa chiều khác nhau.
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">High dimensional data dùng để chỉ một bộ dữ liệu trong đó số thuộctính p lớn hơn so với số lượng quan sát được N, thường được viết như p >> N.Ví dụ: một tập dữ liệu có p = 6 thuộc tính và chỉ N = 3 quan sát được sẽđược coi là dữ liệu đa chiều vì số lượng thuộc tính lớn hơn số lượng quan sát.
Một sai lầm phổ biến mà mọi người mắc phải là giả định rằng "dữ liệuđa chiều" chỉ đơn giản là một tập dữ liệu có rất nhiều thuộc tính. Tuy nhiên,điều đó khơng chính xác. Một tập dữ liệu có thể có 10.000 thuộc tính, nhưngnếu nó có 100.000 quan sát thì nó khơng phải là dữ liệu đa chiều.
Khi số lượng thuộc tính trong tập dữ liệu vượt quá số lượng quan sát,chúng ta sẽ không bao giờ có câu trả lời xác định.
Nói cách khác, khơng thể tìm thấy một mơ hình có thể mơ tả mối quanhệ giữa các biến dự đoán và biến phản hồi vì chúng ta khơng có đủ quan sátđể đào tạo mơ hình.
Có hai cách phổ biến để xử lý dữ liệu nhiều chiều:
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">Bỏ các thuộc tính có nhiều giá trị bị thiếu: Nếu một cột nhất định trongtập dữ liệu có nhiều giá trị bị thiếu, bạn có thể loại bỏ hồn tồn mà khơngmất nhiều thơng tin.
Loại bỏ các thuộc tính có phương sai thấp: Nếu một cột nhất định trongtập dữ liệu có các giá trị thay đổi rất ít, bạn có thể loại bỏ nó vì nó khơng cókhả năng cung cấp nhiều thơng tin hữu ích về biến phản hồi so với các tínhnăng khác.
Bỏ các thuộc tính có mức độ tương quan thấp với biến số phản hồi: Nếumột tính năng nhất định khơng có mối tương quan cao với biến số phản hồiđược quan tâm, bạn có thể loại bỏ nó khỏi tập dữ liệu vì nó khơng có khảnăng là một tính năng hữu ích trong một mơ hình.
b. Sử dụng phương pháp chính quy hóa.
Một cách khác để xử lý dữ liệu chiều cao mà không làm mất các tínhnăng khỏi tập dữ liệu là sử dụng kỹ thuật chính quy hóa như:
● Phân tích thành phần chính● Hồi quy các thành phần chính● Hồi quy Ridge
● Hồi quy Lasso
Mỗi kỹ thuật này có thể được sử dụng để xử lý hiệu quả dữ liệu chiềucao.
Phương pháp hồi quy logistic là một mơ hình hồi quy nhằm dự đoángiá trị đầu ra rời rạc (discrete target variable) y ứng với một vectơ đầu vào x.Việc này tương đương với chuyện phân loại các đầu vào x vào các nhóm ytương ứng.
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">b. Ví dụ
Ví dụ, xem một bức ảnh có chứa một con mèo hay khơng. Thì ở đây tacoi đầu ra y=1 nếu bức ảnh có một con mèo và y=0 nếu bức ảnh khơng có conmèo nào. Đầu vào x ở đây sẽ là các pixel một bức ảnh đầu vào.
Để đơn giản, trước tiên ta sẽ cùng đi tìm hiểu mơ hình và cách giảiquyết cho bài tốn phân loại nhị phân tức là y={0, 1}. Sau đó ta mở rộng chotrường hợp nhiều nhóm sau.
Support Vector Machine là một thuật toán giám sát, nó có thể sử dụngcho cả việc phân loại hoặc đệ quy. Tuy nhiên nó được sử dụng chủ yếu choviệc phân loại. Trong thuật toán này, chúng ta vẽ đồi thị dữ liệu là các điểmtrong n chiều (ở đây n là số lượng các tính năng bạn có) với giá trị của mỗitính năng sẽ là một phần liên kết. Sau đó chúng ta thực hiện tìm "đường bay"(hyperplane) phân chia các lớp.Hyperplane nó chỉ hiểu đơn giản là 1 đườngthẳng có thể phân chia các lớp ra thành hai phần riêng biệt.
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">Support Vectors hiểu một cách đơn giản là các đối tượng trên đồ thị tọađộ quan sát, Support Vector Machine là một biên giới để chia hai lớp tốt nhất.
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">Đường thẳng này chia cách khá tốt 2 lớp trên mặt phẳng. Tất cả nhữngđiểm dữ liệu nằm bên trái đường thẳng đều thuộc về lớp hình trịn và nhữngđiểm nằm ở bên phải thuộc về lớp hình vng. Nhiệm vụ của SVM chính làtìm ra đường thẳng / siêu phẳng phân cách cách sao cho phân loại dữ liệu tốtnhất có thể.
Tuy nhiên, cơng việc chưa dừng lại ở đó. Giả sử rằng dữ liệu của bạnkhơng ổn định và các điểm dữ liệu không phân cách nhau một cách rõ ràng,thâm chí cịn chồng chéo lên nhau. Xét ví dụ dưới đây:
Với dữ liệu như thế này, việc phân cách các lớp chỉ bằng một đườngthẳng là không khả thị. Cùng xét 2 cách phân chia dưới đây:
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">Vẫn sử dụng 1 đường thẳng phân cách nhưng không thể phân loạiđúng được tất cả các điểm dữ liệu
Các điểm dữ liệu đã được phân loại đúng nhưng phải sử dụng tới 3đường thẳng phân cách.
Cây quyết định (Decision Tree) là một cây phân cấp có cấu trúc đượcdùng để phân lớp các đối tượng dựa vào dãy các luật. Các thuộc tính của đốitượng có thể thuộc các kiểu dữ liệu khác nhau như Nhị phân (Binary), Địnhdanh (Nominal), Thứ tự (Ordinal), Số lượng (Quantitative) trong khi đó thuộctính phân lớp phải có kiểu dữ liệu là Binary hoặc Ordinal.
Tóm lại, cho dữ liệu về các đối tượng gồm các thuộc tính cùng với lớp(classes) của nó, cây quyết định sẽ sinh ra các luật để dự đoán lớp của các dữliệu chưa biết.
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">● Một node thể hiện một đặc trưng (thuộc tính, tính chất của dữ liệu)● Một nhánh mô tả một quy luật của dữ liệu
● Mỗi lá biểu diễn một kết quả phân lớp.
● Tại mỗi node, thuộc tính (đặc trưng) được chọn dùng để chia dữ liệuthành các quy luật.
Dựa vào những thơng tin trên, bạn có thể xây dựng được mơ hình nhưsau:
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">Dựa theo mơ hình trên, ta thấy:
Nếu trời nắng, độ ẩm bình thường thì khả năng các bạn đi chơi bóng sẽcao. Cịn nếu trời nắng, độ ẩm cao thì khả năng các bạn sẽ khơng đi chơi bóng.Mục đích của việc xây dựng một cây quyết định là khám phá ra một tậpluật, từ đó có thể sử dụng để dự báo giá trị đầu ra từ những biến đầu vào. Câyquyết định có hai loại: cây hồi quy ước lượng các hàm giá có giá trị là số thựcvà cây phân loại, nếu đầu ra là một biến phân loại như kết quả của một trậnđấu (thắng hay thua). Cây quyết định giúp biểu diễn dữ liệu phức tạp thànhmột cấu trúc đơn giản hơn. Cây quyết định gần như có thể giải quyết mọi bàitốn phân loại và nó giúp người dùng có thể đánh giá chính xác những thamsố (features) nào ảnh hưởng (tiêu/tích cực) đến kết quả và rất dễ sử dụng.
VD: các bài toán về đánh giá độ thích hợp của đất đai để xác định loạicây trồng, phân loại sinh viên theo điểm, …
Naive Bayes Classifier là một giải thuật thuộc lớp giải thuật thống kê,nó có thể dự đốn xác suất của một phần tử dữ liệu thuộc vào một lớp là bao
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">nhiêu. Phân lớp Bayes được dựa trên định lý Bayes (định lý được đặt theo têntác giả của nó là Thomas Bayes)
b. Ví dụ
Hãy tưởng tượng chúng ta có hai người bạn là Alice và Bob. Và ta cónhững thơng tin sau. Alice là người thường xuyên sử dụng những từnhư:”love, great, wonderful” và Bob là người thường xuyên sử dụng nhữngtừ gồm: “dog, ball wonderful”.
Vào một ngày đẹp trời nào đó, bạn đột nhiên nhận được một email ẩndanh với nội dung: “I love beach sand. Additionally the sunset at beach offerswonderful view”. Khả năng là một trong hai người là Alice và Bob gửi email.Bạn có thể đốn được là ai với thơng tin trên khơng?
Chính xác là Alice. Ta dựa theo những từ như “Love”, ” wonderful”được sử dụng.
Một trường hợp khác, ta nhận được mail với nội dung là: ” WonderfulLove. “. Bạn sẽ đốn là ai?
Đó chính là Bob. Nhưng nếu bạn khơng đốn ra được là ai, thì đừng
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">Một vài ứng dụng khác của Naive Bayes có thể kể đến như: lọc thư rác,phân loại văn bản, dự đoán sắc thái văn bản,...
K-nearest neighbor là một trong những thuật toán supervised-learningđơn giản nhất (mà hiệu quả trong một vài trường hợp) trong MachineLearning. Khi training, thuật tốn này khơng học một điều gì từ dữ liệutraining, mọi tính tốn được thực hiện khi nó cần dự đốn kết quả của dữ liệumới. K-nearest neighbor có thể áp dụng được vào cả hai loại của bài toánSupervised learning là Classification và Regression.
Với K-nearest neighbor, trong bài toán Classification, label của mộtđiểm dữ liệu mới (hay kết quả của câu hỏi trong bài thi) được suy ra trực tiếptừ K điểm dữ liệu gần nhất trong training set. Label của một test data có thểđược quyết định bằng major voting (bầu chọn theo số phiếu) giữa các điểmgần nhất, hoặc nó có thể được suy ra bằng cách đánh trọng số khác nhau chomỗi trong các điểm gần nhất đó rồi suy ra label.
Một cách ngắn gọn, K-nearest neighbor là thuật toán đi tìm đầu ra củamột điểm dữ liệu mới bằng cách chỉ dựa trên thông tin của K điểm dữ liệutrong training set gần nó nhất (K-lân cận), khơng quan tâm đến việc có mộtvài điểm dữ liệu trong những điểm gần nhất này là nhiễu. Hình dưới đây làmột ví dụ về KNN trong classification với K = 1.
</div>