KHAI PHÁ LUẬT KẾT HỢP VỚI DỮ LIỆU PHÂN TÁN DỰA TRÊN MÔ HÌNH MAPREDUCE Chương 1: TỔNG QUAN KHAI PHÁ DỮ LIỆU Chương 2: KHAI PHÁ LUÂṬ KẾT HƠP Chương 3: TỔNG QUAN MÔ HÌNH LÂP̣ TRÌNH MAPREDUCE Chương 4: ỨNG DỤNG LUẬT KẾT HỢP TRONG MÔ HÌNH MAPREDUCE
Trang 1-TRẦN THỊ LỊCH
KHAI PHÁ LUẬT KẾT HỢP VỚI DỮ LIỆU
PHÂN TÁN DỰA TRÊN MÔ HÌNH MAPREDUCE
LUẬN VĂN THẠC SĨ KỸ THUẬT
HÀ NỘI – 2014
Trang 2-KHAI PHÁ LUẬT KẾT HỢP VỚI DỮ LIỆU PHÂN TÁN
DỰA TRÊN MÔ HÌNH MAPREDUCE
Chuyên ngành: Khoa học máy tính
Mã số : 60.48.01.01
LUẬN VĂN THẠC SĨ KỸ THUẬT
NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS TRẦN ĐÌNH QUẾ
HÀ NỘI - 2014
Trang 3MỞ ĐẦU
1 Lý do chọn đề tài
Khai phá dữ liệu (Data Mining ) là một lĩnh vực khoa học liên ngành mới xuất hiện gần đây nhằm đáp ứng nhu cầu phát hiê ̣n ra những tri thức có ích , phục vụ cho công viê ̣c của con người Các kết quả nghiên cứu cùng với những ứng dụng thành công trong khai phá dữ liệu, khám phá tri thức cho thấy khai phá dữ liệu là một lĩnh vực khoa học tiềm năng, mang lại nhiều lợi ích, đồng thời có ưu thế hơn hẳn so với các công cụ phân tích dữ liệu truyền thống
Trong lĩnh vực khai phá dữ liệu , mục đích của luật kết hợp (Association Rule - AR) là tìm ra các mối kết hợp (Association) hay tương quan (Correlation) giữa các đối tượng trong khối lượng lớn dữ liệu Ứng dụng của luật kết hợp rất phổ biến trong nhiều lĩnh vực, nhất là trong kinh doanh như phân tích hành vi khách hàng , dự đoán nhu cầu của khách hàng
Mô hình MapReduce là một mô hình lập trình
giúp các ứng dụng có thể xử lý nhanh một lượng lớn dữ liê ̣u trên các máy phân tán hoa ̣t đô ̣ng song son g, đô ̣c lâ ̣p với nhau từ đó giúp rút ngắn thời gian xử lý toàn bô ̣ dữ liê ̣u MapReduce có thể chạy trên các phần cứng thông thường (commodity hardware), không đòi hỏi các server chạy MapReduce phải là các máy tính có khả năng tính
Trang 4toán, lưu trữ và truy xuất mạnh mẽ Do vậy, chi phí triển khai MapReduce sẽ rẻ hơn
MapReduce làm đơn giản hoá các giải thuật tính toán phân tán Với MapReduce, bạn chỉ cần cung cấp hai hàm Map và Reduce cùng với một số thành phần xử lý dữ liệu đầu vào Do vậy, các nhà phát triển ứng dụng phân tán có thể tập trung nhiều hơn cho phần logic của ứng dụng, bỏ qua các chi tiết phức tạp của việc phân tán xử lý
Sự ra đời của MapReduce đã mở ra cho các doanh nghiệp cơ hội xử lý các nguồn dữ liệu đồ sộ với chi phí thấp và thời gian nhanh hơn Với việc áp dụng MapReduce, Amazon có thể xử lý được các file log phát sinh trong quá trình bán hàng trên mạng, phục vụ cho việc
dự đoán xu hướng mua hàng của khách hàng, các sản phẩm đang được mua nhiều… Facebook có thể xử lý được khối lượng hơn 10 tỷ hình ảnh mà họ đang lưu trữ để rút trích các thông tin về kích thước hình ảnh, phát hiện các hình ảnh xấu
Vì những lý do trên mà tôi chọn đề tài “ Khai phá luật kết hợp với dữ liê ̣u phân tán dựa trên mô hình MapReduce” làm đề tài luận văn của mình
2 Mục đích nghiên cứu
Tìm hiểu kỹ thuật , thuâ ̣t toán khai phá luâ ̣t kết hợp
trong khai phá dữ liê ̣u
Trang 5 Nghiên cứu mô ̣t mô hình lâ ̣p trình MapReduce trong viê ̣c ứng du ̣ng vào các bài toán xử lý mô ̣t lượng lớn dữ liê ̣u Sử du ̣ng H adoop, mô ̣t thể hiê ̣n của MapReduce, cho việc phân tích dữ liê ̣u
Áp du ̣ng cấu trúc, tham chiếu các đă ̣c trưng của mô
hình MapReduce vào bài toán phân tích xu hướng khách hàng nhằm rút ra những luật kết hợp
3 Đối tượng và phạm vi nghiên cứu
Nghiên cứu khái niệm, vai trò, ứng dụng và các kỹ thuật khai phá dữ liệu
Tìm hiểu, nghiên cứu khai phá dữ liê ̣u với luâ ̣t kết
hơ ̣p và mô ̣t số thuâ ̣t toán
Tìm hiểu , nghiên cứu mô hình lâ ̣p trình
MapReduce, Hadoop
4 Phương pháp nghiên cứu
Nghiên cứu, tìm hiểu lý thuyết về các kỹ thuật khai phá dữ liệu
Tìm hiểu và cài đặt mô hình lập trình MapReduce trên nền Hadoop Sử du ̣ng ngôn ngữ lâ ̣p trình Java tích hợp Framework Hadoop trên môi trư ờng Eclipse
Nguồn dữ liê ̣u sẽ sử du ̣ng để thử nghiê ̣m là dữ liê ̣u
mua bán lẻ của khách hàng đã được lưu trữ ta ̣i siêu
thị
Trang 65 Kết cấu luận văn
Chương 1: TỔNG QUAN KHAI PHÁ DỮ LIỆU
Giới thiê ̣u tổng quan về quá trình khai phá dữ liê ̣u, các phương pháp khai phá dữ liệu , nhiê ̣m vu ̣ chính , quy trình khai phá dữ liệu
Chương 2: KHAI PHÁ LUẬT KẾT HỢP
Trình bày tổng quan về khai phá luật kết hợp và giới thiê ̣u mô ̣t số thuâ ̣t toán khai phá luâ ̣t kết hợp
Chương 3: TỔNG QUAN MÔ HÌNH LẬP TRÌNH MAPREDUCE
Trình bày tổng quan mô hình lập trình MapReduce , các thành phần , cấu trúc của mô hình này Làm quen với môi trường phân tán Hadoop trên mô hình đó
Chương 4: ỨNG DỤNG LUẬT KẾT HỢP TRONG
MÔ HÌNH MAPREDUCE
Tóm tắt lại kết quả đạt được , ưu điểm , nhươ ̣c điểm của thuâ ̣t toán và phương hướng phát triển tiếp theo
Trang 7CHƯƠNG 1 TỔNG QUAN KHAI PHÁ DỮ LIỆU 1.1 Khai pha ́ dữ liê ̣u là gì?
1.2 Quy tri ̀nh khai phá dữ liê ̣u
6 Ước lượng mẫu
7 Biểu diễn tri thức
1.3 Các phương pháp khai phá dữ liệu
1.3.1 Phát hiện các luật kết hợp
1.3.2 Phân cụm
1.3.3 Phân lớp
1.3.4 Hồi quy
1.3.5 Mô hình phụ thuộc
1.3.6 Phát hiện sự thay đổi và độ lệch
1.4 Các dạng cơ sở dữ liệu có thể khai phá
CSDL quan hệ (relational databases)
CSDL dạng giao dịch (transactional databases)
CSDL mở rộng
Trang 81.5 Phân loại các hệ khai phá dữ liệu
Phân loại dựa trên kiểu dữ liệu được khai phá
Phân loại dựa trên dạng tri thức được khám phá
Phân loại dựa trên kỹ thuật được áp dụng
Phân loại dựa trên lĩnh vực được áp dụng
1.6 Nhƣ ̃ng thách thƣ́c khai phá dƣ̃ liê ̣u
1.7 Các ứng dụng trong khai phá dữ liệu
1.8 Kết luâ ̣n
Trong chương một, luận văn đã trình bày một cách tổng quan nhất về KPDL - cụ thể là định nghĩa về KPDL và những mục đích, ứng dụng, động cơ thúc đẩy các nhà tin học chú trọng vào lĩnh vực nghiên cứu này
Trang 9CHƯƠNG 2: KHAI PHÁ LUẬT KẾT HỢP
2.1 Giơ ́ i thiê ̣u
2.1.1 Các khái niệm cơ bản
Định nghĩa 2.1: Độ hỗ trợ (support) của luật kết hợp X
Một itemsets mà tần suất xuất hiện của nó >= min_sup goi là frequent itemsets
2.1.2 Khai pha ́ luật kết hợp
2.1.2.1 Phát biểu bài toán:
- Cho một tập mục I = {I1, I2, , Im}
- Một cơ sở dữ liệu giao dịch D (n giao dịch)
- Độ hỗ trợ tối thiểu minsup và độ tin cậy tối thiểu mincof
Trang 10Tìm tập các luật kết hợp R: X Y sao cho support(XY) >= minsup và confidence(XY) >= mincof
2.1.2.2 Giải quyết bài toán
Tìm tất cả các tập mục thỏa mãn độ hỗ trợ tối thiểu minsup cho trước, hay tập mục phổ biến
Tìm tất cả những luật kết hợp từ những tập mục phổ biến thỏa độ tin cậy tối thiểu mincof cho trước 2.1.2.3 Phân loại luật kết hợp
Luật kết hợp nhị phân
Luật kết hợp mờ
Luật kết hợp nhiều mức
2.2 Mô ̣t số thuâ ̣t toán khai phá luâ ̣t kết hơ ̣p
2.2.1 Thuâ ̣t toán khai phá luật kết hợp tuần tự
2.2.2 Thuật toán khai phá luật kết hợp song song
2.2.3 Thuâ ̣t toán khai phá luật kết hợp phân tán
2.3 Ứng dụng của luật kết hợp
Trang 11 Phân biệt thế nào là độ hỗ trợ, độ tin cậy, Frequent items, ItemSet và đặc biệt là cách tìm ra một frequent items như thế nào?
Thuật toán Apriori được dùng để phát hiện các luật kết hợp dạng khẳng định nhị phân chứ không thể phát hiện các luật kết hợp ở dạng phủ định
Trang 12CHƯƠNG 3: TỔNG QUAN MÔ HÌNH LẬP TRÌNH MAPREDUCE
3.1 Giơ ́ i thiê ̣u mô hình tính toán MapReduce
3.1.1 Nguyên nhân va ̀ li ̣ch sử ra đời
Khi khối lượng dữ liệu của một hệ thống gia tăng tới một mức độ nhất định (khoảng hàng ngàn Terabyte chẳng hạn), thì việc hệ thống sẽ phải đối mặt với thách thức làm sao để lưu trữ và phân tích dữ liệu
Sự bùng nổ về dữ liệu đã đặt ra các cơ hội, cơ hội chiếm lĩnh một nguồn thông tin khổng lồ, làm sao để lưu trữ và phân tích nguồn dữ liệu đó nếu chúng ta có đủ khả năng phân tích và xử lý nguồn dữ liệu đó, biến những dữ liệu thô thành những thông tin hữu ích với một mức chi phí hợp lý
3.1.2 MapReduce la ̀ gì?
“MapReduce là mô hình lập trình và thực thi song song các xử lý và phát sinh các tập dữ liệu lớn”
Trang 14MapReduce sử dụng hai thao tác chính cho việc thực thi công việc ban đầu từ người dùng là hàm map và hàm reduce
Hàm map có input là một cặp (k1, v1) và output là một danh sách các cặp (k2, v2)
map(k1, v1) -> list(k2, v2)
Sau giai đoạn này thì chúng ta có một tập hợp rất nhiều cặp (key, value) thuộc kiểu (k2, v2) gọi là các cặp (key, value) trung gian MR cũng sẽ nhóm các cặp này theo từng key, như vậy các cặp (key, value) trung gian có cùng k2 sẽ nằm cùng một nhóm trung gian
Một cách hình thức, hàm này có thể mô tả như sau
reduce(k2, list (v2))->list(v3) Trong đó k2 là key chung của nhóm trung gian, list(v2) là
tập các values trong nhóm, và list(v3)là một danh sách
các giá trị trả về của reduce thuộc kiểu dữ liệu v3 Do reduce được áp dụng vào nhiều nhóm trung gian độc lập
nhau, chúng lại một lần nữa có thể được chạy song song với nhau
3.1.3 Ưu điểm cu ̉ a MapReduce
3.1.4 Nguyên tắc hoa ̣t động của MapReduce
Trang 15 Đọc dữ liệu đầu vào
Thực hiện xử lý các phần dữ liệu vào (xử lý từng phần một ) (Thực hiện hàm Map)
Trộn và sắp xếp các kết quả thu được từ các máy tính làm sao để được kết quả tiện lợi nhất so với mục đích của quá trình
Tổng hợp các kết quả trung gian thu được từ các máy tính phân tán (Thực hiện hàm reduce)
Đưa ra kết quả cuối cùng
Trang 163.2 Giơ ́ i thiê ̣u nền tảng tính toán phân tán Hadoop trên mô hình MapReduce
3.2.2 Lịch sử Hadoop
3.2.3 Các thành phần của Hadoop
3.2.4 Ứng dụng của Hadoop
3.3 Hadoop Distributed File System (HDFS)
3.3.1 Giơ ́ i thiê ̣u
3.4 Kết luâ ̣n
Một số ván đề đã tìm hiểu trong chương này:
MapReduce là mô hình lập trình và thực thi song song các xử lý và phát sinh các tập dữ liệu lớn
MapReduce là một mô hình được áp dụng trên một
hệ thống các máy tính được kết nối với nhau và cài đặt chương trình MapReduce và thường kèm theo
nó là một hệ thống chia sẻ file phân tán (HDFS)
Trang 17CHƯƠNG 4: ỨNG DỤNG LUẬT KẾT HỢP TRONG
MÔ HÌNH MAPREDUCE
4.1 Giới thiệu bài toán
Maket Basket Analysis (MBA) là một trong những phương pháp khai phá dữ liệu để phân tích dựa trên một tập dữ liệu với nhau Ý tưởng chính của thuật toán là đi tìm sự kết hợp của các cặp mặt hàng trong cửa hàng…
Trong chương này chúng ta sẽ thực nghiệm mô hình lập trình MapReduce với bài toán Maket Basket Analysis
4.1.1 Thuật toán khai phá luật kết hợp Apriori tuần tự
Bài toán khai phá luật kết hợp được chia thành hai bài toán nhỏ:
Bài toán 1: Tìm tất cả các tập mục thỏa mãn độ hỗ trợ
tối thiểu minsup cho trước hay tập mục phổ biến
Bài toán 2: Tìm tất cả những luật kết hợp từ những
tập mục phổ biến thỏa độ tin cậy tối thiểu mincof cho trước
Thuật toán như sau:
Trang 18//(1) Map transaction t in data source to all Map nodes;
C 1 = {size 1 frequent items};
C k+1 = L k join_sort L k ; for each transaction t in data source with C k+1 do
// Đếm số lần xuất hiện C k+1 trong t
// (5) Tìm L k+1 với C k+1 thỏa mãn min_support
L k+1 = {size k+1 frequent items min_support};
end
end
return ∪k Lk;
Hình 4.1 Thuật toán Apriori tuần tự
4.1.2 Thuật toán khai phá luật kết hợp Apriori trên MapReduce
Giai đoạn Mapper:
Trang 19Step 1: Đọc mỗi giao dịch của dữ liệu
đầu vào và tạo ra một tập các Item (<V1>, <V2>,…, <Vn>) where < Vn>:(vn1,
vn2, vnm)
Step 2: Sắp xếp tất cả các tập <Vn> và tạo ra một tập các dữ liệu đã được sắp xếp là <Un>:
(<U1>, <U2>, …, <Un>) trong đó < Un>: (un1, un2, unm)
Step 3: Vòng lặp While < Un> có phần tử tiếp theo;
//Chú ý:mỗi danh sách Un được xử lý
riêng rẽ
3.1: Vòng lặp For mỗi Item từ un1 tới
unm của < Un> with NUM_OF_PAIRS
3.a: sinh ra một tập dữ liệu <Yn>: (yn1, yn2, ynl);
Ynl: (unx uny) là danh sách của các cặp (un1, un2, unm) where unx uny
3.b: Làm tăng sự xuất hiện của ynl; //Chú ý: (key, value) = (ynl, số lần xuất hiện)
3.2: Kết thúc vòng lặp For
Step 4: Kết thúc vòng lặp While
Tập dữ liệu được tạo ra là đầu vào của giai đoạn Reducer:
(key, <value>) = (ynl, <số lần xuất
hiện>)
Hình 4.2 MBA Algorithm for Mapper
Trang 20Giai đoạn Reducer
1 Đọc(ynl,<number of occurrences>) data từ nhiều node
2 Add the values for ynl to
have
(ynl, total number of occurrences)
Hình 4.3 MBA Algorithm for Reducer
4.1.3 So sánh thuật toán apriori trên MapReduce và thuật toán Apriori tuần tự
Độ phức tạp của thuật toán Apriori tuần tự là
O(k t n)) với k: kích cỡ của frequent items, t: số giao dịch, n: số Items của giao dịch với t>>k, n>>k
Độ phức tạp của thuật toán Apriori-Map/Reduce là
O(k t n/p) với k: kích thước của frequent items, t: số
transactions, n: số items của transactions, p: số nodes Map và Reduce giả sử rằng kích thước các Node là như nhau Với điều kiện t >> k, n >> k
Lý thuyết này đã chỉ ra rằng độ phức tạp của thuật toán Apriori sử dụng Map/Reduce ít hơn p lần so với thuật toán Apriori tuần tự
Trang 214.2 Phương pháp thử nghiệm hai thuật toán
Cài đặt mô hình lập trì nh MapReduce trên nền Hadoop Sử du ̣ng ngôn ngữ lâ ̣p trình Java
Thử nghiệm hai thuật toán Apriori tuần tự và Apriori áp dụng MapReduce trên hai cơ sở dữ liệu giao dịch khác nhau:
Cơ sở dữ liệu 1: Là dữ liệu về khách hàng ngân hàng gồm 11 thuộc tính và 600 khách hàng
Cơ sở dữ liệu 2: Gồm 1000 giao dịch hàng hóa
4.2.1 Cài đặt thuật toán Apriori sử dụng Map/Reduce
Đầu vào là file “AssociationsSP.txt” File này là có dạng là cơ sở dữ liệu giao dịch
Đầu ra là các cặp mặt hàng kết hợp với nhau trong các giao dịch tùy theo sự lựa chọn số item xuất hiện cùng nhau
4.2.2 Cài đặt thuật toán Apriori tuần tự
Trang 224.3 Kết quả
4.3.1 Kết quả thực nghiệm dưới dạng bảng
Bảng 4.1 Bảng so sánh thời gian thực hiện hai thuật toán Apriori
Thời gian thực hiện thuật toán
Apriori Tuần tự Apriori với
Hình 4.6 Biểu đồ so sánh giữa hai thuật toán Apriori
Trang 23Hình 4.7 Biểu đồ biến thiên theo thời gian thực hiện
của hai thuật toán
Một thuật toán khác PALM (Preprocessed Apriori For
Logical Matching Using Map Reduce Algorithm) cũng là
thuật toán cải tiến thuật toán Apriori nhưng áp dụng với
mô hình MapReduce cũng cho kết quả như sau:
Trang 24Hình 4.8 Kết quả thực nghiệm cho thấy hiệu quả của PALM áp dụng MapReduce
4.4 Đánh giá thực nghiệm
Nhìn vào biểu đồ trên ta thấy:
Với cùng một cơ sở dữ liệu, cùng số giao dịch thì thuật toán Apriori với MapReduce có thời gian thực hiện thuật toán là tốt nhất
Khi số lượng giao dịch tăng lên thời gian thực hiện của nó cũng tốt hơn so với Apriori tuần tự
Theo hình 4.8 ta cũng thấy hiệu quả của thuật toán PALM khác cũng là thuật toán mở rộng từ thuật toán Apriori tổng quát nhưng áp dụng với mô hình MapReduce bởi vì nó làm giảm đi số lượng các