2.4.1 Định nghĩa thuât tốn KNN
K-nearest neighbor là một trong những thuật tốn supervised-learning đơn giản nhất (mà hiệu quả trong một vài trường hợp) trong Machine Learning. Khi training, thuật tốn này khơng học một điều gì từ dữ liệu training (đây cũng là lý do thuật tốn này được xếp vào loại lazy learning), mọi tính tốn được thực hiện khi nĩ cần dự đốn kết quả của dữ liệu mới. K-nearest neighbor cĩ thể áp dụng được vào cả hai loại của bài tốn Supervised learning là Classification và Regression. KNN cịn được gọi là một thuật tốn Instance-based hay Memory-based learning.
Classifier k-Nearest Neighbors dựa trên việc học bằng sự giống nhau. Các mẫu huấn luyện được mơ tả bởi các thuộc tính số n - chiều. Mỗi mẫu đại diện cho một điểm trong một khơng gian n - chiều. Vì vậy tất cả các mẫu huấn luyện được lưu trữ trong khơng gian mẫu n - chiều. Khi cĩ một mẫu chưa biết cho trước thì classifier k- Nearest Neighbors sẽ tìm kiếm trong khơng gian mẫu k mẫu huấn luyện gần mẫu chưa biết đĩ nhất. k mẫu huấn luyện này là k "k-Nearest Neighbors " của mẫu chưa biết. "Độ gần" được định nghĩa dưới dạng khoảng cách Euclidean, tại đĩ khoảng cách Euclidean giữa hai điểm X1 = (𝑥11, 𝑥12, ..., 𝑥1n) và X2= (𝑥21, 𝑥22, ..., 𝑥2n) là:
2 1 2 1 2 1 ( , ) n i i i dist X X x x (2.9)
Mẫu chưa biết được phân vào lớp phổ biến nhất trong số k láng giềng gần nhất của nĩ. Khi k = 1 thì mẫu chưa biết được ấn định lớp của mẫu huấn luyện gần nhất với nĩ trong khơng gian mẫu.
Với KNN, trong bài tố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ếp từ 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ểm gần nhất, hoặc nĩ cĩ thể được suy ra bằng cách đánh trọng số khác nhau cho mỗi trong các điểm gần nhất đĩ rồi suy ra label. Chi tiết sẽ được nêu trong phần tiếp theo.
Trong bài tốn Regresssion, đầu ra của một điểm dữ liệu sẽ bằng chính đầu ra của điểm dữ liệu đã biết gần nhất (trong trường hợp K=1), hoặc là trung bình cĩ trọng số của đầu ra của những điểm gần nhất, hoặc bằng một mối quan hệ dựa trên khoảng cách tới các điểm gần nhất đĩ.
Một cách ngắn gọn, KNN là thuật tốn đi tìm đầu ra của mộ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ệu trong training set gần nĩ nhất (K-lân cận), khơng quan tâm đến việc cĩ một và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.
Hình 2. 8: Bản dổ của KNN nhiễu k =1
Ví dụ trên đây là bài tốn Classification với 3 class: Đỏ, Lam, Lục. Mỗi điểm dữ liệu mới (test data point) sẽ được gán label theo màu của điểm mà nĩ thuộc về. Trong hình này, cĩ một vài vùng nhỏ xem lẫn vào các vùng lớn hơn khác màu. Ví dụ cĩ một điểm màu Lục ở gần gĩc 11 giờ nằm giữa hai vùng lớn với nhiều dữ liệu màu Đỏ và Lam. Điểm này rất cĩ thể là nhiễu. Dẫn đến nếu dữ liệu test rơi vào vùng này sẽ cĩ nhiều khả năng cho kết quả khơng chính xác.
2.4.2 Mơ tả thuật tốn K-NN
Các mẫu được mơ tả bằng n – chiều thuộc tính số. Mỗi mẫu đại diện cho một điểm trong một chiều khơng gian n – chiều. Theo cách này tất cả các mẫu được lưu trữ trong một mơ hình khơng gian n – chiều.
Các bước thực hiện cảu Thuật tốn K-NN được mơ tả như sau:
- Bước 1: Xác định số láng giềng gần nhất K.
- Bước 2: Tính khoảng cách giữa đối tượng cần phân lớp với tất cả các đối tượng trong training data.
- Bước 3: Sắp xếp khoảng cách theo thứ tự tăng dần và xác định K láng giềng gần nhất với đối tượng cần phân lớp.
- Bước 5: Dựa vào phần lớn lớp của láng giềng gần nhất để xác định lớp cho đối tượng cần phân lớp.
Để hiểu K-NN được dùng để phân lớp thế nào ta xem minh họa dưới đây: Trong hình dưới đây, training Data được mơ tả bởi dấu (+) và dấu (-), đối
tượng cần được xác định lớp cho nĩ (Query point) là hình mặt cười đỏ. Nhiệm vụ của chúng ta là ước lượng (hay dự đốn) lớp của Query point dựa vào việc lựa chọn số láng giềng gần nhất với nĩ. Nĩi cách khác chúng ta muốn biết liệu Query Point sẽ được phân vào lớp (+) hay lớp (-)
Hình 2. 9: Minh họa của KNN
Ta thấy rằng:
1- Nearest neighbor : Kết quả là + (Query Point được xếp vào lớp dấu +)
2 - Nearest neighbors : khơng xác định lớp cho Query Point vì số láng giềng gần nhất với nĩ là 2 trong đĩ 1 là lớp + và 1 là lớp – (khơng cĩ lớp nào cĩ số đối tượng nhiều hơn lớp kia).vấn đề này sẽ được nĩi rõ cụ thể ở phần sau
5 - Nearest neighbors : Kết quả là – (Query Point được xếp vào lớp dấu – vì trong 5 láng giềng gần nhất với nĩ thì cĩ 3 đối tượng thuộc lớp – nhiều hơn lớp + chỉ cĩ 2 đối tượng).
2.4.3 Đặc điểm của thuật tốn KNN
Ưu điểm của KNN
- Độ phức tạp tính tốn của quá trình training là bằng 0. - Việc dự đốn kết quả của dữ liệu mới rất đơn giản. - Khơng cần giả sử gì về phân phối của các class.
Nhược điểm của KNN
- KNN rất nhạy cảm với nhiễu khi K nhỏ.
- Như đã nĩi, KNN là một thuật tốn mà mọi tính tốn đều nằm ở khâu test. Trong đĩ việc tính khoảng cách tới từng điểm dữ liệu trong training set sẽ tốn rất nhiều thời gian, đặc biệt là với các cơ sở dữ liệu cĩ số chiều lớn và cĩ nhiều điểm dữ liệu. Với K càng lớn thì độ phức tạp cũng sẽ tăng lên. Ngồi ra, việc lưu tồn bộ dữ liệu trong bộ nhớ cũng ảnh hưởng tới hiệu năng của KNN.
2.4.4 Ứng dụng thuật tốn K-NN
Trong y tế: xác định bệnh lý của người bệnh mới dựa trên dữ liệu lịch sử của các bệnh nhân cĩ cùng bệnh lý cĩ cùng các đặc điểm đã được chữa khỏi trước đây, hay xác định loại thuốc phù hợp giống ví dụ chúng tơi trình bày ở trên.
Trong lĩnh vực ngân hàng: xác định khả năng khách hàng chậm trả các khoản vay hoặc rủi ro tín dụng do nợ xấu dựa trên phân tích Credit score; xác định xem liệu các giao dịch cĩ hành vi phạm tội, lừa đảo hay khơng.
Trong giáo dục: phân loại các học sinh theo hồn cảnh, học lực để xem xem cần hỗ trợ gì cho những học sinh ví dụ như hồn cảnh sống khĩ khăn nhưng học lực lại tốt.
Trong thương mại điện tử: phân loại khách hàng theo sở thích cụ thể để hỗ trợ personalized marketing hay xây dựng hệ thống khuyến nghị, dựa trên dữ liệu từ website, social media.
Trong kinh tế nĩi chung: giúp dự báo các sự kiện kinh tế trong tương lai, dự báo tình hình thời tiết trong nơng nghiệp, xác định xu hướng thị trường chứng khốn để lên kế hoạch đầu tư thích hợp.
2.5. Một số thuật tốn phân lớp dữ liệu khác
2.5.1 Cây quyết định ứng dụng trong phân lớp dữ liệu
Trong những năm qua, nhiều mơ hình phân lớp dữ liệu đã được các nhà khoa học trong nhiều lĩnh vực khác nhau đề xuất như mạng notron, mơ hình thơng kê tuyến tính /bậc 2, cây quyết định, mơ hình di truyền. Trong số những mơ hình đĩ, cây quyết định với những ưu điểm của mình được đánh giá là một cơng cụ mạnh, phổ biến và đặc biệt thích hợp cho data mining nĩi chung và phân lớp dữ liệu nĩi riêng. Cĩ thể kể ra những ưu điểm của cây quyết định như: xây dựng tương đối nhanh; đơn giản, dễ hiểu. Hơn nữa các cây cĩ thể dễ dàng được chuyển đổi sang các câu lệnh SQL để cĩ thể được sử dụng để truy nhập cơ sở dữ liệu một cách hiệu quả. Cuối cùng, việc phân lớp dựa trên cây quyết định đạt được sự tương tự và đơi khi là chính xác hơn so với các phương pháp phân lớp khác.
2.5.2 Phân lớp với máy vector hỗ trợ (SVM)
Máy vectơ hỗ trợ (SVM - viết tắt tên tiếng Anh support vector machine) là một khái niệm trong thống kê và khoa học máy tính cho một tập hợp các phương pháp học cĩ giám sát liên quan đến nhau để phân loại và phân tích hồi quy. SVM dạng chuẩn nhận dữ liệu vào và phân loại chúng vào hai lớp khác nhau. Do đĩ SVM là một thuật tốn phân loại nhị phân. Với một bộ các ví dụ luyện tập thuộc hai thể loại cho trước, thuật tốn luyện tập SVM xây dựng một mơ hình SVM để phân loại các ví dụ khác vào hai thể loại đĩ. Một mơ hình SVM là một cách biểu diễn các điểm trong khơng gian và lựa chọn ranh giới giữa hai thể loại sao cho khoảng cách từ các ví dụ luyện tập tới ranh giới là xa nhất cĩ thể. Các ví dụ mới cũng được biểu diễn trong cùng một khơng gian và được thuật tốn dự đốn thuộc một trong hai thể loại tùy vào ví dụ đĩ nằm ở phía nào của ranh giới.
Chương 3: Ứng dụng phân lớp dữ liệu hoa Iris
3.1. Giới thiệu về hoa Iris và bài tốn phân lớp hoa Iris 3.1.1. Giới thiệu về tập dữ liệu hoa Iris 3.1.1. Giới thiệu về tập dữ liệu hoa Iris
Tập dữ liệu hoa Iris hoặc tập dữ liệu Iris của Fisher là tập dữ liệu đa biến được giới thiệu bởi nhà thống kê và nhà sinh vật học người Anh Ronald Fisher trong bài báo năm 1936 Việc sử dụng nhiều phép đo trong các vấn đề phân loại như một ví dụ về phân tích phân biệt tuyến tính. Đơi khi nĩ được gọi là tập dữ liệu Iris của Anderson vì Edgar Anderson đã thu thập dữ liệu để định lượng sự biến đổi hình thái của hoa Iris của ba lồi liên quan. Hai trong số ba lồi được thu thập ở Bán đảo Gaspé "tất cả từ cùng một đồng cỏ, và được chọn vào cùng một ngày và được đo cùng lúc bởi cùng một người với cùng một bộ máy".
Bộ dữ liệu bao gồm 50 mẫu từ mỗi ba lồi Iris (Iris setosa, Iris virginica và Iris Verscolor). Bốn đặc điểm được đo từ mỗi mẫu: chiều dài và chiều rộng của đài hoa, chiều dài và chiều rộng cánh hoa, tính bằng centimet. Dựa trên sự kết hợp của bốn tính năng này, Fisher đã phát triển một mơ hình phân biệt tuyến tính để phân biệt các lồi với nhau.
3.1.2 Sử dụng tập dữ liệu
Dựa trên mơ hình phân biệt tuyến tính của Fisher, bộ dữ liệu này đã trở thành trường hợp thử nghiệm điển hình cho nhiều kỹ thuật phân loại thống kê trong học máy như máy vector hỗ trợ.
Tuy nhiên, việc sử dụng tập dữ liệu này trong phân tích cụm khơng phổ biến, vì tập dữ liệu chỉ chứa hai cụm cĩ sự phân tách khá rõ ràng. Một trong những cụm chứa Iris setosa, trong khi cụm cịn lại chứa cả Iris virginica và Iris Versolor và khơng thể tách rời nếu khơng cĩ thơng tin về lồi mà Fisher sử dụng. Điều này làm cho dữ liệu trở thành một ví dụ tốt để giải thích sự khác biệt giữa các kỹ thuật được giám sát và khơng giám sát trong khai thác dữ liệu: Mơ hình phân biệt tuyến tính của Fisher chỉ cĩ thể thu được khi biết các lồi đối tượng: nhãn lớp và cụm khơng nhất thiết giống nhau.
Tuy nhiên, cả ba lồi Iris đều cĩ thể tách rời trong hình chiếu trên thành phần chính phân nhánh phi tuyến. Tập dữ liệu được xấp xỉ bởi cây gần nhất với một số hình phạt cho số lượng nút, uốn cong và kéo dài quá mức. Các điểm dữ liệu được chiếu vào nút gần nhất. Đối với mỗi nút, sơ đồ hình trịn của các điểm được chiếu được chuẩn bị. Diện tích của chiếc bánh tỷ lệ thuận với số lượng điểm được chiếu. Rõ ràng từ sơ đồ (bên dưới) rằng phần lớn tuyệt đối các mẫu của các lồi Iris khác nhau thuộc về các nút khác nhau. Chỉ một phần nhỏ Iris-virginica được trộn với Iris- Versolor (các nút màu xanh lam hỗn hợp trong sơ đồ). Do đĩ, ba lồi Iris (Iris setosa, Iris virginica và Iris Verscolor) cĩ thể được phân tách bằng các thủ tục khơng giám sát trong phân tích thành phần chính phi tuyến. Để phân biệt chúng, chỉ cần chọn các nút tương ứng trên cây chính.
3.1.3 Tập dữ liệu
Bộ dữ liệu chứa một bộ 150 bản ghi bao gồm các thuộc tính – chiều dài và chiều rộng của đài hoa, chiểu dài và chiều rộng của cánh hoa.
Bảng 1:Thơng tin lồi Iris-Setosa
Thứ tự Chiều dài đài hoa Chiều rộng đài hoa Chiều dài cánh hoa Chiều rộng cánh hoa 1 5.1 3.5 1.4 0.2
2 4.9 3 1.4 0.2 3 4.7 3.2 1.3 0.2 4 4.6 3.1 1.5 0.2 5 5 3.6 1.4 0.2 6 5.4 3.9 1.7 0.4 7 4.6 3.4 1.4 0.3 8 5 3.4 1.5 0.2 9 4.4 2.9 1.4 0.2 10 4.9 3.1 1.5 0.1 11 5.4 3.7 1.5 0.2 12 4.8 3.4 1.6 0.2 13 4.8 3 1.4 0.1 14 4.3 3 1.1 0.1 15 5.8 4 1.2 0.2 16 5.7 4.4 1.5 0.4 17 5.4 3.9 1.3 0.4 18 5.1 3.5 1.4 0.3 19 5.7 3.8 1.7 0.3 20 5.1 3.8 1.5 0.3 21 5.4 3.4 1.7 0.2 22 5.1 3.7 1.5 0.4 23 4.6 3.6 1 0.2 24 5.1 3.3 1.7 0.5 25 4.8 3.4 1.9 0.2 26 5 3 1.6 0.2 27 5 3.4 1.6 0.4 28 5.2 3.5 1.5 0.2 29 5.2 3.4 1.4 0.2 30 4.7 3.2 1.6 0.2 31 4.8 3.1 1.6 0.2 32 5.4 3.4 1.5 0.4 33 5.2 4.1 1.5 0.1 34 5.5 4.2 1.4 0.2 35 4.9 3.1 1.5 0.1 36 5 3.2 1.2 0.2 37 5.5 3.5 1.3 0.2 38 4.9 3.1 1.5 0.1 39 4.4 3 1.3 0.2 40 5.1 3.4 1.5 0.2 41 5 3.5 1.3 0.3 42 4.5 2.3 1.3 0.3 43 4.4 3.2 1.3 0.2 44 5 3.5 1.6 0.6
45 5.1 3.8 1.9 0.4 46 4.8 3 1.4 0.3 47 5.1 3.8 1.6 0.2 48 4.6 3.2 1.4 0.2 49 5.3 3.7 1.5 0.2 50 5 3.3 1.4 0.2
Bảng 2:Thơng tin lồi Iris-Versicolor
Thứ tự Chiều dài đài hoa Chiều rộng đài hoa Chiều dài cánh hoa Chiều rộng cánh hoa 1 7 3.2 4.7 1.4 2 6.4 3.2 4.5 1.5 3 6.9 3.1 4.9 1.5 4 5.5 2.3 4 1.3 5 6.5 2.8 4.6 1.5 6 5.7 2.8 4.5 1.3 7 6.3 3.3 4.7 1.6 8 4.9 2.4 3.3 1 9 6.6 2.9 4.6 1.3 10 5.2 2.7 3.9 1.4 11 5 2 3.5 1 12 5.9 3 4.2 1.5 13 6 2.2 4 1 14 6.1 2.9 4.7 1.4 15 5.6 2.9 3.6 1.3 16 6.7 3.1 4.4 1.4 17 5.6 3 4.5 1.5 18 5.8 2.7 4.1 1 19 6.2 2.2 4.5 1.5 20 5.6 2.5 3.9 1.1 21 5.9 3.2 4.8 1.8 22 6.1 2.8 4 1.3 23 6.3 2.5 4.9 1.5 24 6.1 2.8 4.7 1.2
25 6.4 2.9 4.3 1.3 26 6.6 3 4.4 1.4 27 6.8 2.8 4.8 1.4 28 6.7 3 5 1.7 29 6 2.9 4.5 1.5 30 5.7 2.6 3.5 1 31 5.5 2.4 3.8 1.1 32 5.5 2.4 3.7 1 33 5.8 2.7 3.9 1.2 34 6 2.7 5.1 1.6 35 5.4 3 4.5 1.5 36 6 3.4 4.5 1.6 37 6.7 3.1 4.7 1.5 38 6.3 2.3 4.4 1.3 39 5.6 3 4.1 1.3 40 5.5 2.5 4 1.3 41 5.5 2.6 4.4 1.2 42 6.1 3 4.6 1.4 43 5.8 2.6 4 1.2 44 5 2.3 3.3 1 45 5.6 2.7 4.2 1.3 46 5.7 3 4.2 1.2 47 5.7 2.9 4.2 1.3 48 6.2 2.9 4.3 1.3 49 5.1 2.5 3 1.1 50 5.7 2.8 4.1 1.3
Bảng 3: thơng tin Lồi Iris-Virginica
Thứ tự Chiều dài đài hoa Chiều rộng đài hoa Chiều dài cánh hoa Chiều rộng cánh hoa 1 6.3 3.3 6 2.5 2 5.8 2.7 5.1 1.9 3 7.1 3 5.9 2.1
4 6.3 2.9 5.6 1.8 5 6.5 3 5.8 2.2 6 7.6 3 6.6 2.1 7 4.9 2.5 4.5 1.7 8 7.3 2.9 6.3 1.8 9 6.7 2.5 5.8 1.8 10 7.2 3.6 6.1 2.5 11 6.5 3.2 5.1 2 12 6.4 2.7 5.3 1.9