hướng nghề nghiệp của Lương lai để đầu tư cho những hạng mục đó, hoặc Việc xây dựng và ứng dụng nên tảng Big Data nếu được khai thác hiệu quả sẽ đem lại những lợi thế cạnh tranh và hi
Trang 1ĐẠI HỌC QUỐC GIÁ HÀ NỘI
'TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
TIOÀNG ANII 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 DƯA RA CHÍNII SÁCH
KITUYEN MẠI VẼ SẢN PHẨM VÀ THEO PHẦN KHÚC
KTIACTI TANG
Ngành: Công Nghệ Thông Tín
Chuyên ngành: Khoa Học Máy Tính
Mã Số 8480101 01
LUAN VAN THAC SI CONG NGHE THONG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS TRẢN TRÚC MAI
TS NGUYEN DÌNH HÓA
Hà nội — 2020
Trang 2LOI CAM ON
Trước tiên tôi xin đành lời cảm ơn chân thành va sâu sắc dén thay giáo,
‘T'S ‘Tran ‘Trice Mai, người đã dịnh hướng về mục tiêu và cách thức thực hiện dễ tải TS Nguyễn Đinhllỏ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ành nhiê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ông nghệ
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 diễu kiện tốt nhất cho Lôi
trong suốt quá trình học tập, nghiên cứu tại trường
Ding thời tôi xin cảm ơn tất cả những người thân yêu trong gia đình tôi
cùng toàn thể bạn bẻ những người đã luôn giúp đỡ, động viên tôi những khi
vấ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ại Irung
Tam Phân Tích Dữ I.iêu — Victiel, đã giúp đỡ, tạo diễu kiện thuận lợi cho tôi học tập và nghiên cứu chương trình thạc sĩ tại Dại học Công nghệ, Dại học
Quốc Gia Hà Nội
tờ
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 “PHAN
TICH HANH VI SỬ DỤNG DỊCH VU VIEN THONG CUA KHACH
HANG DUA TREN THUAT TOAN PHAN CUM DUA RA CHINH SACH KHUYEN MAI VE SAN PHAM VA THEQ PHAN KHUC
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ại
củ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 gó 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ịa 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
Chương2: C&ng eu, nén ting, thuật toán sử dụng và img dung Phân tích dỡ liệu 9
213 Cáo ứng dung trénnén ting Apache Hadoop - 14
2.1.7 SPARK, nénting công cụ và ứng dụng - - 20
2.2 Giới thiệu về học máy
2.2.1 Một số Khái niệm cơ bản
2.2.2 Cáo vẫn để trong quá trình thục hiện để tài
Chương 3: Spark và giải thuậtrừng ngẫu nhiễn song song (Parallel Random Forest -
3.2 Giải thuật xử lý sơng song rừng ngẫu nhiên cho đữ
321 Si ưu hỏa xử lý đữ liệu đồng thời
3.2.2 TẾi uu hóa xử ý tiến trình đồng thời
3.2.3 Phân tích phương pháp xử lý task đồng thời
3.3 Kmeans tối tru hỏa xử lý Kmeans với Spark - - 52
Ghương 4 — Triển khái thực nghiệm - - 57
4.1 Co sé ditéu Khach hang 360 d6 0 cccsssussssnssisitnsisinensinenmnenaie SP
42 Môhùuhứng dụng
4.2.2 Lựa chọn ngẫn nhiên các thuộc tỉnh và đánh giá -
4.2.3 Thực hiện huân luyện đữ liệu với mô hình Parallzl RandomEForest 67
43.1 Đảnh giá thời gim xửlý với nhóm đữ liệu - - 73 4.3.2 Đánh giá thời gian xử lý với từng cựm - 73
Trang 5DANH MỤC HÌNH VẼ
Ilinh 2.3 Ludng ghi dã liệu trén HDFS 18
Hình 2.4 A46 hinh Map-Reduce - fone : 19
Hình 2.6 thành phần của SparE ` sào 22
Ilinh 2.8 Cơ chế hoạt động của SparE và RDD sxeeeroo.275)
Ilinh 3.1 Dd thi vòng DAO được hình thành khi xử lý đữ liệu : song song trén
Ilinh 3.2 Quả trị inh 3 xây dựng thudl todn ring ngow nhiên RandomPorest 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
1lình 3.4 Quả trình xử? ghép đữ liệu đồng đời của PRIn "¬ AD
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âu quyết định của PRF 46
Hình 3.7 Hình dạng cụm dữ liệu được khám pha béi k-means 53
Ilinh 3.8 Thudt tadn Kmeans trong Spark 54 Hinh 4.1 Quả trình kết hợp K-Means v4 RandomForest 60
Hình 42 7ÿ lệ độ đo theo ROC của cúc lập Irain, lest va validation 69
Hinh 4.3 Important Feataures vi “ " "¬ FO
Hinh 4.4 ROC - Receiver operating characteristic - 71
Hinh 4.5 Cumulative Gaim - 71
Hình 46 7ÿ lệ dộ chỉnh xác trưng bình c của các mô 6 hinh o et 2
11inh 4.7 Phương pháp đo lường kết qua trong thực lê 74 Hình 4.8 So sánh tỷ lệ triển khai thực tế 1G và MHO 75 Ilinh 4.9 So sánh tỷ lệ triễn khai thực té MHO va HO - 76
Trang 6DANH MỤC BẢNG
Bang 3-1: Vi du về DSI cla PRT -
Bảng 4-1: I3anh mục thuộc tỉnh đánh giá xây dựng C360
Bảng 4-2: Danh mục thuộc tỉnh được sử đụng
Bang 4-3: Giá trị DaviesBouldin
Bang 4-4: Kết quả phân cụm -
Bảng 4-5: Phân nhóm khách hàng trên 40 tuổi và đưới 40 tui
Đăng 4-6: So sánh tỷ lệ Accuracy giữa Drceision, Rccall
Bảng 4-7: Sơ sánh thời gian chạy giữa KÌNN vả PRF
Trang 7Chương1: Giới thiệu
'Irong thời đại ngày nay, để phát triển một doanh nghiếp, ngoải vấn va
nhân lực, “đữ liệu” (đata) được col là nguẫn lực không, thể thiểu được Ai cũng
đã từng ngạc nhiễn nhận thay khi mua sắm trực tuyến trên các rang thương
mai dién tir nhu 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 va phù hợp với nhu cầu của bạn
Vi dụ khi xem điện thoại, trang mua sam Luc tuyến sẽ gợi ý cho ban mua 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
Bi an ding sau các trang web thông minh này là mọi sự chảo mời sản phẩm đều đựa trên các nghiên cứu về sở thích, thói quen của khách hàng cũng như 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 kinh doanh của doanh nghiệp? Thứ nhất, dữ liệu khẳng lồ về khách hàng có thể có
từ cáo thông tm ma 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ể dược
sắm của mình Hơn thể nữa, ở tầm ngành vá vĩ mô, ứng dụng đữ 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
aL
giảm chỉ tiêu, kích thich ting truémg kinh té thâm chí lả ra phương án phòng
ngửa trước một dịch bệnh nảo đó
hướng nghề nghiệp của Lương lai để đầu tư cho những hạng mục đó, hoặc
Việc xây dựng và ứng dụng nên tảng Big Data nếu được khai thác hiệu
quả 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 va các điều kiện nhằm ứng dụng Big
Data cing với phân tích dữ liệu để sử dụng nguồn lải nguyên hợp lý và tối đa
hóa doanh thu cũng như đưa các mục tiêu kimh doanh gắn liền với hành vì
7
Trang 8khách hàng, nhằm mang lại cho doanh nghiệp phương án kinh doanh hiệu quả 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 an để đưa đoanh nghiệ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êu
kinh doanh đề hoàn thiện hơn các chỉnh sách, tối đa hóa lợi ích cho người dùng
và tăng trưởng doanh thu bền vững cho doanh nghiệp
Với đề tài “Phân Tích Ilành Uì Sử Dụng Dịch Vụ Liễ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”
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ài
nguyên đặc biệt — Big Data Sử dụng các công cụ khai thác Big Data, cde cong
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ý đữ liệu lớn như Spark, ⁄eppelin (Spark MII.), ứng dụng
hệ khuyến nghị, hoc máy và các kỹ thuật phân tích hành vi khách hàng nhằm
đưa ra kết quả phủ hợp nhất với từng nhóm đối tượng khách hàng sử dụng dich
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 co ban phục vụ cho nghiên cửu của
đề tải, Bíp Data, các công cụ dược sứ dụng trong quá trình thực hiện dễ 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ử đụ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ực hiện Tính ứng dụng khi sử dụng thư viện Spark ML va các điểm ưu việt của Spark khi sử dụng để xây dựng và ứng dụng cho giải thuật rừng ngẫu nhiên
song song
Chương 3 sẽ trình bảy về quá trinh 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ết
quả đạt được và định hướng nghiên cứu tiếp theo.
Trang 9Chương2: 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 tang
Với sự xuất hiện liên tục của nhiễu phương thức phổ biến thông tin mới,
củng sự gia tăng của công nghệ điện toán đám mây va Internet van vat (IoT),
dữ liệu không ngừng tăng lên với tốc dộ cao Quy mô dữ liệu toản cầu liê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 trong hơn bao giờ hết Tổn tại một lượ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ạnh những lợi ích
rõ ràng Do nhu cầu kinh đoanh và áp lực cạnh tranh, hầu hết mọi đoanh nghiệp
đều có yêu cầu cao về xử lý đữ 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, đữ liệu lớn nắ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áo nhau ở hàng trắm hoặc hàng nghin cấp, trong khi mỗi một trong số chúng có thể chứa một íL thông tin Vẫn để thứ hai là chọn các kỹ thuật thích hợp có thể dẫn dến hiệu suất phân loại tốt cho tập đữ 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 đữ liệu quy mô lớn cũng đã thu hút nhiề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 đự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 đữ liệu
2.1.1 Big Data
Khái niém Big Data
Big Dala (Dữ liệu lớn) lá thuật ngữ mô tá quá trình xử lý dữ liệu trên
mộ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 Bịp
lau 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 đữ 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
9
Trang 10chính xác này số giúp doanh nghiệp dưa ra dác quyết định giúp từng hiệu quả sản xuất, piẫm rủi ro và chỉ 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 trang
web mạng xã hội, những bức ảnh và video kỹ thuật số được đưa lên mạng, đữ liệu giao dịch của các hoại động mua trên mạng — dưới mọi hình thức
khá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
Bìg Data là thuật ngữ ding để 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í đữ liệu truyền thống khá có thễ nào
đảm đương được Bing việc tổng hợp một lượng thông tin lớn từ các nguồn
khác nhau khiến cho Big Data trở thành một công cụ Tấ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 va 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 khia
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, viđco, âm nhạc trên Internct |6], gầm các dữ liệu thu thập Lừ gác
hệ thống cung ứ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ệu của khách hàng ở các ứng dụng thông mình 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ụng khai 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 va huấn luyên được điễn ra liên tục [7] Do các đữ 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 nhau nên khối lượng dữ liệu này là rất lớn (Big) LIiện nay,
Big Data được đo lường theo đơn vị Terabytes (TH), Petabytes (PH) vả
Trxabytes (ID) Có thể đễ dàng lẫ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ỗi giờ, dữ liệu nhập vào tước tính hơn 2,5 PĐ, Eacebook có hơn 1.9 tỷ người dùng dồng thời, cỏ hàng trãm server xử lý và
1ưu trữ dữ liệu |8J 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ứ bai của Big
TData là công nghệ (technology) Công nghệ thường được thiết kế và hình thành
một hệ sinh thải từ đướ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ạnh nhất hiện nay phải kế đến Hadoop với +khả năng xử lý dữ liệu có thể được tăng lê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á trong bắt kỳ ứng dụng lìg Data nao Yéu
tế nhận điện thử ba của Big Data 14 quy mé dif liéu [ién nay vẫn chưa có câu
10
Trang 11trả lời chính xác cho câu hỏi đữ liệu thể nào gọi lả lớn Theo ngầm hiểu thi 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ẽ dược xế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êng mình đã trở nên phổ biến Chẳng hạn, như trang bán hàng trực tuyén eBay thi
xử dụng hai trung tâm đữ liệu
những truy vẫn, tìm kiếm, để xuất cho khách hàng cũng như thông Lin về hàng
hóa của mình Hay nhà bán lễ online Amazon.com phải xử lí hàng triệu hoại động mỗi ngày cũng như những yêu cầu từ khoăng nửa triệu dối tác bán hang
i dung lượng lên đến 40 petabyLe để chứa
'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],
You Iube hay Google thi phải lưu lại hết các lượt truy vẫn và video của người
dùng cùng nhiễu loại thông tin khác có liên quan 'Iheo kết quả khảo sát được
thực hiện bởi Qubole - công ty hàng đầu về cung cắp giải pháp, nền tảng quản 1í đữ liệu hạ tầng đảm mây phục vụ phân tích - và bởi Dimensional Research - một tê chức nghiê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ông nghệ 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ợi nhiều nhất từ Big Data Qua đó, thấy được là mục đích khai
thác Big Data của
chăm sóc khách hang, phân tích đữ liệu khách hảng dễ phát triển sản phẩm,
nhà cung ứng hàng hóa, địch vụ toàn câu là hướng đến
dịch vụ; ứng dụng thông mình dễ tăng trăi nghiệm của khách hàng vá giữ chân
khách hang khi su 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 kinh doanh Với các công cụ phân tích, đặc biệt là công cụ phân tích du báo (Predictive Analytics) và khai thác dữ liệu (Data mmining) [1 9], Bịïg Data giúp các doanh nghiệp đo lường, phân tích các vấn đề liên quan đến
sin phẩm, phát hiện các cơ hội và nguy cơ rủi ro, đồng thời, dự báo đoanh thu
từ hoạt động kinh doanh hàng ngày
Big DData có thể bao pm 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 địch của hệ thống tài chính đoanh nghiệp, các đữ liệu kế toán, thông tín giao địch của khách hảng và đoanh
nghiệp.
Trang 12Dữ liệu simh tự động hoặc do cảm biết: Bao gồm dữ liệu thông tm khách
hàng sử dụng dịch vụ, lịch sử truy cập các trang web, các dữ liệu ghi lịch sử
thiết bị sử dụng
Dữ liệu mạng xã hội- bao gồm các đữ 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
Dặc điểm của Big Data
Ba đặc điểm chính của Big Data bao gềm Dụng lượng (volume), Lốc độ
(velocrty), Tỉnh đa dạng (variety) I2ung lượng của I3ữ liệu lớn đang tăng lên
mạnh mẽ từng ngảy [10] Theo thông tin được Google công bố, cứ mỗi 1 giây,
§7000 từ khóa tìm kiếm được thực hiện, hàng petabyte đữ 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 đó đữ 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ất hơ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ệu liên tục
được bổ sung với tốc đồ nhanh chong Vé Tinh da dang (Varicty) của dữ liệu, việc da dạng hóa các nguẫn dữ liệu dầu vào, từ đữ 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 đữ liệu dạng giao dị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-generated
đata) có số lượng nhiều hơn rất nhiều so với đữ 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 đến
Potabyles, Cach day 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 dinh giả trị cần thiết từ tập dữ liệu lớn mới là vấn dễ cốt yếu
Tốc độ xử lý đữ 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ấp nhận
được với người dùng Trong việc xử lý đữ liệu lớn ta luôn cần quan tâm đến
Trang 13video, edu trúc dữ liệu phức tạp khác Big Dals có thể xử lý đữ liệu có cấu trúc, phi cầu trúc và bán cấu trúc
Dể đáp ứng được về các tính chất đó của Big Data, các công ty lớn trên
thế giới như Amiazon, Google, FaceBook đều sử đụng nên ting Hadoop lam
công cụ lưu trữ vả xử lý đữ liệu
2.12 Giới thiệu về Hadoop
Apache Hadoop | L1| là một (ramewerk cho phép xứ lý phân Lắn một Lập
dỡ liệu lớn qua cụm (cluster) các máy tính bằng việc sử dụng mô hinh lập trình
đơn giản Được thiết kế để có thể giãn nở thực hiện trên một đến hàng nghì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 Apache Hadoop
là thay vỉ thiết đặt cơ chế sẵn sàng cao (Hiph Availability - HA) bằng phần cứng thi bẩn thân Hađoop được thiết kế để phát hiện và quần lý lỗi tại tầng img
dung, do dé sé đưa ra dich vụ có tính sẵn sảng cao IIA tại cụm các má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 pồm một hệ thẳng file
phân tán Hadoop I2istributed Filesystem (HI2F§) và một layer để tính toán theo
mé hinh xit ly Map Reduce Hadoop 1a mét open source cho phép xt ly dit ligu
theo lô và có khả năng xử lý khối lượng dữ liệu cực lớn
Iladoop str dung một cụm các server thông thường để lưu trữ, tính toán
Vide inh todn trén Hadoup Distributed Eilcsystem (HDES) được Lhực hiện một
cách song song và trừu tượng với các develeper giúp họ tránh được việc lập
trình mạng và xử lý bài toán đồng bộ phức lạ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 đữ 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ột cách mạnh
mẽ
Hadoop bao gồm những module sau:
Hndoop Common: Các liên ích cơ bản hỗ trợ Hadoop
Hadoop Distributed File System (HDFS™): Hé thang file phan tan cung cấp khả năng truy vẫn song song tối đa hóa theo dường truyền truy cập
bởi ứng dụng
13
Trang 14Hadoop YARN: Framework quan ly Map lịch tác vụ và tài nguyên trên cum
Hadoop MapReduce: Hệ thông YARN-based để xử lý tập đữ liệu lớn
2.1.3 Các ứng dụng trên nền tảng Apachc Hadoop
Apache phát triển một số ứng dụng để việc sử dụng MapReduce một cach dé dang hơn đồng thời hỗ trợ việc ghi và lấy dữ liệu trên IIDTS được đơn giãn Sau đây là một số ứng dụng thông dụng chúng ta cần quan tâm đến
Apache Hive
11ive tạo ra một cơ sở dữ liệu quan hệ dạng trừu tượng cho phép các
developer có thể truy vấn đữ liệu bing SQL Thực chất đây là việc thi hành
mộ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 dang
tồn tại trên HIĐFB và quan lý các bản ghi được trích xuất khi chay mét query
Bản thân dữ liệu trên dĩa không thay đổi mà chỉ doc lay ra tai thoi diém query
Các câu lệnh HiveQL được đị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 dé
Apache Pig
Gidng nhy Hive, Apache Pig dược tạo ra dé đơn giản việc sứ dụng MapReduce job, mà không cần thiết phải viết Java Code Thay vào dó, người
dùng sẽ việt các job xứ lý dữ liệu trên ngôn ngữ high-level script ma Pig da
xây dựng Trong trường hợp cần thao tác xử lý đữ liệu đặc biệt mà Pig chưa hỗ
trợ chúng †a có thể hoàn toàn mé réng Pig script bang Java
Apache Sqoop
Việc chuyển đổi dữ liệu từ đữ liêu quan hệ sang đữ liêu trên Hadoop là
một trong van dé quan trọng và phố biến hiện nay Sqoop viết tắt của “SQL to Hadoop” 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ở đữ liệu sử dụng IDBC driver Sử dụng MapReduce, Sqoop thực hiện các hoạt động một cách song song mà không cần phải viết code Sqoop hỗ trợ các plugin cho timg loai database cu thể cung cấp các đặc tính cơ bản cúa hệ quản
trị cơ sở đữ liệu quan hệ đó lliện nay Sqoop có hỗ trợ sẵn các khai kết nổi
14
Trang 15connoclors (hỗ trợ trực tiếp) cho MySQL va PostgroSQL và kèm theo một số connector free cài đặt thêm dễ hỗ trợ Teradata, Netezza, SQ1 server và Oracle
Apache HBase 1a co sở dữ liệu phân tan (non relational), độ trễ thấp
được xây dựng trên nền HDFS HBase đưa ra một mồ hinh dữ liệu linh hoạt
có các thuộc tính scale-out với AFIrất don giản Dữ liệu trên IIDase được lưu
trữ dưới dạng bán uột (semi-calumnar) phân chia bởi các hàng trong các region
Các bằng trên HBase có thể lên tới hàng trăm terabyte hoặc một số trường hyp
lên đến pelzbytes Hiện nay, HBasc được sử dụng để phục vụ một khổi lượng
lởn dữ liêu trong cdc hé thang real-time
Apache ZonKeeper
Apache ZooKceper hé tra cac Linh ning cla hé théng phan tán Trong
thực tẾ nhiều dự án sử dụng Hadoop có sử đụng ZooKecper để hỗ trợ các tính năng cần thiết cho hệ thống phân tán (lcadcr clection, locking, group
membership, service location, config-uration services)
15
Trang 16Apache HCatalog
Apache HCatalog 1a mét dich vụ cung cap kha nang chia sé schema va các dich vụ truy cập dữ liêu giữa các ứng dung 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] la mét hé théng file phan
tá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à HDES
có khả năng chịu lỗi cao (fault-tolerant) và được thiết kế để deploy trén cac phan cứng rẻ tiền HDES cung cấp khả năng truy cập high throughput tir img
dụng và thích hợp với các ứng dụng có tập dữ liệu lớn
HDFS Architecture
Metadata (Name, replicas, .):
/home/foo/data, 3,
Metadata ops”
Hinh 2.1 Kién tric HDFS
HDES có kiến trúc master-worker, (Hinh 2.1) Một cum 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 HDES bao gồm hai loại nút (node) hoạt động thoo mô hình nút chủ - nút thợ (master-worleer)
Một cụm HDES có l nanenode (master nút chủ)
MMột cựm TIDES có một hoặc nhiều các datanode (worker - nút thợ}
Namenodc quản ]ÿ các namespacc fïlesystem Nó quản lý một filesystem
tree và các metadata cho tất cả các file vả thư mục trên tree Thông tin nảy
được lưu trữ trên đĩa vật lý đưới dạng không gian tên ảnh và nhật ký (edit log) Namenode còn quản lý thông tim các khối (block) của một tập tin được lưu trên những đatanodes nào
HDFS đưa ra một không gian tôn cho phớp dữ liệu được lưu trên tập tin
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 lập các DatzNodc Namenode thực thị các hoạt
động trên hệ thống quản trị không gian tên tập tin như mở, đóng, đỗi tên tập tin va thu muc Namenode con quyết định việc kết nối các khối với các
DataNode Các DataNode có tính năng xử lỷ các yêu cầu về đọc ghi từ máy
khách Ngoài ra các I3ataNode 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 NamoNode va DalaNode 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ều
hanh GNU/Linux HDFS duoc xây dựng trên ngôn ngữ Java nên bất kỳ máy
nảo hỗ trợ Java đều có thể chạy phần mềm thực thi NameNode và DataNode
2.15 Đọc ghi dữ liệu trên HDES
a Doc dữ liệu
Với khối đữ liệu (block) LD va dia chi IP đích máy chủ (host) của
IDatanode, máy khách (client) có thể liên lạc với ác I2atanode còn lại để đọc
cá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ối
trong file được đọc và máy khách đóng luông đọc file trực tuyển
Trang 18Namenode filename: /user/esanmer/foo.txt,,
as
Hinh 2.2 Ludng doc dit ligu 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
Hình 2.3 Luông ghỉ dữ liệu trên HDFS
18
Trang 19Việc ghi dữ liệu
"Trong /fònh 3.3 ban dầu, máy khách gì
dung Hadoop FileSystem APIs Mét yéu cầu được gửi đến namenode để tạo
ẽ phức tạp hơn việc đọc đữ liệu đối với hệ thông HDES
yêu cầu dễn tạo một file bằng việc sử
tập tin metadata nếu user có quyển tạo Thông tin Metadata cho tập tin mới đã
được tạ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ình trả 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é ghỉ đữ liệu Ở mức API, một đổi tượng Java là
siream 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 namonodc để yêu cầu mội tập datanodc phục vụ cho việc sao lưu đữ 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 dến datanode dầu
tiên lrơng danh sách Datanodc dầu tiên đỏ sẽ kết nổi lần lượt dến các đatzmode
khác Các gói dữ liệu dược ghi dần vào các datanode Mỗi datanode sẽ phân
hồi đữ liêu ghi thảnh công hay không Quá trình nay kết thúc khi toàn bộ các gói đữ liệu đã được lưu tại các khối (leck) 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ý đữ liệu, MiapReduee sẽ chia ra 2 giai đoạn: giai đoạn Miap vả giai đoạn
Reduce CA hai giai doan này đều có đầu vào và đầu ra ở đạ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 dó là hàm chức năng Map và hàm chức năng Reduce
\ ith all 3,4)
Hinh 2.4 Mé hinh Map-Reduce
Về mặt định nghĩa thuật toán, tạ có thể mô tả Map-Reduce như sau:
19
Trang 20Input: dit ligu dưới dang 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 nhan dau 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">
‘The overall MapReduce word count process Input Spliting Mapping Shufflng Reducing Final result
Hình 2.5 Cơ ché Map-Reduce
'Ví dụ với hình mô tả ở trên thì Map trả về danh sách: <Bear, 1>, <Bear, 1> còn
Reduce nhan kết quả trên và trả về <Bear, 2>
2.17 SPARK,nền tảng công cụ và ứng dụng
Hadoop là một nền tang đám mây nổi tiếng được sử dụng rộng rãi trong khai thác dữ liệu Trong phạm vi ứng dụng khai phá dữ liêu, khai thác tiêm năng dữ liệu lớn, một số thuật toán học máy đã được đề xuất dựa trên mô hình MapReduce Tuy nhiên, khi các thuật toán này được triển khai dựa trên
MapReduce, các kết quả trung gian thu được trong mỗi lần lặp được ghi vào
Hệ thống tệp phân tán Hadoop (HDES) và được tải từ đó Điều này tổn nhiều
thời gian cho các hoạt động I/ O của đĩa và cũng tốn nhiều tài nguyên để truyền
thông và lưu trữ Apache Spark[24] là một nền tảng đám mây tốt khác phủ hợp
cho khai thác dữ liệu lớn So với Hadoop, mô hình Tập dữ liệu phân tán linh
hoat (RDD) và mô hình Đô thị vòng có hướng (DAG) được xây dựng trên
khung tính toán bộ nhớ được hỗ trợ cho Spark Cho phép lưu trữ một bộ nhớ
20
Trang 21cache dữ liệu trong bộ nhớ và thực hiện tỉnh Loá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 gian hoạt
động 1/ O của đĩa Do đỏ, Spark phủ hợp hơn cho việc khai thắc dữ liệu với
tinh toán lặp di lặp lại Thuật toán Rừng ngẫu nhiên (RE) [14] là một thuật toán
khai thác dữ liệu phù hợp clo dữ liệu lớn KE là miột thuật toán học tậ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ợp cho việc xử
ly song song héa Apache Spark Mllib[22] di song song héa thudt toin RF
(được gợi là 8park-MLRT) dựa trên tối ưu hóa song song dữ liệu để oải thiện
hiệu suẤt của thuật toán
a Khái niệm Apache Spark
Theo [24], Spark JA mat img dụng mã nguồn mở dược xây dựng dược
xây dựng đễ xử lý dữ liệu phân tán, nhằm tăng tốc độ xử lý, đễ sử dụng và linh
hoạt Sử dụng để xử lý đữ liều lớn một cách nhanh chóng, bằng cách cho phép
thực hiện tính toán trên cụm tạo ra khả năng phân tích đữ liệu tốc độ cao khi đọc và ghi đữ liệu Tốc độ xử ly cha Spark có được do việc tỉnh toán được thực hiện cù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 (n-memories) hay thực hiện hoàn toàn trên RAML Spark
hỗ trợ nhiều ngôn ngữ lập trình được sử đụng rộng ri (Python, Java, Scala va
R), bao gam các thư viện cho các tác vụ da dang 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 linh xách tay đến một cụm hàng nghìn máy chủ Điều này hễ trợ cho Spark trở thành một hệ thông dé ding bắt đầu và mở rộng quy mô để xử lý đữ 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 đử liệu từ
các nguồn khác nhau đồng thời thực hiện ngay việc xứ lý trên đữ liệu vừa nhận
được (Spark Streaming)
Spark không có hệ thống Iilc của riêng mình, nó sứ dụng hệ thống file khác như: HIDE8, assandra, S3, Spark hỗ trợ nhiều kiểu dinh dang file
khá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
Dé chay nhanh hon, Spark cưng cấp: Mô hinh tối ưu các tính toán đồ thị một cách tủy ¥ (optimize arbitrary operator graphs) II6 tro tinh toan tai bé nhớ
trong Spark cung cấp bỗ API hỗ trợ các ngôn ngữ Sualar, Java, Dython Spark
21
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 Tre) hay các thư viên phân cum
(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 hop bat 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 được chia 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ác nhau của
một cụm máy chủ (cluster)
RDDs có thể chứa bất kỳ kiểu đữ liệu nảo của Python, lava, hoặc đối
tượng Scala, bao gồm các kiểu dữ liêu do người dùng định nghĩa Thông
thườ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ính toán
Trang 23Cung cấp khả năng tính toán trên bộ nhớ RAM và cả bộ dữ liệu tham chiếu
trong các hệ thông cho phép mở rông bô nhớ vật ly (external storage)
Spark SQL: là một thành phần nằm trên Spark Core, gidi 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: tan 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ực hiệ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ên các
mini-batches dữ liệu đó
MLIib (Machine Learning Library): la mét framework machine learning
phan tan trén Spark tan dung kha nang tinh toan tốc độ cao nhờ distributed
memory-based cua kién trie 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
Worker Node Executor | Cache
SparkConlext #———>_ Cluster Manager
một s6 loai Cluster Manager (cdc trinh quan ly cum chay standalone ctia Spark hoặc YARN 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ố
23
Trang 24xecutor 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ụ Lính toán,
Tưu trữ đữ liệu cho ứng dụng), sau dó sẽ gửi mã của ửng dụng (được gửi từ
8parkContext) tới các Executor này Cuối cùng SparkContext sẽ gửi các tắc vụ
tới các Executor để chạy
Ưu điềm:
Mỗi ứng dụng sẽ được chạy trong một cxccutor riêng biệt, gác táo vụ sẽ
được chạy da luồng rnnltithread Các task của các ứng dụng khác nhau sẽ dược chạy trong các TVMI khác nhan, tách biệt được vì
việc thực thi ứng dụng Nhược điểm ở dây là dữ liệu của các ứng dụng khác nhau không được chia sẻ trừ khi ghi vào một bộ nhớ bền ngoài
ộc lập lịch chạy ứng dụng và
Spark độc lập với các trình quản lý cụm (chỉ sần nó có thể liên hệ được
với tiến trình executor), có thể tích hợp được với nhiều trình quản lý cụm khác
nhau (YARN, MESOS .)
Các trình điều khiển lập lịch được đặt trên các cum được dit trong cing
mạng LAN với các Nút (Nodes), giúp cho quá trình điều khiển sẽ nhanh và tin cay hon
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ính Spark
Apache Mesos — co ché quan by cum co ban hé tro chay Spark, Hadoop MapReduce và các ứng đựng giao tiếp ngầm
lladoop YARN_ quản lý tải nguyễn trên Ilađoop
e Spark vs Hadoap MapReduce
Theo 27, Về cơ chế hoạt dộng của Map-Rcducc: đữ liệu đầu vào dược
đọc từ HDES (ứng dựng phụ trách việc lưu trữ trong Hadoop), xử lý bằng các
thao tác chỉ dịnh, dữ liệu dầu ra được phi vào HDES, dữ liệu tiếp tục được đưa lên, thao tác tiếp theo được thực hiện, dữ liêu đầu ra tiếp tục ghi vào HIDES chuỗi các bước |đọc - xử lý - ghi| đó dược lặp cho dến khi hoàn thành tác vụ
24
Trang 25Vị dữ liêu đầu vào được chia thành các khối (block) độc lập với nhau, các tiề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ều step, vì mỗi
step cần thiết phải ghi đầu ra dữ liệu vào HDES trước khi bước tiế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 Disl‹ vốn có hiệu suất
LO không cao Bên cạnh đó là việc thực hiện viết code với Map-Reduce co
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 déng cua Spark: khắc phục những tồn tại của Hadoop
MapReduce, Spark dua ra mét khai niém mdi RDD - Resilient Distributed
Dataset dé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 day
lên lần duy nhất, các bước thực hiện biến đổi, xử lý dữ liêu đầu và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 đó được diễ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 IO cao từ đó có thể giảm thời gian thực thi nhỏ hơn 10-100 lần Hadoop MapReduce
25
Trang 26f Apache Zeppelin trén nén tang Spark
Là một loại trình thông dinh chú có thể chạy trên nhiều nền ứng dụng
khac nhau nhw Spark Core; Python hay NoSQL Viée str dung Spark MLib
Machine Learning cling voi Zeppelin (Spark Interpreter for Zeppelin), cho
phép thực thi các thu viéc Machine Learning mét cach 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ấn luyện các mô hình học máy cũng như giảm thời gian huấn luyện
af = sqlctx.1oad(*/path/to/data*) Saisie ative vaso
labels + predictions
Apache Spark helps organize data science workflows
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ọc má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ác thà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 cho quá 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áy và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 tang (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
26
Trang 27Học máy (machine learning) là một ngành khoa học nghiên cửu, xây
dự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ừ
di 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
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ề chỉ 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 suporviscd, học
ra kết quả tối ưu là điều c
không giám sát unsupervised, học bán giảm sát semisupervised vả học tă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ủa minh
được đánh giá là một công cụ mạnh, phổ biến và đặc biệt thịch hợp cho khai
thác dữ liệu lớn nói chung và phân lớp đữ liệu nói riêng Có thé ké ra những
; quyết dinh như: xây dung tương dối nhanh; don giản, dễ hiểi
â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,
ưu diễm tủa cã
Hơn nữa cáo cây có thể dễ dàng được chuyển đỗi sang các
việc phân lớp dựa trên cây quyết dịnh dạt được sự tương tự và dôi khi 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ục tiê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ể Lương tác tới tập khách hàng chính xác và
mang lại tỷ lệ cao nhất
Tỉnh toán mội hàm /”:.Ý =3 {đúng, sai} sao cho /?(x) = /ữ%), V&eX
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
27
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ác
thể hiện, các đối tượng hay các ví dụ
Mỗi phần tử § © X được biểu diễn bởi một tập gồm n thuộc tính:
S=G1, §2 , Sn)
Một đối tượng S cũng có thể được biểu diễn kết hợp với lớp liên thuộc
của nó hay nói cách khác có thể được biểu diễn dưới đạng nhãn: z = (S, c)
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 gia tri cua ham 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ệu
huấn luyên (nghĩa là các cặp đầu vào và đầu ra tương ứng) Để đạt được điều
nà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 (BinaryClassificatlon) Cây quyết định (Decision Tree)
28
Trang 29b Hục không có giám sát
Học không v6 giam sat (unsupervised learning) [20] la mat phuemg phá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án nhãn, nhằm
tìm ra một mô hình phủ hợp với gác quan sát lọc không có giảm sắ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ào thườ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 dé tao ra
xá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ến khác Hay nói cách khác khi đó ta đã chuyển từ việc học không có giám sát
sang 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ào
một phân bố xác suất trên một tập dẫu vào một cách tường minh hay không
tường minh Thuật toán Clusturing sẽ phân tích vả tìm các đặc trưng eta dit
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
dó, phân chia các cụm dầu vào mới vào từng cụm đã có sẵn thơo từng loại dặc
trưng của đầu vào
Thuật toán nảy có 3 loại điển hình:
K-Means Clustering: Phan nhóm đỡ liệu vào một số K ạm với quy luật
nhất định
Hierarchical Clustering: Phan loai theo thit bac
Probabilistic Clustering: Phân loại theo xác suất
c Học bán giám sat
Học nửa giám sát (semi-supervised learning) là một phương pháp học
máy mà đữ liệu huấn luyện là sự kết hợp của đữ liệu được gán nhãn và dữ liệu
chưa được pán nhãn
29
Trang 30Như chúng ta đã biết khi áp dụng học có giám sát thì các đữ liệu huân
luyện đã được gản nhãn Do đó sẽ thu được kết quả có độ chính xác rat cao
Tuy nhiên, khi đó ta sẽ gặp một vẫn đề rất khó khăn là khi lượng đữ 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 gan nhãn là rất đắt và việc tạo ra nhãn cho
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ấn luyện không được gán nhãn Do đó kết quả thu được có độ chính xác không
cao Tuy nhiên dữ liệu chưa được gán nhãn, có thé dễ dàng thu thập được rất nhiều Hay nói cách khác là dữ liệu chưa gán nhãn có chỉ 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ết hợ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ằng cá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 cao vừ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áp họ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ọc
má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ất
vớ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
30
Trang 31Trong quá trình thực hiện dễ 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ông
tốt, và tình huồng thứ hai là dữ liệu chưa đủ tốt Ngay cả khi đữ liệu đã được
làm sạ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 di đữ liệu dào tạo, dữ liệu
dao tao 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 đữ liệu không liên quan, Overfiting đữ liệu huân
luyén, LIndcrfitting đữ liệu huấn luyện Qua thời gian thực hiện, việc xây dựng
và bố sung đữ liệu dé loại bỏ các thuộc tính đữ liệu đư thừa, đưa thêm dữ liệu
huấn luyện đổ giảm Undrrfitting, tách tập huần luyện vá tập test nhiều lần để
tránh Overfiiing Và chọn tập đữ liệu có đặc thủ phủ hợp mang tính đại điện
dặc trưng với nhom đữ liệu huấn luyện dễ 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ợp nhất dễ giải quyết mục
bài toán Sử dụng kết hợp giữa cơ chế xứ lý của Spark, 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ải thuật sử dụng chỉ tiết sẽ được
giới thiệu trong phan 2.3, va 2.4 sé cy thể hóa về thuộc tính đữ liệu sau khi loại
bổ các thuộc tính dư thừa, không mang tính khái quát hóa và gây nhiễu cho mô
hình
31
Trang 32Chương3: Spark và giải thuật rừng ngẫu nhiên
song song (Parallel Random Forest - PRE)
Với điểm mạnh là xây dựng vả ứng dụng xử lý dữ liệu phân tán song
song cia Spark, đưa vào xử lý các giải thuật và xây dựng các mô hình học má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 tang 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 ra hiệu quả cao
stage 112 sage 19 ‘Stage 114 stage 115
Hinh 3.1 Dé thi vòng DAG duoc hinh thanh khi xir bp dit liéu song song trén
Spark UI
Giải thuật xử lý song song rừng ngẫu nhiên được tối ưu hóa dựa trên
phương pháp kết hợp giữa tối ưu hóa xử lý dữ liệu song song vả phân chia xử
lý đồng thời các luồng giao việc Đối với khả năng tối ưu hóa xử lý dữ liệu
32
Trang 33song song, cơ chế xứ lý dữ liệu theo chiều đọc, cơ chế map — reducc được sứ
dụng để tối đa hỏa hiệu quả và tái sử dụng đữ liệu, giảm được chỉ phí về tải
nguyên đo sứ dụng đỡ liệu phân nhóm nhỏ và lưu trên ram, cho phép sứ dụng
lại tậ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ến trì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ô hinh RF, một luồng giao việc dạng đỗ thị vòng có
hudng (Directed Aoyolic Graph - DAG) được tạo theo trình tự huấn luyện song
song của PRT và các đối tượng đữ liệu phân tán RDD (Resilient Distributed
TDalascts - RDD) Sau do, cac tiển trình sẽ thực thi theo trinh tu cia DAG Thém nữa, việc cải thiện độ chính xác của thuật toán xử lý dữ liệu lớn, với đữ liệu
nhiều chiều và nhiễu, dễ xuất phương án sử lý giảm chiều đỡ liều trong quá
trình huấn luyện mô hinh và gán trọng số cho thuộc tỉnh trong quá trình dự
đoán trước khi đưa vào huân luyén và xử lý sơng song Kết quả thử nghiệm và
ứng dựng mê hinh chi ra tinh ưu việt, những điểm tối ưu đáng chú ý so với các
thuật toán khác liên quan đượ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 &tập hợp con dữ liệu huắn luyện khác nhau
từ tập dữ liệu ban dầu bằng cach st dụng phương pháp lẫy mẫu bootstrap
(bootstrap sampling), va sau đó & cây quyết định được xây dựng bằng cách
huan luyện các tập con này Một tập hợp rừng ngẫu nhiên được xây dựng từ những cây quyết định nay Mai mẫu của tập đữ 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
33
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: 8 = /ƒ(x¿ 1); 1=1;2; :M),
voi x la một mẫu đại diện và y là một thuộc tính(feautre) đại diện của 5 Cụ thể,
tập dữ liệu đảo tạo ban đầu chứa N mẫu và có Mi 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 RE được trình bảy trong hình
Các bước xây dung 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 chon tir S bằng phuong phap lay mau va thay thé ngẫu
nhiên trong mỗi lần lấy mẫu Sau bước hiện tại, & tập con huấn luyện được xây
dung tao thành một tập hợp các tập con huấn luyén Spain
Đồ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 Ssøz
Soor = (OOB;; OOB, ;OOB:},
34
Trang 35Với k&N, §n OQB, ~ @ và $UOOB, — & Để 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 qua
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ỏ Š; Trong quá trình sinh trưởng mỗi
cây, zw thuộc tính của lập Š sẽ được chọn ngẫu nhiên từ tập ÈZ Trong quả trình
phan 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ể dễ
phân chia Lập dữ Hệu dã cho và chọn ra một phép thứ có giá tri Gain Ratio tốt
nhất Gain Ratio là một dại lượng dé đánh giá dệ hiệu quả của thuộc tính dùng
để thực hiện phép tách trong thuật toán dé phát triển cây quyết định Giá trị tốt
nhất sẽ được chon lam nút phân tách Quá trinh này lặp lại cho đến khi tạo ra nút lá Cuối cùng, cây quyết định được hình thành tử # tập con huấn luyện theo cùng một phương thức
Bước 3: thu thập È cây vào trong một mô hình RE
'[oàn bộ k cây huần luyên được thu thập vào một mô hình RE:
k H(, 6) = > h(x, @;), (7 = 1/2, , mỒ,
¿=1
Voi hyfx, @,) là số cây quyết định đại điện, X là lả các vectơ thuộc tính
dặc trưng dầu vào của tập dữ liệu huẫn luyện, và Ø, 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ưởng của cây
Độ phức tạp của thuật toán
Đồ phức tạp của thuật toán RF bạn dầu là 2/kM4MiogN), với k là số lượng cây quyết dịnh trong RE, A⁄ là số lượng thuộc tỉnh, Ấ là số lượng mẫu, và log
lả ngưỡng trung binh độ sâu cây của toàn bô các cây trong mô hình Irong thuật toá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à gaiwatio() với mỗi không gian thuộc tinh con dặc trưng
"theo đó, việc tỉnh toán giám chiều dữ liệu, sẽ piäm từ M xuéng cén m (m <<
M) theo dé, độ phức tạp của qua trinh huấn luyện phân lớp là
O(K(MN + mNiogN))
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
Dễ 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ộ đữ liêu phân tán linh hoạt (R1212) để đưa đữ liêu lên, phân chia và tao một
mô hình Dề thị vòng có hướng (DAG) với đề định hướng trình tự các bước xử
lý trên bộ nhớ ram, sau đó các tiễn trình xử lý được lập lịch và thực hiện các
bước theo độ thị Nén lang Spark cho phép lưu trữ một bộ nhớ cache đữ liệu
trong bệ nhớ và thực hiện tính toản và lặp lại cho cùng một đữ liệu trự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 đữ liệu với tính toán lặp di lặp lại Thuật toán Rừng ngẫu nhiên (RI) là một thuật toán khai thác đữ liệu phủ hợp cho dữ liệu lớn, là
một thuật toán học dược huần luyện sử dụng không gian con dặ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 cia Spark ML
Ung dung giải thuật Rừng ngẫu nhiên xứ lý song song (Parallel Random orcst) cho dữ liệu lớn được triển khai trồn nền tang Apache Spark Thuật toán
PRF duoc téi ưu hóa dựa trên phương pháp kết hợp kết hợp giữa tỗi ưu hóa xứ 1ý đữ liêu song song và phân chia xử lý đồng thời các luỗng giao việc Để cải
thiện độ chính xác khả năng phần loại của PRE, một phương pháp tối ưu hóa được để xuất trước quá trình sơng song Kết quả thử nghiệm mở rông cho thay
tính ưu việt của PRF và lợi thể đáng kế so với các thuật toá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 chỉ 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 du doan nhãn
36
Trang 37Thương pháp tiếp cận và xứ lý song song của PRE, kết hợp tối tru hóa
xử lý dữ liệu song song vả các tiến trình xử lý thuật toán dồng thời Xử lý đữ
liệu theo chiều đọ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 DAG của
PRT dựa theo các bước xử lý mô hình dữ liệu — sử dụng RDDs, các tiễn trình được thực lập lịch và thực thi trong các bước đã được lập sẵn thco biểu đồ DAG Việc thực hiện trên si
thời các Lác vụ giúp giảm thì
song trồn ram giữa các cụm Spark, xử lý đồng
ền, chỉ phí dọc ghi đữ liệu giữa các cụm của Spark, piúp cho cân bằng đữ liệu và tối ưu hóa thời pian xử
lý
chỉ phi dường tru)
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 cho thuật toán PRF, bằng cách sử dụng phương pháp phân chia các vùng dữ liệu theo chiều đọc và phương pháp ghép dữ liệu đồng thời — chia và gộp
Đầu tiên, căn cứ thco thuộc tính của thuật toán RE 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ý
đữ liệu, một phương pháp về phân chia dữ liệu theo chiều đọc dượ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ệu con với các thuộc tính độc lập, mỗi tập thuộc tính đó được phân bd
lại theo các cụm Spark để xử lý đồng thời theo phương pháp phân bổ đữ 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ự gia tăng quy mô của RF, phương pháp ghép dữ liệu đồng thời được
sử dụng thay cho phương pháp lấy mẫu thông thường Phương pháp tối ưu hóa
xi ly dit héu déng thời cho thấy việc giám khối lượng đữ liệu cần xử lý nhờ
vàn phần chỉa ra cá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âm giảm độ chính xác của giải thuật Việc gia tăng quy mô của PRE 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 đọc
"Trong quá trình xử lý PRE, quá trình xử lý các thuộc tinh (features) dit
liệu chiếm phân lớn thời gian huấn luyện
37
Trang 38Tập dữ liêu huấn luyện
Tuy nhiên, quá trình nảy chỉ sử dụng giá trị thuộc tính của tập huan luyé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 chỉ 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 PRE sử dụng tính độc lập củ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ụm Spark 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 đữ liệu huấn luyện 8 là N, có M thuộc tính
(features) voi mỗi bản ghi yo ~ y»¿› là số lượng thuộc tính đầu vào, y„; là
thuộc tính mục tiêu Với mỗi thuộc tính y, và biển thuộc tính Yue 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 #“S, được biểu
diễn dưới dạng:
38
Trang 39Trong đỏ, ? là chỉ số của mỗi bản ghi của tập đữ liệu huân luyện 8, và 7
1ả 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ữ
tăng trưởng dữ liệu dẫn đến việc thuật toán RE cũng sẽ tăng trưởng vẻ độ sâu,
độ rộng của rừng Dễ giải quyết vấn đề tăng trưởng về khối lượng đữ liệu mẫu
khi huấn luyện, Spark sit dung 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ộ đữ 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 Dala-Sampling-Index (DSI) Sau dé bing DST sé phan bé lai cho lẤt 6
ö nút phụ (slave nade) cùng với tập can thuộc tính (features) Các
công việc tính toán xử lý trong quá trinh huẫn luyện của mỗi cây quyết dịnh sẽ
tải đữ liệu tương ứng từ một tập con thuộc tỉnh thông qua bảng 1281 10 dé,
với mỗi tập con thuộc tính sẽ được sử đụng lai một cách hiệu quả và độ lớn của
tập dữ liệu đầu vào khi huần luyện sẽ không bị ảnh hưởng tại mỗi node, trong
khi quy mô của RE vẫn được mở rộng
Chỉ mục dữ liễu của tập dữ liệu huấn luyễn
Trang 40Maite; 5 |1|4|43|53 |5
Bảng 3-1: Ví dụ về DSI của PRF
Đầu tiên, một bang DSI duce tao để lưu các chỉ mục dữ liệu được tạo
trong tất cả các lần lấy mẫu Như đã đề cập trong Phần 2.3.1, số cây của mô
hình RE là k Cụ thể, sẽ có & lần lấy mẫu cho tập dữ liệu huấn luyện và X 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 D§I của
PRF được trình bay 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ụ (siawe
nođe) của cụm 8park 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ả tri dé cho cdc slaves nơi đang lưu trữ các tập dữ liệu con
Hình 3.4 Quá trình xử jÿ ghép dữ liệu đồng thoi ctia 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
40