2.1.1. Giới thiệu
Những tiến bộ trong công nghệ thông tin đã dẫn đến việc liên tục thu thập và tích lũy dữ liệu nhanh chóng trong các kho lƣu trữ. Khám phá tri thức trong cơ sở dữ liệu là một quá trình để xác định các mẫu hợp lệ có giá trị tiềm năng trong dữ liệu lớn. Với sự xuất hiện của các ứng dụng dữ liệu lớn, các công cụ, kỹ thuật truyền thống không còn khả năng xử lý và quản lý chúng trong thời gian có thể chấp nhận đƣợc. Khai phá lƣợng lớn dữ liệu và trích xuất thông tin hoặc kiến thức hữu ích là một trong những vấn đề thách thức nhất đối với các ứng dụng dữ liệu lớn
Do nhu cầu cấp thiết về các công cụ phân tích hiệu quả để khai phá thông tin từ những dữ liệu này, nhiều kỹ thuật đã đƣợc phát triển để khai phá tri thức trong cơ sở dữ liệu. Các kỹ thuật này bao gồm phân loại dữ liệu và quy tắc liên kết khai thác, phân tích cụm và ngoại vi cũng nhƣ các kỹ thuật làm sạch dữ liệu và chuẩn bị dữ liệu để nâng cao tính hợp lệ của dữ liệu bằng cách loại bỏ các điểm dữ liệu bất thƣờng không hợp lệ.
xuất: Một cách tiếp cận là phân phối dữ liệu giữa các máy xử lý khác nhau và thực hiện tính toán trên chúng đồng thời. Bằng cách đó, khả năng xử lý cao của hệ thống song song hoặc phân tán đƣợc sử dụng để giải quyết vấn đề xử lý các tập dữ liệu lớn. Một cách tiếp cận khác là cắt bớt dữ liệu và do đó để tăng tốc tính toán. Theo cách này, một nỗ lực đƣợc thực hiện để giảm kích thƣớc của tập dữ liệu huấn luyện, là đầu vào của thuật toán huấn luyện để có thể quản lý và xử lý bởi một máy tính duy nhất.
Một trong những phƣơng pháp khai thác dữ liệu phổ biến và hữu ích là bộ phân loại KNN. KNN phân loại từng mẫu thử nghiệm dựa trên k lân cận gần nhất của nó. Để tìm k lân cận gần nhất, nên tính khoảng cách giữa các mẫu kiểm tra và tất cả các mẫu huấn luyện. Trong trƣờng hợp dữ liệu lớn, điều này đòi hỏi một lƣợng lớn chi phí tính toán. Một số nhà nghiên cứu sử dụng các khuôn khổ phân tán, chẳng hạn nhƣ Hadoop, để tìm k mẫu huấn luyện tổng thể láng giềng gần nhất[6]. Cách tiếp cận này thƣờng dẫn đến việc tìm kiếm chính xác k láng giềng gần nhất, nhƣng với chi phí sử dụng một hệ thống phân tán lớn. Tuy nhiên, một số nhà nghiên cứu khác đề xuất tìm kiếm những ngƣời hàng xóm gần nhất trong một tập dữ liệu huấn luyện giảm.
Ví dụ, trong nghiên cứu đƣợc thực hiện bởi Deng et al. [7], thuật toán phân cụm k-mean đƣợc sử dụng để phân vùng dữ liệu thành k cụm. Cụm có trung tâm có khoảng cách tối thiểu từ mẫu thử nghiệm đƣợc chọn làm tập dữ liệu huấn luyện rút gọn phù hợp. Chất lƣợng phân loại của KNN phụ thuộc vào mức độ tìm thấy của những điểm lân cận gần nhất. Cơ hội tìm thấy chính xác k láng giềng gần nhất cũng phụ thuộc vào việc tập dữ liệu lớn đã đƣợc cắt tỉa tốt nhƣ thế nào.
2.1.2. Phát biểu bài toán
Sử dụng thuật toán KNN cho bài toán phân lớp, nhãn lớp của một mẫu thử nghiệm đƣợc xác định dựa trên k mẫu gần nhất từ tập dữ liệu huấn luyện
bằng thuật toán KNN truyền thống là không còn hiệu quả do hạn chế quá trình tính toán đê xem xét khoảng cách nhƣ đã giới thiệu cho bài toán có số lƣợng và mật độ phân bố dữ liệu phức tạp hay còn gọi là Bigdata
Để giải quyết điều này, luận văn xem xét đến mật độ phân bố và lân cận của các điểm dữ liệu nhằm mục đích chia tập dữ liệu thành các cụm trƣớc khi áp dụng thuật toán KNN, sau đó xem xét khoảng cách giữa các cụm đến điểm dữ liệu cận kiểm tra theo thuật toán KNN để giảm bớt chi phí tính toán đến tất cả các điểm dữ liệu. Bài toán điểm biên chính là bài toán xem xét đến mật độ phân bố và lân cận của các điểm dữ liệu trong quá trình phân cụm bằng thuật toán phân cụm Kmean. Sau đó chúng tôi nghiên cứu triển khai toán KNN kết hợp với bài toán điểm biên này trong SPARK để tận dụng sức mạnh xử lý song của nó.
2.2. THUẬN TOÁN KNN VÀ BÀI TOÁN ĐIỂM BIÊN CHO DỮ LIỆU LỚN LỚN
Thuật toán học máy K-láng giềng gần nhất (KNN) là một phƣơng pháp phân loại không tham số nổi tiếng. Tuy nhiên, giống nhƣ các phƣơng pháp khai thác dữ liệu truyền thống khác, việc áp dụng nó trên dữ liệu lớn đi kèm với những thách thức về tính toán. Thật vậy, KNN xác định lớp của một mẫu mới dựa trên lớp của các láng giềng gần nhất của nó; tuy nhiên, việc xác định các láng giềng trong một lƣợng lớn dữ liệu đặt ra một chi phí tính toán lớn để nó không còn đƣợc áp dụng bởi một máy tính duy nhất. Một trong những kỹ thuật đƣợc đề xuất để làm cho các phƣơng pháp phân loại có thể áp dụng trên các tập dữ liệu lớn là cắt tỉa.
Trong luận văn này, chúng tôi nghiên cứu kết hợp thuật toán KNN với bài toán điểm biên. Điểm ranh giới là các điểm dữ liệu nằm ở lề của dữ liệu đƣợc phân phối dày đặc (ví dụ: một cụm). Chúng tôi kết hợp thuật toán KNN và bài toán điểm biên cho khai phá dữ liệu lớn trong SPARK để giải quyết
vấn đề nêu ra ở các phần trƣớc. Việc áp dụng bộ phân loại KNN trên dữ liệu lớn đòi hỏi khả năng tính toán cao. Trong luận văn này, nhãn lớp của một mẫu thử nghiệm đƣợc xác định dựa trên k mẫu gần nhất từ tập dữ liệu huấn luyện sau đó chúng tôi tiến hành chạy thuật toán KNN trong SPARK để tận dụng sức mạnh xử lý song của nó.
2.2.1. Ý tƣởng của KNN
Một cách trực quan để quyết định cách phân loại mẫu kiểm tra không có nhãn là xem xét các điểm dữ liệu huấn luyện gần đó và thực hiện phân loại theo các lớp của các điểm dữ liệu đƣợc gắn nhãn gần đó. Trực giác này đƣợc chính thức hóa trong một cách tiếp cận phân loại đƣợc gọi là phân loại K-láng giềng gần nhất (KNN). Phân loại láng giềng gần nhất có cơ sở rất đơn giản: Để phân loại một mẫu kiểm tra, tìm mẫu trong tập huấn luyện gần nhất và gán mẫu kiểm tra vào cùng một lớp với mẫu huấn luyện đã chọn. Nếu tình cờ có một mẫu giống hệt nhau trong tập huấn luyện thì việc gán mẫu kiểm tra cho cùng một lớp là rất hợp lý. Nếu không, lớp của mẫu trong tập huấn luyện giống nhất với mẫu thử nghiệm là dự đoán tốt nhất. Chúng ta thƣờng sử dụng thƣớc đo khoảng cách (ví dụ: khoảng cách Euclide) để xác định độ tƣơng đồng. Nếu chúng ta có một biểu diễn mà thƣớc đo khoảng cách là một thƣớc đo tƣơng đồng hợp lý, thì phƣơng pháp láng giềng gần nhất sẽ hoạt động tốt.
2.2.2. Thuật toán phân lớp KNN
Đầu tiên chúng ta hãy bắt đầu bằng cách thiết lập một số định nghĩa và ký hiệu. Chúng ta sẽ sử dụng x để biểu thị một đặc trƣng và y để biểu thị mục tiêu còn gọi là nhãn, lớp mà chúng ta đang cố gắng dự đoán.
KNN thuộc họ thuật toán học có giám sát. Một cách không chính thức, điều này có nghĩa là chúng ta đƣợc cung cấp một tập dữ liệu đƣợc gắn nhãn gồm các quan sát huấn luyện (x, y) và muốn nắm bắt mối quan hệ giữa x và y. Chính thức hơn, mục tiêu của chúng ta là tìm hiểu một hàm h: X → Y sao cho
một quan sát chƣa thấy đƣợc x, h (x) có thể tự tin dự đoán đầu ra y tƣơng ứng. Thay vì chỉ sử dụng một điểm gần nhất duy nhất, cách tiếp cận K-láng giềng gần nhất xem xét các điểm K trong tập huấn luyện gần nhất với điểm kiểm tra; điểm kiểm tra đƣợc phân loại theo lớp mà phần lớn những ngƣời láng giềng gần K nhất thuộc về.
Chúng ta có thể viết chính xác thuật toán K-lân cận gần nhất nhƣ sau, trong đó X là tập dữ liệu huấn luyện với các nhãn lớp sao cho X = {(x, c)}, Z
là tập kiểm tra, có C lớp khả dĩ và r là chỉ số khoảng cách (thƣờng là khoảng cách Euclide):
- Đối với mỗi điểm dữ liệu kiểm tra zZ:
- Tính khoảng cách r(z,x) giữa z và mỗi ví dụ huấn luyện (x, c)X
- Chọn Uk(z) X, tập k điểm dữ liệu huấn luyện gần nhất với z - Quyết định lớp của z theo đa số biểu quyết
2.2.3. Điểm biên bà ứng dụng trong xử lý dữ liệu lớn 2.2.3.1. Định nghĩa điểm biên 2.2.3.1. Định nghĩa điểm biên
Điểm biên của một tập hợp X trong một không gian tô pô là điểm x mà trong mọi lân cận của nó vừa có điểm thuộc tập hợp X, vừa có điểm không thuộc tập hợp X.
Đối với dữ liệu lớn, khi số lƣợng và mật độ phân bố của các điểm là lớn và dạy đặc. Các điểm dữ liệu gọi là điểm biên "ngụ ý" là các điểm dữ liệu gần với các điểm biên thuần túy bị cắt bớt bởi đƣờng biên.
2.2.3.2. Ứng dụng điểm biên trong xử lý dữ liệu lớn
Để xử lý xử liệu lớn, trong phần này chúng tôi tập trung xem xét trƣờng hợp ƣớc lƣợng mật độ, lân cận của các điểm dữ liệu cho thuật toán KNN. Bởi vì các điểm biên dữ liệu thuần túy trong các bộ dữ liệu lớn xác định ranh giới, điều này nghĩa là các điểm biên đƣợc ngụ ý nhƣ đã trình bày ở trên phải có một hoặc nhiều điểm biên thuần túy trong số KNN của chúng. Điểm ranh giới
là các điểm dữ liệu nằm ở lề của (hoặc cụm) dữ liệu đƣợc phân phối dày đặc. Các điểm ranh giới rất hữu ích trong các ứng dụng khai thác dữ liệu lớn vì chúng đại diện cho một tập hợp con của tập hợp có thể nằm giữa hai hoặc nhiều lớp.
Hình 2.1. Ví dụ về điểm ranh giới là các điểm dữ liệu nằm ở lề của (hoặc cụm) dữ liệu đƣợc phân phối dày đặc.
Ví dụ: Tập hợp các điểm này có thể biểu thị một tập con dân số lẽ ra đã mắc bệnh Covid19, nhƣng bằng cách nào đó lại không. Sự chú ý đặc biệt chắc chắn đƣợc đảm bảo cho nhóm ngƣời này vì họ có thể tiết lộ một số đặc điểm thú vị của bệnh.
Kiến thức về những điểm này cũng hữu ích cho các nhiệm vụ khai thác dữ liệu nhƣ phân loại vì những điểm này có thể bị phân loại sai. K-bộ phân loại láng giềng gần nhất đƣa ra quyết định của họ trên cơ sở thông tin cục bộ. Thay vì cố gắng vẽ ranh giới quyết định trên toàn bộ không gian nhƣ trong Hình 2.2
Hình 2.2. Không thể vẽ một đƣờng thẳng để phân tách các lớp trong không gian đặc trƣng này một cách hoàn hảo. Ba dòng có thể đƣợc vẽ, nhƣng mỗi dòng dẫn đến một
số phân loại sai.
2.2.3.3. Thuật toán KNN và bài toán điểm biên cho dữ liệu lớn
Thuật toán K-láng giềng gần nhất đƣa ra quyết định dựa trên một vài điểm cục bộ. Do đó, chúng có thể khá dễ bị nhiễu, đặc biệt nếu K nhỏ: Một sự thay đổi nhỏ về vị trí của điểm kiểm tra có thể dẫn đến sự phân loại khác vì một điểm mới từ tập dữ liệu huấn luyện trở thành láng giềng gần nhất. Khi K trở nên lớn hơn, ranh giới quyết định phân loại trở nên mƣợt mà hơn vì một số điểm huấn luyện góp phần vào quyết định phân loại.
Các ranh giới quyết định trông nhƣ thế nào đối với phân loại láng giềng gần nhất? Hãy xem xét một trƣờng hợp đặc biệt của phân loại láng giềng gần nhất trong đó mỗi điểm dữ liệu huấn luyện thuộc về một lớp khác biệt với các điểm khác. Trong trƣờng hợp đó, mỗi điểm dữ liệu huấn luyện xác định một vùng xung quanh nó; điểm kiểm tra trong khu vực này sẽ đƣợc xếp cùng hạng với điểm dữ liệu huấn luyện. Các vùng này đƣợc minh họa cho một trƣờng hợp đơn giản trong Hình 2.3, trong đó ranh giới của các vùng đƣợc thể hiện dƣới dạng các đƣờng chấm. Nhƣ bạn có thể hiểu bây giờ, mỗi ranh giới đƣợc
cho là đƣờng phân giác vuông góc của đoạn thẳng giữa hai điểm dữ liệu tƣơng ứng. Sự phân vùng này đƣợc hình thành bởi một tập hợp các điểm dữ liệu đôi khi đƣợc gọi là sơ đồ Voronoi
Hình 2.3. Quyết định ranh giới theo 1-NN cho các điểm dữ liệu của các lớp khác biệt với nhau
Bây giờ, chúng ta giả định rằng mỗi điểm dữ liệu thuộc về một trong hai lớp, chẳng hạn, các lớp đƣợc hiển thị màu đỏ hoặc xanh lam nhƣ thể hiện trong Hình 2.4.
Hình 2.4. Các vùng lân cận gần nhất cho tập dữ liệu huấn luyện gồm hai lớp, trong đó các mẫu huấn luyện của một lớp đƣợc hiển thị với dấu ‘*’ màu đỏ, các vùng của lớp
Để có đƣợc ranh giới quyết định, chúng tôi kết hợp các ranh giới đó giữa các vùng của các lớp khác nhau, nhƣ đƣợc minh họa trong Hình 2.5.
Hình 2.5. Ranh giới quyết định và các vùng quyết định cho bộ phân 1-NN cho hai lớp.
Ranh giới kết quả đƣợc coi là tuyến tính từng mảnh. Hình 2.6 và 2.7 cho thấy trƣờng hợp của ba lớp.
Hình 2.7. Ranh giới quyết định và các vùng quyết định cho bộ phân loại hàng xóm 1- NN cho ba lớp.
2.3. THUẬT TOÁN KNN KẾT HỢP BÀI TOÁN ĐIỂM BIÊN CHO DỮ LIỆU LỚN LIỆU LỚN
Nhƣ đã trình bày ở các phần trƣớc, KNN xác định lớp của một mẫu mới dựa trên lớp của các láng giềng gần nhất của nó; tuy nhiên, việc xác định các láng giềng trong một lƣợng lớn dữ liệu đặt ra một chi phí tính toán lớn để nó không còn đƣợc áp dụng bởi một máy tính duy nhất.
2.3.1. Thuật toán KNN cho dữ liệu lớn
K láng giềng gần nhất (kNN) là một thuật toán lƣời học hiệu quả và đã đƣợc phát triển thành công trong các ứng dụng thực tế. Việc chia tỷ lệ phƣơng pháp KNN trƣớc đó thành bộ dữ liệu quy mô lớn là rất tự nhiên. Khi khối lƣợng và kích thƣớc của dữ liệu tăng lên, thì chỉ có các phƣơng pháp tiếp cận phân tán mới có thể thực hiện các hoạt động lớn trong một thời gian nhất định. Các công trình gần đây đã đƣợc thực hiện về việc thực hiện các giải pháp hiệu quả bằng cách sử dụng mô hình lập trình giảm bản đồ vì nó đƣợc sử dụng để phân phối xử lý dữ liệu quy mô lớn. Mặc dù các công trình này cung cấp các giải pháp khác nhau cho cùng một vấn đề, nhƣng mỗi công trình đều có những ràng buộc và tính chất cụ thể. Trong luận văn này, chúng tôi kết
hợp thuật toán KNN với bài toán điểm biên để tiến hành phân cụm k-means để tách toàn bộ tập dữ liệu thành nhiều phần, mỗi phần sau đó đƣợc tiến hành phân loại kNN.
2.3.2. Kết hợp KNN và bài toán điểm biên cho dữ liệu lớn
Khi lƣợng dữ liệu trở nên rất lớn và không có đủ sức mạnh tính toán để xử lý nó trong thời gian có thể chấp nhận đƣợc, một giải pháp khả thi là đƣa ra quyết định dựa trên một phần nhỏ hơn của dữ liệu [8–10]. Trong nghiên cứu đƣợc thực hiện bởi Deng et al. [7], thuật toán phân cụm K-mean đƣợc sử dụng để tách tập dữ liệu huấn luyện lớn thành các cụm khác nhau; sau đó, thuật toán KNN đƣợc sử dụng để phân loại từng trƣờng hợp thử nghiệm dựa trên k lân cận gần nhất trong cụm dữ liệu gần nhất. Cụm có tâm có khoảng cách Euclide tối thiểu từ mẫu thử là cụm gần nhất.
Hình 2.8. Tính không hiệu quả của thƣớc đo khoảng cách đến trung tâm của cụm