Việc xây dựng và ứng dụng nền tảng Big Data nếu được khai thác hiệuquả sẽ đem lại những lợi thế cạnh tranh và hiệu quả to lớn trong nhiều lĩnh vực,đặc biệt trong bối cảnh thị trường dịch
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
HOÀNG ANH DŨNG
PHÂN TÍCH HÀNH VI SỬ DỤNG DỊCH VỤ VIỄN
THÔNG CỦA KHÁCH HÀNG DỰA TRÊN THUẬT TOÁN PHÂN CỤM ĐƯA RA CHÍNH SÁCH KHUYẾN MẠI VỀ SẢN PHẨM VÀ THEO PHÂN KHÚC KHÁCH HÀNG
Ngành: Công Nghệ Thông Tin
Chuyên ngành: Khoa Học Máy Tính
Mã Số: 8480101.01
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
TS NGUYỄN ĐÌNH HÓA
Hà nội – 2020
Trang 2LỜI CẢM ƠN
Trước tiên tôi xin dành lời cảm ơn chân thành và sâu sắc đến thầy giáo,
TS Trần Trúc Mai, người đã định hướng về mục tiêu và cách thức thực hiện
đề tài TS Nguyễn Đình Hóa – người đã hướng dẫn, khuyến khích, chỉ bảo vàtạo cho tôi những điều kiện tốt nhất từ khi bắt đầu cho tới khi hoàn thànhnhiệm vụ và đề tài của mình
Tôi xin dành lời cảm ơn chân thành tới các thầy cô giáo khoa Côngnghệ thông tin, trường Đại học Công nghệ, ĐHQGHN đã tận tình đào tạo,cung cấp cho tôi những kiến thức vô cùng quý giá và đã tạo điều kiện tốt nhấtcho tôi trong suốt quá trình học tập, nghiên cứu tại trường
Đồng thời tôi xin cảm ơn tất cả những người thân yêu trong gia đình tôicùng toàn thể bạn bè những người đã luôn giúp đỡ, động viên tôi những khivấp phải những khó khăn, bế tắc
Cuối cùng, tôi xin chân thành cảm ơn các đồng nghiệp của tôi tạiTrung Tâm Phân Tích Dữ Liệu – Viettel, đã giúp đỡ, tạo điều kiện thuận lợicho tôi học tập và nghiên cứu chương trình thạc sĩ tại Đại học Công nghệ, Đạihọc Quốc Gia Hà Nội
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan rằng luận văn thạc sĩ công nghệ thông tin “PHÂN TÍCH HÀNH VI SỬ DỤNG DỊCH VỤ VIỄN THÔNG CỦA KHÁCH HÀNG DỰA TRÊN THUẬT TOÁN PHÂN CỤM ĐƯA RA CHÍNH SÁCH KHUYẾN MẠI VỀ SẢN PHẨM VÀ THEO PHÂN KHÚC
KHÁCH HÀNG” là công trình nghiên cứu của riêng tôi, không sao chép lạicủa người khác Trong toàn bộ nội dung của luận văn, những điều đã được trình bày hoặc là của chính cá nhân tôi hoặc là được tổng hợp từ nhiều nguồn tài liệu Tất cả các nguồn tài liệu tham khảo đều có xuất xứ rõ ràng và hợp pháp
Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy định cho lời cam đoan này
Hà Nội, ngày … tháng … năm …
…
Trang 4Mục Lục
LỜI CẢM ƠN 2
LỜI CAM ĐOAN 3
Chương 1: Giới thiệu 7
Chương 2: Công cụ, nền tảng, thuật toán sử dụng và ứng dụng Phân tích dữ liệu 9
2.1 Các công cụ nền tảng 9
2.1.1 Big Data 9
2.1.2 Giới thiệu về Hadoop 13
2.1.3 Các ứng dụng trên nền tảng Apache Hadoop 14
2.1.4 HDFS 16
2.1.5 Đọc ghi dữ liệu trên HDFS 17
2.1.6 Map-Reduce 19
2.1.7 SPARK, nền tảng công cụ và ứng dụng 20
2.2 Giới thiệu về học máy 26
2.2.1 Một số khái niệm cơ bản 27
2.2.2 Các vấn đề trong quá trình thực hiện đề tài 30
Chương 3: Spark và giải thuật rừng ngẫu nhiên song song (Parallel Random Forest -PRF) 32
3.1 Thuật toán rừng ngẫu nhiên 33
3.2 Giải thuật xử lý song song rừng ngẫu nhiên cho dữ liệu lớn trong nền tảng Spark
36
3.2.1 Tối ưu hóa xử lý dữ liệu đồng thời 37
3.2.2 Tối ưu hóa xử lý tiến trình đồng thời 44
3.2.3 Phân tích phương pháp xử lý task đồng thời 49
3.3 Kmeans, tối ưu hóa xử lý Kmeans với Spark 52
Chương 4: Triển khai thực nghiệm 57
4.1 Cơ sở dữ liệu Khách hàng 360 độ 57
4.2 Mô hình ứng dụng 60
4.2.1 Quá trình Phân cụm dữ liệu huấn luyện: 63
4.2.2 Lựa chọn ngẫu nhiên các thuộc tính và đánh giá: 67
4.2.3 Thực hiện huấn luyện dữ liệu với mô hình Parallel RandomForest 67
4.3 Đánh giá hiệu suất: 73
4.3.1 Đánh giá thời gian xử lý với nhóm dữ liệu 73
4.3.2 Đánh giá thời gian xử lý với từng cụm 73
4.4 Đánh giá hiệu quả thực tế: 74
KẾT LUẬN VÀ ĐỊNH HƯỚNG NGHIÊN CỨU TIẾP THEO 77
TÀI LIỆU THAM KHẢO 80
Trang 5DANH MỤC HÌNH VẼ
Hình 2.1 Kiến trúc HDFS 16
Hình 2.2 Luồng đọc dữ liệu trên HDFS 18
Hình 2.3 Luồng ghi dữ liệu trên HDFS 18
Hình 2.4 Mô hình Map-Reduce 19
Hình 2.5 Cơ chế Map-Reduce 20
Hình 2.6 thành phần của Spark 22
Hình 2.7 Cơ chế hoạt động của Spark 23
Hình 2.8 Cơ chế hoạt động của Spark và RDD 25
Hình 2.9 Zeppelin và phương thức hoạt động 26
Hình 2.10 Mô hình học có giám sát 28
Hình 2.11 Mô hình học bán giám sát 30
Hình 3.1 Đồ thị vòng DAG được hình thành khi xử lý dữ liệu song song trên Spark UI 32
Hình 3.2 Quá trình xây dựng thuật toán rừng ngẫu nhiên RandomForest 34
Hình 3.3 Quá trình phân chia dữ liệu theo chiều dọc của các RDDs trong Spark 38
Hình 3.4 Quá trình xử lý ghép dữ liệu đồng thời của PRF 40
Hình 3.5 Ví dụ về 3 kịch bản khi phân chia dữ liệu 42
Hình 3.6 Ví dụ của task DAG cho một cây quyết định của PRF 46
Hình 3.7 Hình dạng cụm dữ liệu được khám phá bởi k-means 53
Hình 3.8 Thuật toán Kmeans trong Spark 54
Hình 4.1 Quá trình kết hợp K-Means và RandomForest 60
Hình 4.2 Tỷ lệ độ đo theo ROC của các tập train, test và validation 69
Hình 4.3 Important Feataures v1 70
Hình 4.4 ROC - Receiver operating characteristic 71
Hình 4.5 Cumulative Gain 71
Hình 4.6 Tỷ lệ độ chính xác trung bình của các mô hình cây khác 72
Hình 4.7 Phương pháp đo lường kết quả trong thực tế 74
Hình 4.8 So sánh tỷ lệ triển khai thực tế TG và MHO 75
Hình 4.9 So sánh tỷ lệ triển khai thực tế MHO và HO 76
Trang 6DANH MỤC BẢNG
Bảng 3-1: Ví dụ về DSI của PRF 40
Bảng 4-1: Danh mục thuộc tính đánh giá xây dựng C360 59
Bảng 4-2: Danh mục thuộc tính được sử dụng 63
Bảng 4-3: Giá trị DaviesBouldin 64
Bảng 4-4: Kết quả phân cụm 64
Bảng 4-5: Phân nhóm khách hàng trên 40 tuổi và dưới 40 tuổi 66
Bảng 4-6: So sánh tỷ lệ Accuracy giữa Precision, Recall 69
Bảng 4-7: So sánh thời gian chạy giữa KNN và PRF 70
Trang 7Chương 1: Giới thiệu
Trong thời đại ngày nay, để phát triển một doanh nghiệp, ngoài vốn vànhân lực, “dữ liệu” (data) được coi là nguồn lực không thể thiếu được Aicũng đã từng ngạc nhiên nhận thấy khi mua sắm trực tuyến trên các trangthương mại điện tử như eBay, Amazon, Sendo hay Tiki, các trang thương mạiđiện tử sẽ gợi ý một loạt các sản phẩm có liên quan và phù hợp với nhu cầucủa bạn Ví dụ khi xem điện thoại, trang mua sắm trực tuyến sẽ gợi ý cho bạnmua thêm ốp lưng, pin dự phòng; hoặc khi mua áo thun thì sẽ có thêm gợi ýquần jean và thắt lưng…
Bí ẩn đằng sau các trang web thông minh này là mọi sự chào mời sảnphẩm đều dựa trên các nghiên cứu về sở thích, thói quen của khách hàng cũngnhư phân loại được các nhóm khách hàng khác nhau Vậy những thông tin
để phân tích này có được từ đâu và có tác động thế nào đến việc sản xuất kinhdoanh của doanh nghiệp? Thứ nhất, dữ liệu khổng lồ về khách hàng có thể có
từ các thông tin mà các doanh nghiệp thu thập trong lúc khách hàng ghéthăm, tương tác hay mua sắm trên website của mình; dữ liệu này cũng có thểđược mua lại từ các công ty chuyên cung cấp dữ liệu khách hàng Các thôngtin này không chỉ giúp nhà cung ứng hàng hóa, dịch vụ tăng lợi nhuận chochính họ mà còn tăng trải nghiệm mua sắm của người dùng Một mặt, nhờquá trình tìm hiểu, phân tích khách hàng, doanh nghiệp có thể tạo ra các sảnphẩm đáp ứng nhu cầu của khách hàng, cũng như xây dựng chính sách phânphối và bán sản phẩm đến tay người tiêu dùng một cách có hiệu quả nhất.Mặt khác, bản thân người tiêu dùng có thể tiết kiệm thời gian và yên tâmtrong trải nghiệm mua sắm của mình Hơn thế nữa, ở tầm ngành và vĩ mô,ứng dụng dữ liệu lớn (Big Data) có thể giúp các tổ chức và chính phủ dựđoán được tỉ lệ thất nghiệp, xu hướng nghề nghiệp của tương lai để đầu tưcho những hạng mục đó, hoặc cắt giảm chi tiêu, kích thích tăng trưởng kinhtế thậm chí là ra phương án phòng ngừa trước một dịch bệnh nào đó
Việc xây dựng và ứng dụng nền tảng Big Data nếu được khai thác hiệuquả sẽ đem lại những lợi thế cạnh tranh và hiệu quả to lớn trong nhiều lĩnh vực,đặc biệt trong bối cảnh thị trường dịch vụ tài chính đang bão hòa, trên cơ sở đóphân tích những ứng dụng của Big Data và các điều kiện nhằm ứng dụng BigData cùng với phân tích dữ liệu để sử dụng nguồn tài nguyên hợp lý và tối đahóa doanh thu cũng như đưa các mục tiêu kinh doanh gắn liền với hành vi
Trang 8khách hàng, nhằm mang lại cho doanh nghiệp phương án kinh doanh hiệuquả nhất.
Việc sử dụng và khai thác dữ liệu lớn như một nguồn tài nguyên tương
tự như dầu khí, hay các nguồn tài nguyên khác là phương án để đưa doanhnghiệp tiếp cận đến người dùng một cách hiệu quả nhất, kết hợp với mục tiêukinh doanh để hoàn thiện hơn các chính sách, tối đa hóa lợi ích cho ngườidùng và tăng trưởng doanh thu bền vững cho doanh nghiệp
Của Khách Hàng Dựa Trên Thuật Toán Phân Cụm Đưa Ra Chính Sách Khuyến Mại Về Sản Phẩm Và Theo Phân Khúc Khách Hàng”nhằm mục tiêu đưa ứng dụng Phân tích dữ liệu lớn vào khai thác nguồn tàinguyên đặc biệt – Big Data Sử dụng các công cụ khai thác Big Data, cáccông cụ được sử dụng để lưu trữ và vận hành hệ thống Big Data - Hadoop,các công cụ xử lý học máy, xử lý dữ liệu lớn như Spark, Zeppelin (SparkML), ứng dụng hệ khuyến nghị, học máy và các kỹ thuật phân tích hành vikhách hàng nhằm đưa ra kết quả phù hợp nhất với từng nhóm đối tượngkhách hàng sử dụng dịch vụ
Phần còn lại của luận văn được trình bày theo cấu trúc như sau
Chương 2 trình bày các khái niệm cơ bản phục vụ cho nghiên cứu của
đề tài, Big Data, các công cụ được sử dụng trong quá trình thực hiện đề tài,phương thức xây dựng hệ cơ sở dữ liệu khách hàng 360 – là bộ khung dữ liệu
sử dụng xuyên suốt quá trình xây dựng các mô hình học máy và sử dụng đểđánh giá các mô hình học máy, các thuật toán sẽ sử dụng trong quá trình thựchiện Tính ứng dụng khi sử dụng thư viện Spark ML và các điểm ưu việt củaSpark khi sử dụng để xây dựng và ứng dụng cho giải thuật rừng ngẫu nhiênsong song
Chương 3 sẽ trình bày về quá trình thực hiện, các phiên bản xây dựng
mô hình và kết quả thực nghiệm
Cuối cùng sẽ là phần kết luận, ý nghĩa phương pháp triển khai, các kếtquả đạt được và định hướng nghiên cứu tiếp theo
Trang 9Chương 2: Công cụ, nền tảng, thuật toán sử dụng
và ứng dụng Phân tích dữ liệu
2.1 Các công cụ nền tảng
Với sự xuất hiện liên tục của nhiều phương thức phổ biến thông tinmới, cùng sự gia tăng của công nghệ điện toán đám mây và Internet vạn vật(IoT), dữ liệu không ngừng tăng lên với tốc độ cao Quy mô dữ liệu toàn cầuliên tục tăng với tốc độ 2 lần sau mỗi hai năm [1] Giá trị ứng dụng của dữliệu trong mọi lĩnh vực đang trở nên quan trọng hơn bao giờ hết Tồn tại mộtlượng lớn thông tin đáng giá trong dữ liệu có sẵn Sự xuất hiện của thời đại
dữ liệu lớn cũng đặt ra những vấn đề và thách thức nghiêm trọng bên cạnhnhững lợi ích rõ ràng Do nhu cầu kinh doanh và áp lực cạnh tranh, hầu hếtmọi doanh nghiệp đều có yêu cầu cao về xử lý dữ liệu theo thời gian thực vàhợp lệ [2] Do đó, vấn đề đầu tiên là làm thế nào để khai thác thông tin có giátrị từ dữ liệu khổng lồ một cách hiệu quả và chính xác Đồng thời, dữ liệu lớnnắm giữ các đặc điểm như số chiều cao, độ phức tạp và nhiễu Dữ liệu khổng
lồ thường chứa các thuộc tính được tìm thấy trong các biến đầu vào khácnhau ở hàng trăm hoặc hàng nghìn cấp, trong khi mỗi một trong số chúng cóthể chứa một ít thông tin Vấn đề thứ hai là chọn các kỹ thuật thích hợp có thểdẫn đến hiệu suất phân loại tốt cho tập dữ liệu chiều nhiều chiều Xem xét các
sự kiện nói trên, khai thác và phân tích dữ liệu cho dữ liệu quy mô lớn đã trởthành một chủ đề nóng trong học thuật và nghiên cứu công nghiệp Tốc độkhai thác và phân tích dữ liệu đối với dữ liệu quy mô lớn cũng đã thu hútnhiều sự quan tâm của cả giới học thuật và công nghiệp Các nghiên cứu vềkhai thác dữ liệu phân tán và song song dựa trên nền tảng điện toán đám mây
đã đạt được nhiều thành tựu thuận lợi [3],[4] Hadoop [5] là một nền tảngđám mây nổi tiếng được sử dụng rộng rãi trong khai thác dữ liệu
2.1.1 Big Data
Khái niệm Big Data
Big Data (Dữ liệu lớn) là thuật ngữ mô tả quá trình xử lý dữ liệu trênmột tập dữ liệu lớn bao gồm cả dữ liệu có cấu trúc hay không có cấu trúc BigData rất quan trọng với các tổ chức, doanh nghiệp thì dữ liệu ngày một lớn vàcàng nhiều dữ liệu sẽ giúp các phân tích càng chính xác hơn Việc phân tích
Trang 10chính xác này sẽ giúp doanh nghiệp đưa ra các quyết định giúp tăng hiệu quảsản xuất, giảm rủi ro và chi phí.
Những dữ liệu này tới từ mọi nơi – ví dụ như từ những chiếc cảm biến
để thu thập thông tin thời tiết, những thông tin được cập nhật trên các trangweb mạng xã hội, những bức ảnh và video kỹ thuật số được đưa lên mạng, dữliệu giao dịch của các hoạt động mua sắm trên mạng – dưới mọi hình thứckhác nhau (có cấu trúc, phi cấu trúc, bán cấu trúc) Đó chính là dữ liệu lớn
Big Data là thuật ngữ dùng để chỉ một tập hợp dữ liệu rất lớn và hỗn tạpđến nỗi những công cụ, ứng dụng xử lí dữ liệu truyền thống khó có thể nào đảmđương được Bằng việc tổng hợp một lượng thông tin lớn từ các nguồn khácnhau khiến cho Big Data trở thành một công cụ rất mạnh cho việc ra các quyếtđịnh kinh doanh, nhận diện hành vi và xu hướng nhanh hơn và tốt hơn rất nhiều
so với cách thức truyền thống Big Data được nhận diện trên ba khía cạnh chính:
Dữ liệu (Data), Công nghệ (Technology), Quy mô (Size) Thứ nhất, dữ liệu(data) bao gồm các dữ liệu thuộc nhiều định dạng khác nhau như hình ảnh,video, âm nhạc… trên Internet [6]; gồm các dữ liệu thu thập từ các hệ thốngcung ứng dịch vụ công nghệ thông tin có kết nối với hệ thống máy chủ; dữ liệucủa khách hàng ở các ứng dụng thông minh và các thiết bị có kết nối mạng; dữliệu của người dùng để lại trên các nền tảng của mạng xã hội, việc ứng dụngkhai phá dữ liệu lớn sẽ tạo thành quy trình khép kín, việc bổ sung dữ liệu vàhuấn luyên được diễn ra liên tục [7] Do các dữ liệu được cập nhật qua các thiết
bị kết nối mạng từng giờ, từng phút, từng giây và đến từ nhiều nguồn khác nhaunên khối lượng dữ liệu này là rất lớn (Big) Hiện nay, Big Data được đo lườngtheo đơn vị Terabytes (TB), Petabytes (PB) và Exabytes (EB) Có thể dễ dànglấy một vài ví dụ như Walmart xử lý hơn 1 triệu giao dịch của khách hàng mỗigiờ, dữ liệu nhập vào ước tính hơn 2,5 PB; Facebook có hơn 1.9 tỷ người dùngđồng thời, có hàng trăm server xử lý và lưu trữ dữ liệu [8] Twitter là một hệthống mạng xã hội với 1,3 tỷ người dùng đang hoạt động và trong giai đoạn đầu[9] Yếu tố nhận diện thứ hai của Big Data là công nghệ (technology) Côngnghệ thường được thiết kế và hình thành một hệ sinh thái từ dưới đi lên để cókhả năng xử lý các dữ liệu lớn và phức tạp Một trong những hệ sinh thái mạnhnhất hiện nay phải kể đến Hadoop với khả năng xử lý dữ liệu có thể được tănglên cùng mức độ phức tạp của dữ liệu, năng lực này là một công cụ vô giá trongbất kỳ ứng dụng Big Data nào Yếu tố nhận diện thứ ba của Big Data là quy mô
Trang 11trả lời chính xác cho câu hỏi dữ liệu thế nào gọi là lớn Theo ngầm hiểu thìkhi dữ liệu vượt quá khả năng xử lý của các hệ thống truyền thống thì sẽ đượcxếp vào Big Data.
Việc bản thân các doanh nghiệp cũng đang sở hữu Big Data của riêngmình đã trở nên phổ biến Chẳng hạn, như trang bán hàng trực tuyến eBay thì sửdụng hai trung tâm dữ liệu với dung lượng lên đến 40 petabyte để chứa nhữngtruy vấn, tìm kiếm, đề xuất cho khách hàng cũng như thông tin về hàng hóa củamình Hay nhà bán lẻ online Amazon.com phải xử lí hàng triệu hoạt động mỗingày cũng như những yêu cầu từ khoảng nửa triệu đối tác bán hàng Tương tự,Facebook cũng phải quản lí 50 tỉ bức ảnh từ người dùng tải lên [10], YouTubehay Google thì phải lưu lại hết các lượt truy vấn và video của người dùng cùngnhiều loại thông tin khác có liên quan Theo kết quả khảo sát được thực hiện bởiQubole - công ty hàng đầu về cung cấp giải pháp, nền tảng quản lí dữ liệu hạtầng đám mây phục vụ phân tích - và bởi Dimensional Research - một tổ chứcnghiên cứu thị trường công nghệ, lĩnh vực chăm sóc khách hàng, kế hoạch côngnghệ thông tin, quy trình bán hàng và hoạt động tài chính là các lĩnh vực thu lợinhiều nhất từ Big Data Qua đó, thấy được là mục đích khai thác Big Data củacác nhà cung ứng hàng hóa, dịch vụ toàn cầu là hướng đến chăm sóc kháchhàng, phân tích dữ liệu khách hàng để phát triển sản phẩm, dịch vụ; ứng dụngthông minh để tăng trải nghiệm của khách hàng và giữ chân khách hàng khi sựcạnh tranh ngày càng gay gắt giữa các nhà cung ứng ở hầu hết các lĩnh vực kinhdoanh Với các công cụ phân tích, đặc biệt là công cụ phân tích dự báo(Predictive Analytics) và khai thác dữ liệu (Data mining) [19], Big Data giúp cácdoanh nghiệp đo lường, phân tích các vấn đề liên quan đến sản phẩm, phát hiệncác cơ hội và nguy cơ rủi ro, đồng thời, dự báo doanh thu từ hoạt động kinhdoanh hàng ngày
Big Data có thể bao gồm những kiểu dữ liệu sau:
Dữ liệu của các hệ thống doanh nghiệp truyền thống bao gồm các dữliệu từ hệ thống quản lý khách hàng, các giao dịch của hệ thống tài chínhdoanh nghiệp, các dữ liệu kế toán, thông tin giao dịch của khách hàng vàdoanh nghiệp
Trang 12Dữ liệu sinh tự động hoặc do cảm biết: Bao gồm dữ liệu thông tinkhách hàng sử dụng dịch vụ, lịch sử truy cập các trang web, các dữ liệu ghilịch sử thiết bị sử dụng…
Dữ liệu mạng xã hội- bao gồm các dữ liệu được sinh ra từ quá trình sửdụng mạng xã hội của người dùng như ảnh, video, thông tin trên Facebook,Twitter, Instagram…
Đặc điểm của Big Data
Ba đặc điểm chính của Big Data bao gồm Dung lượng (volume), Tốc
độ (velocity), Tính đa dạng (variety) Dung lượng của Dữ liệu lớn đang tănglên mạnh mẽ từng ngày [10].Theo thông tin được Google công bố, cứ mỗi 1giây, 87000 từ khóa tìm kiếm được thực hiện, hàng petabyte dữ liệu được tạo
ra trên toàn thế giới Về Tốc độ (Velocity) phản ánh tốc độ mà tại đó dữ liệuđược phân tích bởi các công ty để cung cấp một trải nghiệm người dùng tốthơn Với sự ra đời của các kỹ thuật, công cụ, ứng dụng lưu trữ, nguồn dữ liệuliên tục được bổ sung với tốc độ nhanh chóng Về Tính đa dạng (Variety) của
dữ liệu, việc đa dạng hóa các nguồn dữ liệu đầu vào, từ dữ liệu có cấu trúc,bán cấu trúc cho đến dữ liệu không có cấu trúc, từ các loại dữ liệu dạng giaodịch cho đến các dữ liệu dạng văn bản sinh ngẫu nhiên trên internet
Độ lớn dữ liệu (volume): Dữ liệu sinh ra tự động (machine-generateddata) có số lượng nhiều hơn rất nhiều so với dữ liệu truyền thống Dữ liệu cóthể sinh ra hàng TB trong thời gian ngắn và dữ liệu lưu trữ có thể lên đếnPetabytes Cách đây vài năm, việc lưu trữ dữ liệu lớn là một vấn đề khó khăn.Tuy nhiên hiện nay, với việc phần cứng ngày càng rẻ cộng thêm công nghệlưu trữ đám mây thì việc xác định giá trị cần thiết từ tập dữ liệu lớn mới làvấn đề cốt yếu
Tốc độ xử lý dữ liệu (velocity): Dữ liệu lớn không đồng nghĩa với xử
lý chậm Ngày nay các hệ thống media cần xử lý nhanh và có phản hồi chấpnhận được với người dùng Trong việc xử lý dữ liệu lớn ta luôn cần quan tâmđến Tốc độ xử lý dữ liệu
Tính đa dạng dữ liệu (variety): Với việc thu thập từ nhiều nguồn dữ liệukhác nhau (web, mobile…), Big Data không chỉ có dữ liệu kiểu truyền thốngdạng schema mà ngày nay còn có nhiều loại dữ liệu khác như dạng image,
Trang 13video, cấu trúc dữ liệu phức tạp khác… Big Data có thể xử lý dữ liệu có cấutrúc, phi cấu trúc và bán cấu trúc.
Để đáp ứng được về các tính chất đó của Big Data, các công ty lớn trênthế giới như Amazon, Google, FaceBook đều sử dụng nền tảng Hadoop làmcông cụ lưu trữ và xử lý dữ liệu
2.1.2 Giới thiệu về Hadoop
Apache Hadoop [11] là một framework cho phép xử lý phân tán mộttập dữ liệu lớn qua cụm (cluster) các máy tính bằng việc sử dụng mô hình lậptrình đơn giản Được thiết kế để có thể giãn nở thực hiện trên một đến hàngnghìn máy tính là nơi tính toán và lưu trữ cục bộ Một điểm mới của ApacheHadoop là thay vì thiết đặt cơ chế sẵn sàng cao (High Availability - HA) bằngphần cứng thì bản thân Hadoop được thiết kế để phát hiện và quản lý lỗi tạitầng ứng dụng, do đó sẽ đưa ra dịch vụ có tính sẵn sàng cao HA tại cụm cácmáy tính nơi có thể xảy ra lỗi bằng cách thiết đặt thêm một ứng dụng (node)dưới dạng hoạt động hoặc chế độ chờ (active/standby)
Apache Hadoop được tạo bởi 2 thành phần bao gồm một hệ thống filephân tán Hadoop Distributed Filesystem (HDFS) và một layer để tính toántheo mô hình xử lý Map Reduce Hadoop là một open source cho phép xử lý
dữ liệu theo lô và có khả năng xử lý khối lượng dữ liệu cực lớn
Hadoop sử dụng một cụm các server thông thường để lưu trữ, tínhtoán Việc tính toán trên Hadoop Distributed Filesystem (HDFS) được thựchiện một cách song song và trừu tượng với các developer giúp họ tránh đượcviệc lập trình mạng và xử lý bài toán đồng bộ phức tạp Không giống nhưnhiều hệ thống phân tán khác, Hadoop cung cấp việc xử lý logic trên nơi lưu
dữ liệu mà không phải lấy dữ liệu từ các máy khác giúp tăng hiệu năng mộtcách mạnh mẽ
Hadoop bao gồm những module sau:
Hadoop Common: Các tiện ích cơ bản hỗ trợ Hadoop
Hadoop Distributed File System (HDFS™): Hệ thống file phân tán
cung cấp khả năng truy vấn song song tối đa hóa theo đường truyền truy cậpbởi ứng dụng
Trang 14Hadoop YARN: Framework quản lý lập lịch tác vụ và tài nguyên trên
Apache Hive
Hive tạo ra một cơ sở dữ liệu quan hệ dạng trừu tượng cho phép cácdeveloper có thể truy vấn dữ liệu bằng SQL Thực chất đây là việc thi hànhmột hoặc nhiều job MapReduce trên các cụm
Hive thực hiện việc tạo ra một schema dạng bảng trên tập các file đangtồn tại trên HDFS và quản lý các bản ghi được trích xuất khi chạy một query.Bản thân dữ liệu trên đĩa không thay đổi mà chỉ được lấy ra tại thời điểmquery Các câu lệnh HiveQL được dịch và thực thi trên các lớp map và reduce
có sẵn tương ứng với câu lệnh SQL đó
Apache Pig
Giống như Hive, Apache Pig được tạo ra để đơn giản việc sử dụngMapReduce job, mà không cần thiết phải viết Java Code Thay vào đó, ngườidùng sẽ viết các job xử lý dữ liệu trên ngôn ngữ high-level script mà Pig đãxây dựng Trong trường hợp cần thao tác xử lý dữ liệu đặc biệt mà Pig chưa
hỗ trợ chúng ta có thể hoàn toàn mở rộng Pig script bằng Java
Apache Sqoop
Việc chuyển đổi dữ liệu từ dữ liệu quan hệ sang dữ liệu trên Hadoop làmột trong vấn đề quan trọng và phổ biến hiện nay Sqoop viết tắt của “SQL toHadoop” thực hiện chuyển đổi dữ liệu 2 chiều giữa Hadoop và hầu hết các cơ
sở dữ liệu sử dụng JDBC driver Sử dụng MapReduce, Sqoop thực hiện cáchoạt động một cách song song mà không cần phải viết code Sqoop hỗ trợ cácplugin cho từng loại database cụ thể cung cấp các đặc tính cơ bản của hệ quản
Trang 15connectors (hỗ trợ trực tiếp) cho MySQL và PostgreSQL và kèm theo một sốconnector free cài đặt thêm để hỗ trợ Teradata, Netezza, SQL server và Oracle.
Apache ZooKeeper
Apache ZooKeeper hỗ trợ các tính năng của hệ thống phân tán Trongthực tế nhiều dự án sử dụng Hadoop có sử dụng ZooKeeper để hỗ trợ các tínhnăng cần thiết cho hệ thống phân tán (leader election, locking, groupmembership, service location, config-uration services)
Trang 16Apache HCatalog
Apache HCatalog là một dịch vụ cung cấp khả năng chia sẻ schema vàcác dịch vụ truy cập dữ liệu giữa các ứng dụng trong cùng một hệ thống Vềlâu dài, HCatalog sẽ cung cấp việc kết hợp các tool ví dụ như Hive và Pig đểchúng có thể chia sẻ các thông tin về dataset và metadata
2.1.4 HDFS
Hadoop Distributed File System (HDFS) [12] là một hệ thống file phântán được thiết kế để chạy trên phần cứng thông thường HDFS cũng tương tựnhững hệ thống file phân tán hiện có Tuy nhiên, sự khác biệt ở đây là HDFS
có khả năng chịu lỗi cao (fault-tolerant) và được thiết kế để deploy trên cácphần cứng rẻ tiền HDFS cung cấp khả năng truy cập high throughput từ ứngdụng và thích hợp với các ứng dụng có tập dữ liệu lớn
Hình 2.1 Kiến trúc HDFS
HDFS có kiến trúc master-worker, (Hình 2.1) Một cụm HDFS (HDFS
cluster) bao gồm các Namenode và Datanode Dữ liệu được lưu trên các block
Trang 17Một cụm HDFS bao gồm hai loại nút (node) hoạt động theo mô hình nút chủ
- nút thợ (master-worker):
Một cụm HDFS có 1 namenode (master – nút chủ)
Một cụm HDFS có một hoặc nhiều các datanode (worker - nút thợ)Namenode quản lý các namespace filesystem Nó quản lý mộtfilesystem tree và các metadata cho tất cả các file và thư mục trên tree Thôngtin này được lưu trữ trên đĩa vật lý dưới dạng không gian tên ảnh và nhật ký(edit log) Namenode còn quản lý thông tin các khối (block) của một tập tinđược lưu trên những datanodes nào
HDFS đưa ra một không gian tên cho phép dữ liệu được lưu trên tậptin Trong đó một tập tin được chia ra thành một hay nhiều khối (block) vàcác block được lưu trữ trên một tập các DataNode Namenode thực thi cáchoạt động trên hệ thống quản trị không gian tên tập tin như mở, đóng, đổi têntập tin và thư mục Namenode còn quyết định việc kết nối các khối với cácDataNode Các DataNode có tính năng xử lý các yêu cầu về đọc ghi từ máykhách Ngoài ra các DataNode còn thực hiện việc tạo, xóa, lặp các khối theo
sự hướng dẫn của DataNode
Một phần mềm được thiết kế bao gồm NameNode và DataNode có thểchay trên những máy tính thông thường Yêu cầu duy nhất chỉ là chạy hệ điềuhành GNU/Linux HDFS được xây dựng trên ngôn ngữ Java nên bất kỳ máynào hỗ trợ Java đều có thể chạy phần mềm thực thi NameNode và DataNode
2.1.5 Đọc ghi dữ liệu trên HDFS
a Đọc dữ liệu
Với khối dữ liệu (block) ID và địa chỉ IP đích máy chủ (host) củaDatanode, máy khách (client) có thể liên lạc với các Datanode còn lại để đọccác khối (block) cần thiết Quá trình này lặp lại cho đến khi tất cả các khốitrong file được đọc và máy khách đóng luồng đọc file trực tuyến
Trang 18Hình 2.2 .Luồng đọc dữ liệu trên HDFS
Hình 2.2 mô tả quá trình đọc dữ liệu của NameNode từ DataNode thông qua các API của Hadoop
b Ghi dữ liệu
Trang 19Việc ghi dữ liệu sẽ phức tạp hơn việc đọc dữ liệu đối với hệ thống HDFS.
Trong Hình 2.3 ban đầu, máy khách gửi yêu cầu đển tạo một file bằng việc sử
dụng Hadoop FileSystem APIs Một yêu cầu được gửi đến namenode để tạo tậptin metadata nếu user có quyền tạo Thông tin Metadata cho tập tin mới đã đượctạo; tuy nhiên lúc này chưa có một block nào liên kết với tập này Một tiến trìnhtrả kết quả được gửi lại cho máy khách xác nhận yêu cầu tạo file đã hoàn thành
và bắt đầu có thể ghi dữ liệu Ở mức API, một đối tượng Java là stream sẽ trả về.
Dữ liệu của máy khách sẽ ghi vào luồng này và được chia ra thành các gói, lưu
trong queue của bộ nhớ Một tiến trình riêng biệt sẽ liên hệ với namenode để yêucầu một tập datanode phục vụ cho việc sao lưu dữ liệu vào các khối (block).Máy khách sẽ tạo một kết nối trực tiếp đến datanode đầu tiên trong danh sách.Datanode đầu tiên đó sẽ kết nối lần lượt đến các datanode khác Các gói dữ liệuđược ghi dần vào các datanode Mỗi datanode sẽ phản hồi dữ liệu ghi thànhcông hay không Quá trình này kết thúc khi toàn bộ các gói dữ liệu đã được lưutại các khối (block) của datanode
2.1.6 Map-Reduce
Map-reduce [13] là mô hình dùng để xử lý dữ liệu Trong quá trình xử
lý dữ liệu, MapReduce sẽ chia ra 2 giai đoạn: giai đoạn Map và giai đoạnReduce Cả hai giai đoạn này đều có đầu vào và đầu ra ở dạng key, value.Người lập trình cần viết 2 hàm chức năng để có thể xử lý dữ liệu đó là hàmchức năng Map và hàm chức năng Reduce
Hình 2.4 .Mô hình Map-Reduce
Về mặt định nghĩa thuật toán, ta có thể mô tả Map-Reduce như sau:
Trang 20Input: dữ liệu dưới dạng Key → Value
Lập trình viên viết 2 thủ tục:
Map(k, v) → <k', v'>*
Reduce(k', <v'>*) → <k', v''>*
Map biến mỗi key k thu được bằng thành cặp <k', v'> Reduce nhận đầu vào
là khoá k' và danh sách cách giá trị v' và trả về kết quả là cặp <k', v''>
Trang 21cache dữ liệu trong bộ nhớ và thực hiện tính toán và lặp lại cho cùng một dữliệu trực tiếp từ bộ nhớ Nền tảng Spark tiết kiệm một lượng lớn thời gianhoạt động I / O của đĩa Do đó, Spark phù hợp hơn cho việc khai thác dữ liệuvới tính toán lặp đi lặp lại Thuật toán Rừng ngẫu nhiên (RF) [14] là mộtthuật toán khai thác dữ liệu phù hợp cho dữ liệu lớn RF là một thuật toán họctập hợp sử dụng không gian con đặc trưng để xây dựng mô hình Hơn nữa, tất
cả các cây quyết định có thể được đào tạo đồng thời, do đó nó cũng thích hợpcho việc xử lý song song hóa Apache Spark Mllib[22] đã song song hóathuật toán RF (được gọi là Spark-MLRF) dựa trên tối ưu hóa song song dữliệu để cải thiện hiệu suất của thuật toán
a Khái niệm Apache Spark
Theo [24], Spark là một ứng dụng mã nguồn mở được xây dựng được xâydựng để xử lý dữ liệu phân tán, nhằm tăng tốc độ xử lý, dễ sử dụng và linh hoạt
Sử dụng để xử lý dữ liệu lớn một cách nhanh chóng, bằng cách cho phép thựchiện tính toán trên cụm tạo ra khả năng phân tích dữ liệu tốc độ cao khi đọc vàghi dữ liệu Tốc độ xử lý của Spark có được do việc tính toán được thực hiệncùng lúc trên nhiều máy khác nhau Đồng thời việc tính toán được thực hiện ở
bộ nhớ trong (in-memories) hay thực hiện hoàn toàn trên RAM Spark hỗ trợnhiều ngôn ngữ lập trình được sử dụng rộng rãi (Python, Java, Scala và R), baogồm các thư viện cho các tác vụ đa dạng khác nhau, từ SQL đến phát trực tuyến
và học máy, và chạy ở mọi nơi từ máy tính xách tay đến một cụm hàng nghìnmáy chủ Điều này hỗ trợ cho Spark trở thành một hệ thống dễ dàng bắt đầu và
mở rộng quy mô để xử lý dữ liệu lớn hoặc quy mô cực kỳ lớn
Spark cho phép xử lý dữ liệu theo thời gian thực, vừa nhận dữ liệu từcác nguồn khác nhau đồng thời thực hiện ngay việc xử lý trên dữ liệu vừanhận được (Spark Streaming)
Spark không có hệ thống file của riêng mình, nó sử dụng hệ thống filekhác như: HDFS, Cassandra, S3,… Spark hỗ trợ nhiều kiểu định dạng filekhác nhau (text, csv, json…) đồng thời nó hoàn toàn không phụ thuộc vào bất
cứ một hệ thống file nào
Để chạy nhanh hơn, Spark cung cấp: Mô hình tối ưu các tính toán đồ thịmột cách tùy ý (optimize arbitrary operator graphs) Hỗ trợ tính toán tại bộ nhớtrong Spark cung cấp bộ API hỗ trợ các ngôn ngữ Scalar, Java, Python Spark
Trang 22hỗ trợ các thư viện ứng dụng cơ bản của học máy như Rừng ngẫu nhiên(Random Forest), cây quyết định (Decision Tree)… hay các thư viện phâncụm (KMeans).
b Resilient Distributed Datasets - RDD
Resilient Distributed Datasets (RDD) [25] là một cấu trúc dữ liệu cơbản của Spark Nó là một tập hợp bất biến phân tán của một đối tượng, hỗ trợtính toán xử lý trong bộ nhớ Mỗi nhóm dữ liệu đối tượng trong RDD đượcchia ra thành nhiều phần vùng vật lý Có thể được tính toán trên các nút khácnhau của một cụm máy chủ (cluster)
RDDs có thể chứa bất kỳ kiểu dữ liệu nào của Python, Java, hoặc đốitượng Scala, bao gồm các kiểu dữ liệu do người dùng định nghĩa Thôngthường, RDD chỉ cho phép đọc, phân mục tập hợp của các bản ghi RDDs cóthể được tạo ra qua điều khiển xác định trên dữ liệu trong bộ nhớ hoặc RDDs,RDD là một tập hợp có khả năng chịu lỗi mỗi thành phần có thể được tínhtoán song song
c Thành phần của Spark
Hình 2.6 .thành phần của Spark
Hình 2.6 mô tả các thành phần cơ bản của Spark, cụ thể:
Spark Core: là lõi ứng dụng (engine) thực thi chung làm nền tảng cho Spark.Tất cả các chức năng khác được xây dựng dựa trên nền tảng là Spark Core
Trang 23Cung cấp khả năng tính toán trên bộ nhớ RAM và cả bộ dữ liệu tham chiếutrong các hệ thống cho phép mở rộng bộ nhớ vật lý (external storage).
Spark SQL: là một thành phần nằm trên Spark Core, giới thiệu một khái niệm trừu tượng hóa dữ liệu mới gọi là SchemaRDD, cung cấp hỗ trợ cho dữ
liệu có cấu trúc và bán cấu trúc
Spark Streaming: tận dụng khả năng lập lịch memory-base của Spark Core
để thực hiện streaming analytics Nó lấy dữ liệu theo mini-batches và thựchiện các phép biến đổi RDD (Bộ dữ liệu phân tán có khả năng phục hồi) trêncác mini-batches dữ liệu đó
MLlib (Machine Learning Library): là một framework machine learning
phân tán trên Spark tận dụng khả năng tính toán tốc độ cao nhờ distributedmemory-based của kiến trúc Spark
GraphX: là một framework xử lý đồ thị phân tán Nó cung cấp một API để
thực hiện tính toán biểu đồ có thể mô hình hóa các biểu đồ do người dùng xácđịnh bằng cách sử dụng API đã được tối ưu sẵn
Hoạt động
Hình 2.7 Cơ chế hoạt động của Spark
Chương trình Spark chạy như một bô process độc lập trên mỗi cluster Cácprocess này được điều khiển bởi SparkContext trong chương trình điều khiển
(Driver program), được thể hiện trong Hình 2.7 SparkContext sẽ kết nối với một
số loại Cluster Manager (các trình quản lý cụm chạy standalone của Spark hoặcYARN hoặc MESOS) trình quản lý việc phân bố tài nguyên cho các ứng dụng
để xác định các nút sẽ làm việc Sau đó, Spark sẽ kết nối tới một số
Trang 24Executor trên các nút này (thực chất là các tiến trình chạy các tác vụ tínhtoán, lưu trữ dữ liệu cho ứng dụng), sau đó sẽ gửi mã của ứng dụng (được gửi
từ SparkContext) tới các Executor này Cuối cùng SparkContext sẽ gửi cáctác vụ tới các Executor để chạy
Ưu điểm:
Mỗi ứng dụng sẽ được chạy trong một executor riêng biệt, các tác vụ sẽđược chạy đa luồng multithread Các task của các ứng dụng khác nhau sẽđược chạy trong các JVM khác nhau, tách biệt được việc lập lịch chạy ứngdụng và việc thực thi ứng dụng Nhược điểm ở đây là dữ liệu của các ứngdụng khác nhau không được chia sẻ trừ khi ghi vào một bộ nhớ bên ngoài
Spark độc lập với các trình quản lý cụm (chỉ cần nó có thể liên hệ đượcvới tiến trình executor), có thể tích hợp được với nhiều trình quản lý cụmkhác nhau (YARN, MESOS …)
Các trình điều khiển lập lịch được đặt trên các cụm được đặt trongcùng mạng LAN với các Nút (Nodes), giúp cho quá trình điều khiển sẽ nhanh
và tin cậy hơn
d Các cơ chế quản lý cụm mà Spark hỗ trợ:
Theo [26], các cơ chế quản lý cụm dữ liệu sẽ có một số cơ chế như sau:
Standalone – cơ chế quản lý cụm đơn giản được tích hợp ngay trong chínhSpark
Apache Mesos – cơ chế quản lý cụm cơ bản hỗ trợ chạy Spark, HadoopMapReduce và các ứng dụng giao tiếp ngầm
Hadoop YARN – quản lý tài nguyên trên Hadoop
e Spark vs Hadoop MapReduce
Theo [27], Về cơ chế hoạt động của Map-Reduce: dữ liệu đầu vào đượcđọc từ HDFS (ứng dụng phụ trách việc lưu trữ trong Hadoop), xử lý bằng cácthao tác chỉ định, dữ liệu đầu ra được ghi vào HDFS, dữ liệu tiếp tục được đưalên, thao tác tiếp theo được thực hiện, dữ liệu đầu ra tiếp tục ghi vào HDFS …chuỗi các bước [đọc - xử lý - ghi] đó được lặp cho đến khi hoàn thành tác vụ
Trang 25Vì dữ liệu đầu vào được chia thành các khối (block) độc lập với nhau, cáctiến trình map-reduce được thực hiện song song, nên về cơ bản nó hữu ích để
xử lí những bộ dữ liệu lớn Tuy nhiên, map-reduce vẫn còn những tồn tại làquá trình xử lý không thực sự hiệu quả trong trường hợp phải lặp lại nhiềustep, vì mỗi step cần thiết phải ghi đầu ra dữ liệu vào HDFS trước khi bướctiếp theo được thực hiện, việc này tạo ra các vấn đề trong việc lưu trữ và cơchế tạo lặp các vùng lưu trữ, tăng độ trễ xử lý do phần lớn thực hiện trên Diskvốn có hiệu suất I/O không cao Bên cạnh đó là việc thực hiện viết code vớiMap-Reduce có phần khó khăn vì viết lệnh giao tiếp khá dài dòng
Hình 2.8 Cơ chế hoạt động của Spark và RDD
Cơ chế hoạt động của Spark: khắc phục những tồn tại của HadoopMapReduce, Spark đưa ra một khái niệm mới RDD - Resilient DistributedDataset đóng vai trò như 1 cấu trúc dữ liệu cơ bản trong Spark, RDD đượcđịnh nghĩa là trừu tượng cho một tập hợp các phần tử bất biến (bản chất làđược lưu trên các ô nhớ chỉ đọc readOnly), được phân vùng có thể được chia
sẻ, tác động song song, theo Hình 2.8 Qua đó, dữ liệu vào từ hệ thống lưu trữ
chỉ cần đẩy lên lần duy nhất, các bước thực hiện biến đổi, xử lý dữ liệu đầuvào được lên kế hoạch, tối ưu hóa và thực hiện một cách liên tục cho đến khi
dữ liệu đầu ra được trả khi kết thúc công việc Toàn bộ quá trình đó đượcdiễn ra trên bộ nhớ RAM (khi hết RAM sẽ được chuyển sang xử lý trên Disk)tận dụng được hiệu suất I/O cao từ đó có thể giảm thời gian thực thi nhỏ hơn10-100 lần Hadoop MapReduce
Trang 26f Apache Zeppelin trên nền tảng Spark
Là một loại trình thông dịnh chú có thể chạy trên nhiều nền ứng dụngkhác nhau như Spark Core; Python hay NoSQL Việc sử dụng Spark MLibMachine Learning cùng với Zeppelin (Spark Interpreter for Zeppelin), chophép thực thi các thư việc Machine Learning một cách tối đa hóa thời gian, sửdụng cơ chế hoạt động của Spark để tăng hiệu quả khi xây dựng và huấnluyện các mô hình học máy cũng như giảm thời gian huấn luyện
Hình 2.9 Zeppelin và phương thức hoạt động
Việc sử dụng Apache Zeppelin sẽ nâng cao tốc độ xử lý các mô hình họcmáy và gia tăng được hiệu quả khi phải xử lý với dữ liệu lớn, Zeppelin cũng hỗtrợ tối đa cho các chuyên viên khoa học máy tính thực thi và xử lý các model.Hình 2.9 mô tả thành phần và các phân đoạn hoạt động của Zeppelin, lưu lại cácthành phần và phân loại từng nhóm code Ngoài ra, Zeppelin cũng có một sốAPI cho phép cài đặt để huấn luyện các mô hình một cách tự động Sử dụng choquá trình tự động hóa các mô hình huấn luyện trong quá trình ứng dụng học máyvào triển khai thực tế, và vận hành khai thác Cung cấp các ứng dụng nền tảng(service) cho các ứng dụng ngoài có thể gọi, thực thi câu lệnh cũng như trả vềkết quả thông qua các ứng dụng ngầm này
2.2 Giới thiệu về học máy
Trang 27Học máy (machine learning) là một ngành khoa học nghiên cứu, xâydựng các kĩ thuật trên nền tảng của trí tuệ nhân tạo giúp cho máy tính có thểsuy luận (dự đoán) kết quả tương lai thông qua quá trình huấn luyện (học) từ
dữ liệu lịch sử
Do việc xây dựng mô hình học máy và ứng dụng vào thực tế cần nhiều
mô hình học máy và mô hình ứng dụng, việc sử dụng mô hình tổng hợp đểcho ra kết quả tối ưu là điều cần thiết Việc sử dụng và lựa chọn một mô hình
đủ nhanh, mạnh và hiệu quả về chi phí và tài nguyên là cần thiết, theo [20],các loại học máy có thể phân chia thành 3 nhóm: Học có giám sát supervised,học không giám sát unsupervised, học bán giám sát semisupervised và họctăng cường Reinforcement Learning
Trong số những mô hình đó, cây quyết định với những ưu điểm củamình được đánh giá là một công cụ mạnh, phổ biến và đặc biệt thích hợp chokhai thác dữ liệu lớn nói chung và phân lớp dữ liệu nói riêng Có thể kể ranhữ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ệnhSQL để 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à đôikhi là chính xác hơn so với các phương pháp phân lớp khác
Ngoài ra trong quá trình đề tài, các thuật toán được sử dụng nhằm mụctiêu kiểm định và phân lớp theo rừng ngẫu nhiên (random forest), phân cụm(K-Means) khách hàng để có thể tương tác tới tập khách hàng chính xác vàmang lại tỷ lệ cao nhất
{đúng, sai} sao cho f’(x) f(x), x X.
2.2.1 Một số khái niệm cơ bản
Không gian biểu diễn là một tập hợp:
Trang 28Ký hiệu là X, mỗi phần tử thuộc X có thể được gọi là các dữ liệu, cácthể hiện, các đối tượng hay các ví dụ.
Mỗi phần tử S X được biểu diễn bởi một tập gồm n thuộc tính:
là dự đoán một nhãn phân lớp cho một đối tượng đầu vào
Dữ liệu gán
nhãn
Hình 2.10 Mô hình học có giám sát
Nhiệm vụ của chương trình học có giám sát là dự đoán giá trị của hàm
f cho một đối tượng đầu vào hợp lệ bất kì, sau khi đã xét một số mẫu dữ liệuhuấn luyện (nghĩa là các cặp đầu vào và đầu ra tương ứng) Để đạt được điềunày, chương trình học phải tổng quát hóa từ các dữ liệu sẵn có để dự đoán
được những tình huống chưa gặp phải theo một cách hợp lý, Hình 2.10.
Các mô hình mẫu
Các bước giải bài toán học có giám sát
Ứng dụng các giải thuật sử dụng trong đề tài:
Rừng ngẫu nhiên (RandomForest)
Phân lớp nhị phân (BinaryClassification)
Cây quyết định (Decision Tree)
Trang 29b Học không có giám sát
Học không có giám sát (unsupervised learning) [20] là một phươngpháp học máy mà dữ liệu huấn luyện là dữ liệu hoàn toàn chưa được gánnhãn, nhằm tìm ra một mô hình phù hợp với các quan sát Học không có giámsát khác với học có giám sát ở chỗ, là đầu ra đúng tương ứng cho mỗi đầu vào
là chưa biết trước Trong học không có giám sát, một tập dữ liệu đầu vàothường được thu thập một cách ngẫu nhiên, và sau đó một mô hình mật độkết hợp sẽ được xây dựng cho tập dữ liệu đó
Ta có thể kết hợp học không có giám sát với suy diễn Bayes để tạo raxác suất có điều kiện cho bất kỳ biến ngẫu nhiên nào khi biết trước các biếnkhác Hay nói cách khác khi đó ta đã chuyển từ việc học không có giám sátsang học có giám sát Mọi giải thuật nén dữ liệu, về cơ bản hoặc là dựa vàomột phân bố xác suất trên một tập đầu vào một cách tường minh hay khôngtường minh Thuật toán Clustering sẽ phân tích và tìm các đặc trưng của dữliệu rồi đưa vào thành các cụm khác nhau theo từng đặc trưng tìm được, sau
đó, phân chia các cụm đầu vào mới vào từng cụm đã có sẵn theo từng loại đặctrưng của đầu vào
Thuật toán này có 3 loại điển hình:
K-Means Clustering: Phân nhóm dữ liệu vào một số K cụm với quyluật nhất định
Hierarchical Clustering: Phân loại theo thứ bậc
Probabilistic Clustering: Phân loại theo xác suất
c Học bán giám sát
Học nửa giám sát (semi-supervised learning) là một phương pháp họcmáy mà dữ liệu huấn luyện là sự kết hợp của dữ liệu được gán nhãn và dữliệu chưa được gán nhãn
Trang 30Hình 2.11 Mô hình học bán giám sát
Như chúng ta đã biết khi áp dụng học có giám sát thì các dữ liệu huấnluyện đã được gán nhãn Do đó sẽ thu được kết quả có độ chính xác rất cao.Tuy nhiên, khi đó ta sẽ gặp một vấn đề rất khó khăn là khi lượng dữ liệu lớn,thì công việc gán nhãn cho dữ liệu sẽ tốn rất nhiều thời gian và tài nguyên.Hay nói cách khác những dữ liệu được gán nhãn là rất đắt và việc tạo ra nhãncho những dữ liệu đòi hỏi những nỗ lực rất lớn của con người
Đối với mô hình học không có giám sát thì ngược lại, các dữ liệu huấnluyện không được gán nhãn Do đó kết quả thu được có độ chính xác khôngcao Tuy nhiên dữ liệu chưa được gán nhãn, có thể dễ dàng thu thập được rấtnhiều Hay nói cách khác là dữ liệu chưa gán nhãn có chi phí rất rẻ
Học nửa giám sát đã khắc phục được các nhược điểm, và phát huyđược ưu điểm của học có giám sát và học không có giám sát Bằng cách kếthợp giữa học có giám sát và học không có giám sát, với một lượng lớn dữliệu chưa gán nhãn và một lượng nhỏ những dữ liệu đã được gán nhãn, bằngcác giải thuật học nửa giám sát sẽ thu được kết quả vừa có độ chính xác caovừa mất ít thời gian công sức Do đó, học nửa giám sát là một phương pháphọc đạt được hiệu quả rất tốt trong lĩnh vực học máy
Trong quá trình thực hiện đề tài, việc đưa ứng dụng các mô hình họcmáy và phân tích dữ liệu kết hợp nhằm đạt hiệu quả cao nhất và phù hợp nhấtvới khối lượng dữ liệu lớn
2.2.2 Các vấn đề trong quá trình thực hiện đề tài
Trang 31Trong quá trình thực hiện đề tài, vướng mắc cơ bản khi thực hiện cũng làvướng mắc tồn tại và thường xuyên gặp phải của các bài toán về học máy làchọn ra một thuật toán phù hợp và huấn luyện trên một tập dữ liệu xác định, sẽ
có hai tình huống xấu nhất có thể xảy ra, tình huống đầu tiên, giải thuật khôngtốt, và tình huống thứ hai là dữ liệu chưa đủ tốt Ngay cả khi dữ liệu đã được làmsạch, việc bị gây nhiễu bởi những yếu tố ngoại vi hoặc ảnh hưởng bởi thuộc tínhđặc thù do các tình huống thực tế tạo nên là không thể tránh khỏi
Theo [23], các vấn đề vướng mắc như: Không đủ dữ liệu đào tạo, dữliệu đào tạo không mang đủ tính đại diện đặc trưng cho tập huấn luyện, dữliệu chất lượng kém, các thuộc tính dữ liệu không liên quan, Overfitting dữliệu huấn luyện, Underfitting dữ liệu huấn luyện Qua thời gian thực hiện,việc xây dựng và bổ sung dữ liệu để loại bỏ các thuộc tính dữ liệu dư thừa,đưa thêm dữ liệu huấn luyện để giảm Underfitting, tách tập huấn luyện và tậptest nhiều lần để tránh Overfitting Và chọn tập dữ liệu có đặc thù phù hợpmang tính đại diện đặc trưng với nhóm dữ liệu huấn luyện để tăng hiệu quả
mô hình Kết hợp với việc lựa chọn giải thuật phù hợp, hướng xử lý tối ưu để
mô hình, kết hợp với thử nghiệm nhiều lần để cho ra một mô hình phù hợpnhất để giải quyết mục bài toán Sử dụng kết hợp giữa cơ chế xử lý củaSpark, giải thuật Rừng Ngẫu Nhiên kết hợp với giải thuật Phân Cụm Các giảithuật sử dụng chi tiết sẽ được giới thiệu trong phần 2.3, và 2.4 sẽ cụ thể hóa
về thuộc tính dữ liệu sau khi loại bỏ các thuộc tính dư thừa, không mang tínhkhái quát hóa và gây nhiễu cho mô hình
Trang 32Chương 3: Spark và giải thuật rừng ngẫu nhiên song song (Parallel Random Forest - PRF)
Với điểm mạnh là xây dựng và ứng dụng xử lý dữ liệu phân tán songsong của Spark, đưa vào xử lý các giải thuật và xây dựng các mô hình họcmáy ứng dụng, cần tối ưu về mặt thời gian, độ chính xác và phương án xử lý
dữ liệu, sao cho đạt kết quả nhanh và có hiệu quả cao nhất Theo đó, đề xuấtứng dụng xử lý song song giải thuật rừng ngẫu nhiên trên nền tảng Spark(Parallel Random Forest - PRF) nhằm đáp ứng nhu cầu đó, với khả năng xử
lý phân tán, giúp giảm thời gian huấn luyện, tăng hiệu năng xử lý, và cho rahiệu quả cao nhất
Hình 3.1 Đồ thị vòng DAG được hình thành khi xử lý dữ liệu song song trên
Trang 33song song, cơ chế xử lý dữ liệu theo chiều dọc, cơ chế map – reduce được sửdụng để tối đa hóa hiệu quả và tái sử dụng dữ liệu, giảm được chi phí về tàinguyên do sử dụng dữ liệu phân nhóm nhỏ và lưu trên ram, cho phép sử dụng lạitập dữ liệu huấn luyện và tối ưu hóa kết quả nhờ vào việc giảm khối lượng dữliệu trên mỗi máy Đối với khả năng tối ưu hóa xử lý song song các luồng tiếntrình, cho phép mỗi tiến trình xử lý song song đa luồng được thực thi trong quátrình huấn luyện mô hình RF, một luồng giao việc dạng đồ thị vòng có hướng(Directed Acyclic Graph - DAG) được tạo theo trình tự huấn luyện song songcủa PRF và các đối tượng dữ liệu phân tán RDD (Resilient Distributed Datasets
- RDD) Sau đó, các tiến trình sẽ thực thi theo trình tự của DAG Thêm nữa, việccải thiện độ chính xác của thuật toán xử lý dữ liệu lớn, với dữ liệu nhiều chiều
và nhiễu, đề xuất phương án sử lý giảm chiều dữ liệu trong quá trình huấn luyện
mô hình và gán trọng số cho thuộc tính trong quá trình dự đoán trước khi đưavào huấn luyện và xử lý song song Kết quả thử nghiệm và ứng dụng mô hìnhchỉ ra tính ưu việt, những điểm tối ưu đáng chú ý so với các thuật toán khác liênquan được thực hiện bởi thư viện Spark ML và các nghiên cứu khác khi so sánh
về độ chính xác, khả năng phân loại và khả năng mở rộng
3.1 Thuật toán rừng ngẫu nhiên
Thuật toán rừng ngẫu nhiên là một thuật toán phân loại tập hợp dựa
trên mô hình cây quyết định Nó tạo ra k tập hợp con dữ liệu huấn luyện khác
nhau từ tập dữ liệu ban đầu bằng cách sử dụng phương pháp lấy mẫu
bootstrap (bootstrap sampling), và sau đó, k cây quyết định được xây dựng
bằng cách huấn luyện các tập con này Một tập hợp rừng ngẫu nhiên đượcxây dựng từ những cây quyết định này Mỗi mẫu của tập dữ liệu thử nghiệmđược dự đoán bởi tất cả các cây quyết định và kết quả phân loại cuối cùngđược trả về tùy thuộc vào kết quả đánh giá của các cây này
Trang 34Hình 3.2 Quá trình xây dựng thuật toán rừng ngẫu nhiên RandomForest
Tập dữ liệu huấn luyện ban đầu: S = {f (x i ; y j ); i=1;2;…;N; j=1;2;…;M},
với x là một mẫu đại diện và y là một thuộc tính(feautre) đại diện của S Cụ thể,
tập dữ liệu đào tạo ban đầu chứa N mẫu và có M biến đặc trưng trong mỗi mẫu.Quy trình chính của việc xây dựng thuật toán RF được trình bày trong hình
Các bước xây dựng thuật toán rừng ngẫu nhiên như sau:
Bước 1: lấy k mẫu con huấn luyện.
Trong bước này, k tập con huấn luyện được lấy mẫu từ tập dữ liệu huấn
luyện ban đầu S theo phương pháp lấy mẫu bootstrap (bootstrap sampling)
Cụ thể, N bản ghi được chọn từ S bằng phương pháp lấy mẫu và thay thế
ngẫu nhiên trong mỗi lần lấy mẫu Sau bước hiện tại, k tập con huấn luyện được xây dựng tạo thành một tập hợp các tập con huấn luyện S Train:
S Train = {S 1 ; S 2 ;…; S k }.
Đồng thời, các bản ghi không được chọn trong mỗi giai đoạn lấy mẫu
được tạo thành tập dữ liệu Out-Of-Bag (OOB) Theo cách này, k tập OOB được xây dựng tạo thành một tập hợp S OOB :
S OOB = {OOB 1 ; OOB ; … ;OOB k },
Trang 35Với k≪ N , S i ∩ OOB i = và S i ∪ OOB i = S Để có được độ chính xác phân loại của
từng cây, các bộ OOB này được sử dụng làm bộ kiểm tra sau quá trình huấn luyện.
Bước 2: Xây dựng mô hình cây quyết định.
Trong mô hình RF, mỗi cây quyết định (meta decision tree) được tạo
bởi thuật toán C4.5 từ mỗi tập huấn luyện nhỏ S i Trong quá trình sinh trưởng
mỗi cây, m thuộc tính của tập Si sẽ được chọn ngẫu nhiên từ tập M Trong
quá trình phân tách mỗi nút (node) của cây, thuật toán xét tất cả các phép thử
có thể để phân chia tập dữ liệu đã cho và chọn ra một phép thử có giá trị GainRatio tốt nhất Gain Ratio là một đại lượng để đánh giá độ hiệu quả của thuộctính dùng để thực hiện phép tách trong thuật toán để phát triển cây quyếtđịnh Giá trị tốt nhất sẽ được chọn làm nút phân tách Quá trình này lặp lại
cho đến khi tạo ra nút lá Cuối cùng, k cây quyết định được hình thành từ k
tập con huấn luyện theo cùng một phương thức
Bước 3: thu thập k cây vào trong một mô hình RF
Toàn bộ k cây huấn luyện được thu thập vào một mô hình RF:
( , ) = ∑ ℎ ( , ), ( = 1,2, … , ),
=1
Với h j (x, Θ j ) là số cây quyết định đại diện, X là là các vectơ thuộc tính
đặc trưng đầu vào của tập dữ liệu huấn luyện, và Θ j là một vectơ ngẫu nhiênđộc lập và được phân phối giống hệt nhau để xác định quá trình tăng trưởngcủa cây
Độ phức tạp của thuật toán
Độ phức tạp của thuật toán RF ban đầu là O(kMNlogN), với k là số lượng cây quyết định trong RF, M là số lượng thuộc tính, N là số lượng mẫu, và logN
là ngưỡng trung bình độ sâu cây của toàn bộ các cây trong mô hình Trong thuậttoán cải tiến PRF, với phương pháp giảm chiều dữ liệu (có độ phức tạp là
O(MN)), việc phân tách quá trình xử lý song song và phân chia các task trên
Spark sẽ được thực hiện đồng thời trên các node Quá trình phân chia và xử lýtrên mỗi nút được gộp làm một, trong đó bao gồm các hàm tính toán như
35
Trang 36entropy(), gain(), và gainratio() với mỗi không gian thuộc tính con đặc trưng.
Theo đó, việc tính toán giảm chiều dữ liệu, sẽ giảm từ M xuống còn m (m <<
M) theo đó, độ phức tạp của quá trình huấn luyện phân lớp là
( ( + )).
3.2 Giải thuật xử lý song song rừng ngẫu nhiên cho dữ
liệu lớn trong nền tảng Spark
Để xử lý dữ liệu với giải thuật Rừng ngẫu nhiên, đầu tiên, Spark sửdụng bộ dữ liệu phân tán linh hoạt (RDD) để đưa dữ liệu lên, phân chia và tạomột mô hình Đồ thị vòng có hướng (DAG) với để định hướng trình tự cácbước xử lý trên bộ nhớ ram, sau đó các tiến trình xử lý được lập lịch và thựchiện các bước theo độ thị Nền tảng Spark cho phép lưu trữ một bộ nhớ cache
dữ liệu trong bộ nhớ và thực hiện tính toán và lặp lại cho cùng một dữ liệutrực tiếp từ bộ nhớ, tiết kiệm một lượng lớn thời gian hoạt động I / O của đĩa.Spark sẽ phù hợp hơn cho việc khai thác dữ liệu với tính toán lặp đi lặp lại.Thuật toán Rừng ngẫu nhiên (RF) là một thuật toán khai thác dữ liệu phù hợpcho dữ liệu lớn, là một thuật toán học được huấn luyện sử dụng không giancon đặc trưng để xây dựng mô hình Hơn nữa, tất cả các cây quyết định đều
có thể được huấn luyện đồng thời, thích hợp cho việc xử lý song song hóa,đặc biệt phù hợp với cơ chế xử lý đồng thời của Spark ML
Ứng dụng giải thuật Rừng ngẫu nhiên xử lý song song (ParallelRandom Forest) cho dữ liệu lớn được triển khai trên nền tảng Apache Spark.Thuật toán PRF được tối ưu hóa dựa trên phương pháp kết hợp kết hợp giữatối ưu hóa xử lý dữ liệu song song và phân chia xử lý đồng thời các luồnggiao việc Để cải thiện độ chính xác khả năng phân loại của PRF, một phươngpháp tối ưu hóa được đề xuất trước quá trình song song Kết quả thử nghiệm
mở rộng cho thấy tính ưu việt của PRF và lợi thế đáng kể so với các thuậttoán khác về độ chính xác và hiệu suất phân loại cũng được cải thiện
Các nội dung chi tiết trong phần này được tóm tắt như sau:
Phương pháp ứng dụng giảm chiều dữ liệu trong quá trình huấn luyện
và phương pháp gán trọng số trong quá trình trong quá trình dự đoán nhãn
Trang 37Phương pháp tiếp cận và xử lý song song của PRF, kết hợp tối ưu hóa xử
lý dữ liệu song song và các tiến trình xử lý thuật toán đồng thời Xử lý dữ liệutheo chiều dọc và phương pháp đánh giá cân bằng trọng số (weighted vote)
Cách thức hoạt động của Spark khi xử lý dữ liệu, tối ưu khi ứng dụng
để xử lý Cách thức xử lý dữ liệu của Spark, các bước huấn luyện theo DAGcủa PRF dựa theo các bước xử lý mô hình dữ liệu – sử dụng RDDs, các tiếntrình được thực lập lịch và thực thi trong các bước đã được lập sẵn theo biểu
đồ DAG Việc thực hiện trên song song trên ram giữa các cụm Spark, xử lýđồng thời các tác vụ giúp giảm thiểu chi phí đường truyền, chi phí đọc ghi dữliệu giữa các cụm của Spark, giúp cho cân bằng dữ liệu và tối ưu hóa thờigian xử lý
3.2.1 Tối ưu hóa xử lý dữ liệu đồng thời.
Spark áp dụng Phương pháp tối ưu hóa xử lý dữ liệu đồng thời chothuật toán PRF, bằng cách sử dụng phương pháp phân chia các vùng dữ liệutheo chiều dọc và phương pháp ghép dữ liệu đồng thời – chia và gộp
Đầu tiên, căn cứ theo thuộc tính của thuật toán RF với các thuộc tính(features) đặc trưng độc lập và yêu cầu về tài nguyên của các tiến trình xử lý dữliệu, một phương pháp về phân chia dữ liệu theo chiều dọc được sử dụng cho tập
dữ liệu huấn luyện Tập dữ liệu huấn luyện được chia nhỏ làm nhiều tập dữ liệucon với các thuộc tính độc lập, mỗi tập thuộc tính đó được phân bổ lại theo cáccụm Spark để xử lý đồng thời theo phương pháp phân bổ dữ liệu tĩnh Thứ hai,
để giải quyết vấn đề về sự tăng trưởng khối lượng dữ liệu tuyến tính với sự giatăng quy mô của RF, phương pháp ghép dữ liệu đồng thời được sử dụng thaycho phương pháp lấy mẫu thông thường Phương pháp tối ưu hóa xử lý dữ liệuđồng thời cho thấy việc giảm khối lượng dữ liệu cần xử lý nhờ vào phân chia racác cụm và việc Spark xử lý trên ram tối ưu hóa quá trình đọc ghi và không làmgiảm độ chính xác của giải thuật Việc gia tăng quy mô của PRF không làm thayđổi về kích thước và các vùng nhớ lưu trữ dữ liệu
a Phương pháp phân chia dữ liệu chiều dọc.
Trong quá trình xử lý PRF, quá trình xử lý các thuộc tính (features) dữ liệu chiếm phần lớn thời gian huấn luyện
Trang 38Tập dữ liệu huấn luyện
Hình 3.3 Quá trình phân chia dữ liệu theo chiều dọc của các RDDs trong
Spark
Tuy nhiên, quá trình này chỉ sử dụng giá trị thuộc tính của tập huấnluyện và giá trị thuộc tính của tập mục tiêu Do đó, để giảm khối lượng dữliệu và giảm chi phí đọc ghi, truyền dữ liệu trong môi trường phân tán,phương pháp phân chia dữ liệu theo chiều dọc cho PRF sử dụng tính độc lậpcủa các thuộc tính và yêu cầu về tài nguyên khi xử lý đồng thời tại các cụmSpark Các tập dữ liệu với các thuộc tính ban đầu sẽ được chia thành các tập
dữ liệu nhỏ hơn với các thuộc tính độc lập
Giả sử kích thước của tập dữ liệu huấn luyện S là N, có M thuộc tính
(features) với mỗi bản ghi y0 ~ y M-2 là số lượng thuộc tính đầu vào, y M-1 là
thuộc tính mục tiêu Với mỗi thuộc tính y i và biến thuộc tính y M-1 của tất cả
các bản ghi được chọn và tạo thành một tập con thuộc tính đặc trưng FS j,được biểu diễn dưới dạng:
Trang 39… ,
[ < ( − 1), ( −1) , ( −1)( −1) > ]
Trong đó, i là chỉ số của mỗi bản ghi của tập dữ liệu huấn luyện S, và j
là chỉ số của các thuộc tính hiện tại Theo cách đó, tập S được phân tách
thành ( M-1 ) tập con với thuộc tính đặc trưng trước khi đưa vào xử lý giảm chiều dữ liệu Với mỗi tập dữ liệu con, sẽ được Spark đưa vào một đối tượng
dạng RDD và độc lập với các tập dữ liệu con khác Quá trình phân chia các
vùng dữ liệu theo chiều dọc được mô tả theo hình 2.14.
b Phương pháp ghép dữ liệu đồng thời.
Việc tăng trưởng dữ liệu về cả khối lượng và thuộc tính đầu vào luôn làvấn đề lớn đối với mọi thuật toán bao gồm cả thuật toán rừng ngẫu nhiên,việc tăng trưởng dữ liệu dẫn đến việc thuật toán RF cũng sẽ tăng trưởng về độsâu, độ rộng của rừng Để giải quyết vấn đề tăng trưởng về khối lượng dữ liệumẫu khi huấn luyện, Spark sử dụng cơ chế ghép dữ liệu đồng thời để xử lýthay cho phương pháp lấy mẫu truyền thống Trong mỗi chu kỳ lấy mẫu, thay
vì sao chép lại toàn bộ dữ liệu mẫu, tiến trình xử lý sẽ lưu lại chỉ mục của tập
dữ liệu mẫu vào bảng Data-Sampling-Index (DSI) Sau đó bảng DSI sẽ phân
bổ lại cho tất cả các nút phụ (slave node) cùng với tập con thuộc tính(features) Các công việc tính toán xử lý trong quá trình huấn luyện của mỗicây quyết định sẽ tải dữ liệu tương ứng từ một tập con thuộc tính thông quabảng DSI Do đó, với mỗi tập con thuộc tính sẽ được sử dụng lại một cáchhiệu quả và độ lớn của tập dữ liệu đầu vào khi huấn luyện sẽ không bị ảnhhưởng tại mỗi node, trong khi quy mô của RF vẫn được mở rộng
Trang 40hình RF là k Cụ thể, sẽ có k lần lấy mẫu cho tập dữ liệu huấn luyện và N chỉ
mục dữ liệu được ghi lại trong mỗi lần lấy mẫu Một ví dụ về bảng DSI củaPRF được trình bày trong Bảng sau:
Thứ hai, bảng DSI được sử dụng đồng thời cho tất cả các nút phụ
(slave node) của cụm Spark với toàn bộ các thuộc tính con Trong quá trình huấn luyện tiếp sau, độ đo Gain Ratio được sử dụng để tính toán và đánh giá
sự khác biệt giữa các cây có cùng thuộc tính, sau đó chuyển lại giá trị đó chocác slaves nơi đang lưu trữ các tập dữ liệu con
Hình 3.4 Quá trình xử lý ghép dữ liệu đồng thời của PRF
Thứ ba, mỗi Gain Ratio sẽ được tiến trình Spark sử dụng để truy cập các chỉ mục dữ liệu liên quan từ bảng DSI và lấy các bản ghi thuộc tính từ cùng