Chỉ số chất lượng phân cụm của Kmeans Hadoop MapReduce khi tăng số lượng mẫu đại diện cho mỗi tập con với bộ dữ liệu Twitter ..... Trong Hadoop bao gồm HDFS Hadoop Distributed File Syste
Trang 1MỤC LỤC
LỜI CẢM ƠN
LỜI CAM ĐOAN
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
DANH MỤC CÁC BẢNG, BIỂU
DANH MỤC CÁC HÌNH VẼ, SƠ ĐỒ
MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Tổng quan tình hình nghiên cứu đê tài 1
3 Mục tiêu và nhiệm vụ nghiên cứu 3
4 Đối tượng và phạm vi nghiên cứu 3
5 Phương pháp nghiên cứu 4
CHƯƠNG 1 KIẾN THỨC TỔNG QUAN 5
1.1 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 5
1.1.1 Giới thiệu chung 5
1.1.2 Khai phá dữ liệu 5
1.1.3 Các bước quá trình khám phá tri thức 7
1.1.4 Các kỹ thuật Khai phá dữ liệu 8
1.1.5 Những thách thức trong Khai phá dữ liệu 18
1.1.6 Ứng dụng của khai phá dữ liệu 19
1.2 KHAI PHÁ DỮ LIỆU BẰNG CÔNG CỤ R 20
1.2.1 Giới thiệu về công cụ R 20
1.2.2 R trong khai phá dữ liệu 22
1.3 DỮ LIỆU LỚN 25
1.3.1 Khái niệm Dữ liệu lớn 25
1.3.2 Đặc trưng của Dữ liệu lớn 26
1.3.3 Sự khác biệt giữa dữ liệu lớn và dữ liệu truyền thống 28
1.3.4 Ứng dụng của dữ liệu lớn trong các lĩnh vực 29
1.3.5 Những thách thức trong dữ liệu lớn 31
Trang 21.3.6 Hạn chế R trong dữ liệu lớn 32
1.4 MÔ HÌNH LẬP TRÌNH MAPREDUCE 32
1.4.1 Hoạt động của MapReduce 33
1.4.2 Ưu và nhược điểm của MapReduce 36
1.4.3 Apache Hadoop Framework 36
1.5 KẾT LUẬN CHƯƠNG 1 43
CHƯƠNG 2 KẾT HỢP R VÀ HADOOP TRONG KHAI PHÁ DỮ LIỆU 44 2.1 TẠI SAO PHẢI KẾT HỢP R VÀ HADOOP 44
2.2 CÁC CÁCH KẾT HỢP R VÀ HADOOP 46
2.2.1 R và Streaming 48
2.2.2 RHipe 49
2.2.3 RHadoop 50
2.3 KẾT HỢP R VỚI HADOOP BẰNG RMR2 51
2.2.1 Cài đặt RHadoop 52
2.2.2 Các gói thư viện hỗ trợ mô hình lập trình MapReduce trên R 53
2.4 CÁCH VIẾT CHƯƠNG TRÌNH R SỬ DỤNG RHADOOP 56
2.5 THỰC THI CHƯƠNG TRÌNH MAPREDUCE TỪ R 58
2.6 MINH HỌA MỘT SỐ CHƯƠNG TRÌNH R THEO MÔ HÌNH MAPREDUCE 60
2.7 KẾT LUẬN CHƯƠNG II 62
CHƯƠNG 3 THỰC NGHIỆM VÀ ĐÁNH GIÁ 63
3.1 THUẬT TOÁN KMEANS ÁP DỤNG HADOOP MAPREDUCE TRÊN R 63
3.2 THỰC NGHIỆM, SO SÁNH VÀ ĐÁNH GIÁ 65
3.2.1 Thực nghiệm 1 65
3.2.2 Thực nghiệm 2 71
KẾT LUẬN 75
DANH MỤC TÀI LIỆU THAM KHẢO 77
Trang 3BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC QUY NHƠN
CAO MINH THƯỞNG
KẾT HỢP R VÀ HADOOP TRONG KHAI PHÁ DỮ LIỆU
Chuyên ngành: Khoa học máy tính
Mã số: 8.48.01.01
Người hướng dẫn : TS Trần Thiên Thành
Trang 4Em cũng gửi lời cảm ơn tới gia đình, bạn bè, những người luôn cổ vũ, quan tâm và giúp đỡ em trong suốt thời gian học tập cũng như làm luận văn
Do thời gian và kiến thức có hạn nên luận văn chắc không tránh khỏi những thiếu sót nhất định Em rất mong nhận được những sự góp ý quý báu của Thầy Cô và các bạn
Trang 5LỜI CAM ĐOAN
Tôi xin cam đoan kết quả trong luận văn là sản phẩm của riêng cá nhân tôi 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 cá nhân hoặc là được tổng hợp từ nhiều nguồn tài liệu Tất cả các tài liệu tham khảo đều có xuất xứ rõ ràng và được trích dẫn hợp pháp Tôi xin hoàn toàn chịu trách nhiệm theo quy định cho lời cam đoan của mình
Quy nhơn, ngày 30 tháng 7 năm 2019
Người cam đoan
Cao Minh Thưởng
Trang 6DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
3 KDD Knowlegde Discovery in Database Khai phá tri thức
4 HDFS Hadoop Distributed File System Hệ thống tệp phân
Trang 7DANH MỤC CÁC BẢNG, BIỂU
Bảng 1.1 Các thư viện hỗ trợ phân lớp trong R 22
Bảng 1.2 Các hàm, thư viện hỗ trợ phân cụm trong R 22
Bảng 1.3 Các hàm, thư viện hỗ trợ khai phá luật kết hợp trong R 23
Bảng 1.4 Các thư viện hỗ trợ khai phá văn bản trong R 23
Bảng 1.5 Các hàm, thư viện hỗ trợ phân tích chuỗi thời gian trong R 24
Bảng 1.6 Các hàm, thư viện hỗ trợ phân tích mạng xã hội trong R 24
Bảng 1.7 Các thư viện hỗ trợ xử lý Big Data trong R 24
Bảng 2.1 Các gói thư viện tương tác giữa R và Hadoop 51
Bảng 2.2 Các thao tác cơ bản của thư viện rhdfs 53
Bảng 2.3 Các tham số hàm MapReduce của thư viện rmr2 54
Bảng 2.4 Các tham số hàm keyval của thư viện rmr2 55
Bảng 2.5 Các tham số hàm to.dfs và from.dfs của thư viện rmr2 55
Bảng 2.6 Các tham số hàm to.map và to.reduce của thư viện rmr2 56
Bảng 3.1 Thời gian chạy Kmeans và Kmeans Hadoop MapReduce trên 3 máy và 5 máy với bộ dữ liệu Twitter 66
Bảng 3.2 Thời gian chạy của Kmeans và Kmeans Hadoop MapReduce trên 3 máy và 5 máy với bộ dữ liệu Train 67
Bảng 3.3 Thời gian chạy của Kmeans và Kmeans Hadoop MapReduce trên 3 máy và 5 máy với bộ dữ liệu Phones_gyroscope 68
Bảng 3.4 Chỉ số chất lượng phân cụm của Kmeans và Kmeans Hadoop MapReduce với bộ dữ liệu Twitter 70
Bảng 3.5 Thời gian chạy của Kmeans Hadoop MapReduce khi tăng số lượng mẫu đại diện cho mỗi tập con với bộ dữ liệu Twitter 72
Bảng 3.6 Chỉ số chất lượng phân cụm của Kmeans Hadoop MapReduce khi tăng số lượng mẫu đại diện cho mỗi tập con với bộ dữ liệu Twitter 73
Trang 8DANH MỤC CÁC HÌNH VẼ, SƠ ĐỒ
Hình 1.1 Các bước của quá trình khám khá tri thức [13] 7
Hình 1.2 Giao diện môi trường làm việc của R trên Ubuntu 21
Hình 1.3 Giao diện môi trường làm việc của RStudio Server trên Ubuntu 22
Hình 1.4 Đặc trưng 5Vs của Dữ liệu lớn 26
Hình 1.5 Quá trình thực thi MapReduce [15] 35
Hình 1.6 Thành phần Hadoop 1: HDFS và MapReduce [10] 37
Hình 1.7 Thành phần Hadoop 2 [10] 37
Hình 1.8 Mô tả về cách chia khối trong HDFS 40
Hình 1.9 Cách thức hoạt động của HDFS 41
Hình 1.10 Cách thức hoạt động của MapRedcue trên Hadoop 42
Hình 2.1 Hadoop và các công cụ phân tích dữ liệu 47
Hình 2.2 Định dạng dữ liệu CEnetBig 57
Hình 3.1 Quá trình thực hiện phân cụm Kmeans trên Hadoop Reduce 63
Hình 3.2 Sơ đồ thể hiện thuật toật xác định k tâm trên Hadoop Mapreduce 64 Hình 3.3 Biểu đồ tốc độ của Kmeans và Kmeans Hadoop MapReduce trên 3 máy và 5 máy với bộ dữ liệu Twitter 66
Hình 3.4 Biểu đồ tốc độ của Kmeans và Kmeans Hadoop MapReduce trên 5 máy với bộ dữ liệu Train 67
Hình 3.5 Biểu đồ chất lượng phân cụm của Kmeans và Kmeans HM với bộ dữ liệu Twitter 70
Hình 3.6 Biểu đồ tốc độ của Kmeans Hadoop MapReduce khi tăng số lượng mẫu đại diện cho mỗi tập con với bộ dữ liệu Twitter 72
Hình 3.7 Biểu đồ chất lượng phân cụm Kmeans Hadoop MapReduce khi tăng số lượng mẫu đại diện cho mỗi tập con với bộ dữ liệu Twitter 73
Trang 9sở dữ liệu trong việc lưu trữ, xử lý và phân tích dữ liệu
R là một công cụ mã nguồn mở được dùng phổ biến hiện nay trong việc phân tích và xử lý dữ liệu Tuy nhiên công cụ R gặp nhiều khó khăn khi xử lý những dữ liệu lớn
Hadoop là nền tảng mã nguồn mở được xây dựng để tổ chức lưu trữ và
xử lý dữ liệu lớn Trong Hadoop bao gồm HDFS (Hadoop Distributed File System) dùng để quản lý file phân tán, MapReduce dùng để lập trình và xử lý song song trên dữ liệu phân tán, cơ sở dữ liệu Hbase dùng để lưu trữ được dữ liệu lớn trên hệ thống phân tán HDFS,…
Với mong muốn tăng cường khả năng phân tích và xử lý dữ liệu trên R
nên tôi chọn đề tài “Kết hợp R với Hadoop trong Khai phá dữ liệu”
2 TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU ĐÊ TÀI
Sự phát triển của công nghệ thông tin và việc ứng dụng công nghệ thông tin trong nhiều lĩnh vực của đời sống, kinh tế xã hội trong nhiều năm qua cũng đồng nghĩa với lượng dữ liệu đã được các cơ quan thu thấp và lưu trữ ngày một tích lũy nhiều lên Họ lưu trữ các dữ liệu này vì cho rằng trong nó ẩn chứa những giá trị nhất định nào đó Tuy nhiên, theo thống kê thì chỉ có một lượng nhỏ của những dữ liệu này (khoảng từ 5% đến 10%) là luôn được phân tích, số còn lại họ không biết sẽ phải làm gì hoặc có thể làm gì với chúng nhưng họ vẫn
Trang 102 tiếp tục thu thập lượng dữ liệu này với ý nghĩ lo sợ rằng sẽ có cái gì đó quan trọng đã bị bỏ qua, sau này có lúc cần đến nó Mặt khác, trong môi trường cạnh tranh, người ta ngày càng cần có nhiều thông tin với tốc độ nhanh để trợ giúp việc ra quyết định và ngày càng có nhiều câu hỏi mang tính chất định tính cần phải trả lời dựa trên một khối lượng dữ liệu khổng lồ đã có Với những lý do như vậy, các phương pháp quản trị và khai thác cơ sở dữ liệu truyền thống ngày càng không đáp ứng được cần phải thay thế một kỹ thuật mới đó là Khai phá dữ liệu (Data Mining - KPDL)
Khai phá dữ liệu đã và đang được nghiên cứu, ứng dụng trong nhiều lĩnh vực khác nhau ở các nước trên thế giới, tại Việt Nam kỹ thuật này cũng đang được nghiên cứu và đưa vào ứng dụng trong nhiều lĩnh vực từ kinh doanh đến tài chính, nghiên cứu khoa học, Khai phá dữ liệu, giúp người sử dụng thu được những tri thức hữu ích từ những cơ sở dữ liệu (Database - CSDL) hoặc các nguồn dữ liệu khổng lồ khác Rất nhiều doanh nghiệp và tổ chức trên thế giới đã ứng dụng kỹ thuật khai phá dữ liệu vào hoạt động sản xuất kinh doanh của mình
Hadoop là một framework mã nguồn mở do Apache phát triển để lưu trữ, thao tác dữ liệu lớn sử dụng mô hình lập trình MapReduce Theo [27][28], hiện nay đã có bộ thư viện để tích hợp Hadoop MapReduce trên R và đây là cơ sở để phát triển các kỹ thuật khai phá dữ liệu lớn trên R
Trang 113
3 MỤC TIÊU VÀ NHIỆM VỤ NGHIÊN CỨU
Mục tiêu tổng quát của đề tài “Kết hợp R và Hadoop trong Khai phá dữ liệu” là tìm hiểu về khai phá dữ liệu, cài đặt và so sánh một số thuật toán khai
phá dữ liệu trên R khi sử dụng và không sử dụng mô hình MapReduce
Mục tiêu của đề tài:
- Tìm hiểu về khai phá dữ liệu và các kỹ thuật về khai phá dữ liệu
- Tìm hiểu về R, cách lập trình trên R, R trong khai phá dữ liệu
- Lập trình sử dụng mô hình MapReduce trên R và áp dụng vào một số thuật toán khai phá dữ liệu
- Thực nghiệm và so sánh một số thuật toán khai phá dữ liệu trên R khi sử dụng mô hình MapReduce và không sử dụng mô hình MapReduce
Nhiệm vụ của đề tài:
- Tìm hiểu về khai phá dữ liệu, các kỹ thuật khai phá dữ liệu
- Tìm hiểu về khai phá dữ liệu trên R và cài đặt
- Tìm hiểu mô hình lập trình MapReduce và áp dụng vào R
- Cài đặt, so sánh và đánh giá một số thuật toán khai phá dữ liệu trên R sử dụng mô hình MapReduce và không sử dụng mô hình MapReduce
4 ĐỐI TƢỢNG VÀ PHẠM VI NGHIÊN CỨU
Đối tƣợng nghiên cứu:
Trang 124
- Cài đặt một số thuật toán khai phá dữ liệu trên R
- Mô hình lập trình MapReduce và cài đặt một số thuật toán trên R có sử dụng mô hình MapReduce
5 PHƯƠNG PHÁP NGHIÊN CỨU
Phương pháp nghiên cứu lý thuyết:
- Thu thập tài liệu về các kỹ thuật khai phá dữ liệu, thuật toán của các kỹ thuật khai phá dữ liệu, cài đặt, sử dụng mô hình MapReduce, ngôn ngữ R, MapReduce trên R
- Tìm hiểu cách thức áp dụng mô hình MapReduce vào R
Phương pháp nghiên cứu thực nghiệm:
- Thực nghiệm một số thuật toán khai phá dữ liệu trên công cụ R, chạy thuật toán trên tập dữ liệu có sẵn từ đó đưa ra đánh giá về hiệu quả của thuật toán trên công cụ R khi áp dụng và không áp dụng mô hình MapReduce
Trang 135
CHƯƠNG 1 KIẾN THỨC TỔNG QUAN
1.1 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
1.1.1 Giới thiệu chung
Khoảng vài thập kỷ trở lại đây và đặt biệt là từ lúc internet được sử dụng rộng rãi trên toàn thế giới, thì khối lượng dữ liệu sẽ tạo ra đã trở nên cực kỳ lớn
và không ngừng được tăng lên với tốc độ chóng mặt Sự tích lũy dữ liệu này diễn ra với một tốc độ bùng nổ Người ta ước đoán rằng lượng thông tin trên toàn cầu tăng gấp đôi sau khoảng hai năm
Rõ ràng với lượng dữ liệu lớn như vậy, sẽ là nguồn tri thức vô tận nếu con người biết khai thác và sử dụng nó một cách hợp lí Thế nhưng với nguồn tài nguyên quá lớn như vậy, trong khi thời gian và sức lực của mỗi người thì có giới hạn, và không phải dữ liệu nào cũng hữu ích cho người dùng, đặt con người vào bài toán tìm kiếm những nội dung phù hợp với mục đích của mình Vì vậy việc chắc lọc dữ liệu thô để tìm ra nguồn tri thức hữu dụng thực sự là bài toán quan trọng và hữu ích trong giai đoạn hiện nay cũng như trong tương lai
1.1.2 Khai phá dữ liệu
Khai phá dữ liệu (KPDL) được dùng để mô tả quá trình phát hiện ra tri thức trong cơ sở dữ liệu Quá trình này kết xuất ra các tri thức tiềm ẩn từ dữ liệu giúp cho việc dự báo trong kinh doanh, các hoạt động sản xuất, quản lý, KPDL làm giảm chi phí về thời gian so với phương pháp truyền thống trước kia (ví dụ như phương pháp thống kê)
Sau đây là một số định nghĩa mang tính mô tả của nhiều tác giả về khai phá dữ liệu
Trang 146
1.1.2.1 Các định nghĩa về Khai phá dữ liệu
Định nghĩa của Tom Mitchell [22]:
Khai phá dữ liệu là việc sử dụng dữ liệu lịch sử để khám phá những quy tắc và cải thiện những quyết định trong tương lai
Định nghĩa của Ferruzza:
Khai phá dữ liệu là tập hợp các phương pháp được dùng trong tiến trình khám phá tri thức để chỉ ra sự khác biệt các mối quan hệ và các mẫu chưa biết bên trong dữ liệu
Định nghĩa của Parsaye:
Khai phá dữ liệu là quá trình trợ giúp quyết định, trong đó chúng ta tìm kiếm các mẫu thông tin chưa biết và bất ngờ trong CSDL lớn
Định nghĩa của Fayyad [23]:
Khai phá tri thức là một quá trình không tầm thường nhận ra những mẫu
dữ liệu có giá trị, mới, hữu ích, tiềm năng và có thể hiểu được
1.1.2.2 Vai trò Khai phá dữ liệu
Cuộc cách mạng của khoa học kỹ thuật số cho phép số hóa thông tin trở nên dễ dàng hơn và chi phí lưu trữ từ đó trở nên thấp hơn, lượng dữ liệu khổng
lồ được tập trung và lưu trữ trong CSDL khiến tốc độ tăng của dữ liệu quá lớn
Từ đó dẫn đến kỹ thuật thống kê và các công cụ quản trị dữ liệu dựa trên khối
dữ liệu khổng lồ đó không còn phù hợp
Trong khối lượng dữ liệu này còn rất nhiều thông tin có ích mang tính thống kê, có tính quy luật vẫn đang còn tiềm ẩn mà chúng ta chưa biết, đòi hỏi chúng ta cần phải khai phá mới có được Do đó cần phải có những công cụ tự động rút trích các thông tin, các luật có ích Một hướng tiếp cận mới có khả năng giúp cho các tổ chức khai thác các thông tin ý nghĩa từ các tập dữ liệu lớn
Trang 157
đó là KPDL KPDL là công cụ hữu ích để khám phá tri thức từ dữ liệu lớn Có nhiều phương pháp và thuật toán KPDL khác nhau Vì vậy mà KPDL được ứng dụng rộng rãi trong các lĩnh vực thương mại, tài chính, y học, giáo dục, viễn thông, ngân hàng
1.1.3 Các bước quá trình khám phá tri thức
Hình 1.1 Các bước của quá trình khám khá tri thức [13]
1.1.3.1 Làm sạch dữ liệu (Data cleaning)
Từ cơ sở dữ liệu (Database) ban đầu, dữ liệu sẽ được xử lý để loại bỏ các giá trị vô lý, dư thừa, không nhất quán hoặc thêm một số giá trị thiếu nếu cần thiết Ví dụ: Tuổi = -1 vô lý sẽ bị loại bỏ hoặc sửa đổi thành một giá trị mặc định Dữ liệu sau khi được làm sạch sẽ được đưa đến Kho dữ liệu (Data warehouse) hoặc qua quá trình tích hợp dữ liệu (Data integration) để chuẩn bị lựa chọn, biến đổi dữ liệu thực hiện bước tiếp theo [13]
Trang 168
1.1.3.2 Tích hợp dữ liệu (Data integration)
Tích hợp dữ liệu là quá trình xử lý, kết hợp dữ liệu từ nhiều nguồn dữ liệu không đồng nhất thành một kho dữ liệu thống nhất [13]
1.1.3.3 Lựa chọn/biến đổi dữ liệu (Data Selection/Transformation)
Lựa chọn dữ liệu là quá trình trích chọn các dữ liệu liên quan đến nhiệm
vụ phân tích từ kho dữ liệu Biến đổi dữ liệu là chuyển đổi, hợp nhất dữ liệu thành các hình thức thích hợp để chuẩn bị khai phá dữ liệu [13]
1.1.3.4 Khai phá dữ liệu (Data Mining)
Khai phá dữ liệu là quá trình trích xuất thông tin bằng nhiều phương pháp khác nhau để đưa ra các mẫu dữ liệu [13]
1.1.3.5 Đánh giá mẫu/biểu diễn tri thức (Pattern evaluation
/Knowledge presentation)
Đánh giá khả năng chính xác của các mẫu dữ liệu sau khi được khai phá
và biểu diễn chúng thành tri thức [13]
Trong quá trình khám phá tri thức, khai phá dữ liệu đóng vai trò rất quan trọng, nó phân tích, trích xuất các thông tin tìm ẩn từ nguồn dữ liệu được tổng hợp qua các bước trước đó Thông tin mà bước khai phá dữ liệu xử lý được quyết định việc kết thúc quá trình khám phá tri thức sau khi đánh giá và biểu diễn tri thức ở bước sau đó
1.1.4 Các kỹ thuật Khai phá dữ liệu
Kỹ thuật khai phá dữ liệu được chia thành hai nhóm chính là Kỹ thuật khai phá dữ liệu mô tả và Kỹ thuật khai phá dữ liệu dự đoán
Trang 179
1.1.4.1 Kỹ thuật khai phá dữ liệu mô tả
Có nhiệm vụ mô tả về các tính chất hoặc các đặc tính chung của dữ liệu trong CSDL hiện có Bao gồm các kỹ thuật:
Tổng quát hóa (Summarization)
Là công việc liên quan đến các phương pháp tìm kiếm một mô tả tóm tắt cho một tập con dữ liệu Kỹ thuật này thường được áp dụng trong việc phân tích
dữ liệu có tính thăm dò và báo cáo tự động
Trực quan hóa (Visualization)
Là việc sử dụng một công cụ KPDL để biểu diễn tri thức phát hiện được dưới dạng những biểu đồ, hình vẽ hay những ký hiệu minh họa, một cách trực quan, dễ hiểu, dễ kiểm tra Vấn đề trực quan hóa của KPDL đề cập đến các khía cạnh sau:
Trực quan hóa dữ liệu
Trực quan hóa tiến trình KPDL
Trực quan hóa kết quả KPDL
Phân cụm (clustering)
Mục tiêu chính của phương pháp phân cụm dữ liệu theo [2] là nhóm các đối tượng tương tự nhau trong tập dữ liệu vào các cụm sao cho các đối tượng thuộc cùng một cụm là tương đồng còn các đối tượng thuộc các cụm khác nhau
sẽ không tương đồng Phân cụm dữ liệu là một ví dụ của phương pháp học không giám sát Không giống như phân loại dữ liệu, phân cụm dữ liệu không đòi hỏi phải định nghĩa trước các mẫu dữ liệu huấn luyện Vì thế, có thể coi phân cụm dữ liệu là một các học bằng giám sát (learning by obvervation), trong khi phân loại dữ liệu là học bằng ví dụ (learning by example) Trong phương pháp này bạn sẽ không thể biết kết quả các cụm thu được sẽ như thế nào khi bắt
Trang 1810 đầu quá trình Vì vậy, thông thường cần có một chuyên gia về lĩnh vực đó để đánh giá các cụm thu được Phân cụm dữ liệu được sử dụng nhiều trong các ứng dụng về phân đoạn thị trường, phân đoạn khách hàng, nhận dạng mẫu, phân loại trang Web,…Ngoài ra phân cụm dữ liệu còn có thể được sử dụng như một bước tiền xử lý cho các thuật toán khai phá dữ liệu khác
Thuật toán K-means trong phân cụm
K-Means là thuật toán rất quan trọng và được sử dụng phổ biến trong kỹ thuật phân cụm Tư tưởng chính của thuật toán K-Means là tìm cách phân nhóm các đối tượng (objects) đã cho vào K cụm (K là số các cụm được xác đinh trước,
K nguyên dương) sao cho tổng bình phương khoảng cách giữa các đối tượng đến tâm nhóm (centroid ) là nhỏ nhất
Cụ thể theo [4][14] K-means chia một tập D đối tượng thành k cụm sao cho kết quả tương đồng trong cùng cụm tương đối cao, ngược lại là sự tương
đồng thấp giữa các cụm khác nhau Ý tưởng thuật toán:
Thuật toán Kmeans:
Input: D,k (một tập dữ liệu gồm D điểm, chọn k tâm cụm ngẫu nhiên trong D điểm)
Output: k tâm cụm
Bước 1: Thuật toán xác định k tâm ngẫu nhiên
Bước 2: Thuật toán lặp lại quá trình:
Trang 1911
Phân tích sự phát triển và độ lệch (Evolution and Deviation analyst)
Kỹ thuật này tập trung vào việc khai thác những thay đổi có ý nghĩa trong
dữ liệu từ các giá trị chuẩn hoặc được đo trước đó, phát hiện độ lệch đáng kể giữa nội dung của tập con dữ liệu thực và nội dung mong đợi
1.1.4.2 Kỹ thuật khai phá dữ liệu dự đoán
Có nhiệm vụ đưa ra các dự đoán dựa vào các suy diễn trên dữ liệu hiện thời Bao gồm các kỹ thuật:
Phân lớp (classification)
Mục tiêu của phương pháp phân lớp dữ liệu theo [2] là dự đoán nhãn lớp cho các mẫu dữ liệu Quá trình phân lớp dữ liệu thường gồm hai bước: xây dựng
mô hình và sử dụng mô hình để phân lớp dữ liệu
- Bước 1: Xây dựng mô hình dựa trên việc phân tích các mẫu dữ liệu cho trước Mỗi mẫu thuộc về một lớp, được xác định bởi một thuộc tính gọi là thuộc lớp Các mẫu dữ liệu này còn được gọi là tập dữ liệu huấn luyện Các nhãn lớp của tập dữ liệu huấn luyện đều phải được xác định trước khi được xây dựng mô hình, vì vậy phương pháp này còn được gọi là học có giám sát
- Bước 2: Sử dụng mô hình để phân loại dữ liệu Trước hết chúng ta phải tính độ chính xác của mô hình Nếu độ chính xác là chấp nhận được, mô hình sẽ được sử dụng để dự đoán nhãn lớp cho các mẫu dữ liệu khác trong tương lai
Kỹ thuật Cây quyết định trong phân lớp
Kỹ thuật Cây quyết định được sử dụng nhiều nhất trong phương pháp phân lớp vì nó là cấu trúc phân cấp đơn giản, giúp người dùng dễ hiểu và ra quyết định Có nhiều thuật toán KPDL khác nhau trong phân lớp dựa vào Mạng nơron, Luật gần nhất, Mô hình phân lớp Bayes nhưng khai phá bằng Cây quyết định là đơn giản nhất
Trang 2012
Kỹ thuật cây quyết định là một công cụ mạnh và hiệu quả trong việc phân lớp và dự báo Các đối tượng dữ liệu được phân thành các lớp Các giá trị của đối tượng dữ liệu chưa biết sẽ được dự đoán, dự báo Tri thức được rút ra trong
kỹ thuật này thường được mô tả dưới dạng tường minh, đơn giản, trực quan, dễ hiểu đối với người sử dụng
Kỹ thuật Cây quyết định trong phân lớp có những thuật toán sau:
Thuật toán C5.0
Năm 1997, Ross Quinlan đã phát triển C4.5 thành C5.0 [12] Từ đó, C5.0 trở thành công cụ thương mại với một số cải tiến về tính năng, tốc độ và hiệu quả, có khả năng làm việc với dữ liệu có kiểu đa dạng hơn, có khả năng mở rộng cao hoạt động được trên hệ thống đa nhân, đa CPU
Năm 2012, Max Kuhn và cộng sự đã phát hành thư viện C50 trên R dựa vào thuật toán C5.0 phiên bản đơn nhân
Thuật toán C5.0
Bước 1: Tính tần suất các lớp của T;
Bước 2: Nếu chỉ có một lớp Hoặc có quá ít (không có) giá trị Thì cây gồm một lá;
Tạo nút N;
Bước 3: Tính Gain(A) cho từng thuộc tính A;
Bước 4: Gán N.test = Thuộc tính A có Gain(A) lớn nhất;
Bước 5: Nếu N.test là liên tục thì tính Threshold;
Bước 6: Với mỗi nhánh T' của T
Bước 7: Nếu T' rỗng
N.Child là một lá
Ngược lại
Bước 8: N.Child = Tree(T');
Bước 8: Tính Errors của N;
Return N
Trang 2113
C5.0 sử dụng GainRatio làm thước đo lựa chọn thuộc tính “tốt nhất”
Người ta thường cố gắng xây dựng một CQĐ càng nhỏ đến có thể vì những CQĐ nhỏ hơn thì dễ hiểu hơn và dễ đạt được độ chính xác dự báo cao hơn Do không thể đảm bảo được sự cực tiểu của CQĐ nên C5.0 dựa vào nghiên cứu tối
ưu hóa, lựa chọn thuộc tính có độ đo GainRatio đạt giá trị cực đại để phân chia
Khi sử dụng InfoGain chúng ta có thể gặp trường hợp InfoGain(S,A) đạt
cực đại nhưng từng Sv chỉ chứa một giá trị GainRatio giải quyết được vấn đề
này bằng cách đưa vào thông tin tiềm năng của bản thân mỗi phân hoạch Công
thức tính GainRatio như sau:
),(
),()
,(
A S SplitInfo
A S InfoGain A
2
log)
,(
A Values v
v v
S
S S
S A
)()
()
,(
A Values v
v v
S Entropy S
S S
Entropy A
S InfoGain
Entropy
1
2log)
(
- A: thuộc tính đang xét;
- Values(A): tập giá trị của thuộc tính A;
- S: tập mẫu, có n phần tử;
- Sv: tập con của S mà A có giá trị v
Thuật toán CART
Năm 1984, Leo Breiman và các cộng sự đã công bố thuật toán xây dựng cây nhị phân phân lớp và hồi quy CART [16] (Classification And Regression Trees)
Trang 2214
Năm 1999, Terry Therneau và cộng sự đã phát hành thư viện rpart (Recursive PARTitioning) cho R dựa trên thuật toán CART
Thuật toán CART:
Thực hiện lặp các bước sau:
Bước 1: Tính điểm chia tốt nhất của từng thuộc tính
- Sắp tăng các thuộc tính có giá trị liên tục hoặc có thứ tự Duyệt theo thứ tự từ lớn đến bé giá trị của từng thuộc tính để
ngược lại thì sang phải) để xác định điểm chia tốt nhất
- Đối với các thuộc tính không thứ tự, thử lần lượt các tập
lại thì sang phải) để xác định điểm chia tốt nhất
- Điểm chia tốt nhất là điểm có độ đo cực đại khi nút được chia theo nó
Bước 2: Tính điểm chia của nút
- Chọn điểm chia tốt nhất dựa vào các giá trị được tính ở (1) Bước 3: Chia nút bởi điểm chia tốt nhất được chọn ở (2) nếu điều kiện dừng chưa thỏa mãn
CART cho phép lựa chọn sử dụng chỉ số InfoGain hoặc Gini làm thước
đo xác định thuộc tính “tốt nhất”
Công thức tính Gini như sau:
Trong đó:
- c: số giá trị của thuộc tính phân lớp
- pi: xác suất của giá trị thứ i trong tập giá trị phân lớp
Ưu điểm của Gini là các tính toán trên nó chỉ dựa vào thông tin về sự
phân phối các giá trị lớp trong từng phần phân chia mà không tính toán trên các giá trị của các thuộc tính đang xét
p S
Gini
1
2
1)(
Trang 23Hồi quy (Regression)
Mục tiêu của hồi quy tương tự như phân lớp dữ liệu nhưng khác ở chỗ nó dùng để dự đoán các giá trị liên tục còn phân lớp dữ liệu dùng để dự đoán các giá trị rời rạc Việc dự báo các giá trị số thường được làm bởi các phương pháp thống kê cổ điển, chẳng hạn như hồi quy tuyến tính Tuy nhiên, phương pháp
mô hình hoá cũng được sử dụng, ví như cây quyết định
Ứng dụng của hồi quy là rất nhiều, ví dụ: dự đoán số lượng sinh vật phát quang hiện thời trong khu rừng bằng cách dò tìm vi sóng bằng các thiết bị cảm biến từ xa; ước lượng xác suất người bệnh có thể chết bằng cách kiểm tra các triệu chứng; dự báo nhu cầu của người dùng đối với một sản phẩm, …
Khai phá luật kết hợp (association rules)
Mục tiêu của phương pháp này theo [1] là phát hiện và đưa ra các mối liên hệ giữa các giá trị dữ liệu trong CSDL Mẫu đầu ra của giải thuật khai phá
dữ liệu là tập luật kết hợp tìm được Khai phá luật kết hợp được thực hiện qua hai bước:
- Bước 1: Tìm tất cả các tập mục phổ biến, một tập mục phổ biến được xác định qua tính độ hỗ trợ và thỏa mãn độ hỗ trợ cực tiểu
- Bước 2: Sinh ra các luật kết hợp mạnh từ tập mục phổ biến, các luật phải thỏa mãn độ hỗ trợ cực tiểu và độ tin cậy cực tiểu
Phương pháp này được sử dụng rất hiệu quả trong các lĩnh vực như marketing có chủ đích, phân tích quyết định, quản lý kinh doanh,…
Cụ thể:
Trang 2416
Cho tập mục I, cơ sở dữ liệu D, ngưỡng hỗ trợ minsup và ngưỡng tin cậy minconf Tìm tất cả các tập luật kết hợp X Y trên D thỏa mãn: sup(X Y) minsup và conf(X Y) minconf
Kỹ thuật Khai phá luật kết hợp:
Phát biểu bài toán:
Đầu vào: I, D, minsup, minconf
Đầu ra: Các luật kết hợp thỏa mãn minsup và minconf
Thuật toán thực hiện qua hai bước:
Bước 1: Tìm tất cả các tập mục phổ biến trong D
Bước 2: Sinh các luật kết hợp từ các tập phổ biến vừa tìm được
sao cho độ tin cậy của luật không bé hơn minconf.
Khai phá luật kết hợp có những thuật toán sau:
Thuật toán Apriori
Thuật toán Apriori được R Agrawal và R Srikant đề xuất năm 1994 trong [6] để khai phá tập phổ biến cho các luật kết hợp Ý tưởng của Apriori sử
dụng phương pháp kết tập, mỗi lần duyệt dữ liệu sẽ sinh ra tập L i chứa các tập i phần tử thỏa minsup Ở lần duyệt dữ liệu đầu tiên, Apriori tìm các phần tử phổ biến, sau đó i lần duyệt CSDL tiếp theo, nó thực hiện kết hợp các tập có i-1 phần
tử đầu tiên giống nhau lại với nhau và kiểm tra xem tập mới này có phổ biến
không để đưa vào L i Để phát hiện mỗi L i thuật toán quét toàn bộ CSLD đây cũng là hạn chế của thuật toán khi thực hiện với CSDL lớn
Thuật toán FP-Growth [13][18]
Để hạn chế nhược điểm duyệt CSDL nhiều lần của Apriori, năm 2000, Han đề xuất thuật toán FP-Growth trong [1] rút gọn CSDL vào trong FP-Tree và khai phá FP-Tree này FP-Growth chỉ thực hiện duyệt dữ liệu hai lần cho CSDL bất kỳ
Trang 2517 FP-Tree (Frequent Pattern Tree): có nút gốc có nhãn “Null”, tập các nhánh, mỗi nhánh tương ứng là một hoặc nhiều giao dịch giống nhau trong
CSDL thỏa minsup và bảng phần tử phổ biến (header table) sắp xếp giảm dần
theo độ hỗ trợ
Mỗi nút của FP-Tree gồm: tên phần tử (Item_name), count - số lần xuất hiện của phần tử trong nhánh, nút liên kết (node link) - liên kết với nút cùng tên trong FP-Tree
FP-tree được xây dựng qua các bước sau:
- Duyệt tập dữ liệu lần thứ nhất, xác định các phần tử phổ biến
- Duyệt tập dữ liệu lần thứ hai, trong mỗi giao dịch T, loại bỏ những phần
tử không phổ biến, sắp xếp phần tử phổ biến theo các thứ tự giảm dần độ hỗ trợ
và đưa chúng vào FP-Tree Giả sử N là một phần tử trong T sau khi xử lý, P là phần tử đầu tiên của nhánh đang xét trong FP-Tree, nếu N giống P, tăng count của P thêm 1 chuyển xuống xét nút tiếp theo Ngược lại, chuyển sang phần tử tiếp theo và thực hiện tương tự Nếu không phần tử nào thì tạo nhánh mới cho N với count =1
Bảng phần tử phổ biến (Header table) gồm: tên phần tử và nút liên kết - trỏ tới nút cùng tên đầu tiên trong FP-Tree
Thuật toán FP-Growth:
Đầu vào: CSDL giao dịch D và độ hỗ trợ tối thiểu
Đầu ra: Tập mục phổ biến
- Xây dựng FP-Tree: Quét qua CSDL giao dịch lần hai, với mỗi
giao dịch T sắp xếp các phần tử theo thứ tự tập L Với N T,
P là phần tử thuộc nhánh đang xét trong FP-Tree Nếu N giống
P, tăng count P lên 1 chuyển xuống nút dưới Ngược lại, chuyển
nhánh khác và thực hiện tương tự Nếu không còn nhánh nào thì
Trang 2618
tạo nhánh mới cho N với count = 1
Bước 2: Xây dựng cơ sở mẫu điều kiện (Conditional Patern Bases) (CSMDK) cho mỗi phần tử phổ biến
Bước 3: Xây dựng FP-Tree điều kiện (Conditional FP-Tree) cho mỗi phần tử phổ biến trong CSMDK
Bước 4: Đệ quy xây dựng FP-Tree điều kiện đến khi FP-Tree điều kiện còn một đường dẫn duy nhất (single path) tiến hành sinh tất cả tổ hợp mẫu phổ biến
Mạng Nơron (Neural network)
Đây là một trong những kỹ thuật khai phá dữ liệu được ứng dụng khá phổ biến Kỹ thuật này phát triển dựa trên một nền tảng toán học vững vàng, khả năng huấn luyện trong kỹ thuật này dựa trên mô hình thần kinh trung ương của con người
Kết quả mà mạng Nơron học được có khả năng tạo ra các mô hình dự báo, dự đoán với độ chính xác và độ tin cậy cao Nó có khả năng phát hiện ra được các xu hướng phức tạp mà kỹ thuật thông thường khác khó có thể phát hiện ra được Tuy nhiên phương pháp mạng Nơron rất phức tạp và quá trình tiến hành gặp rất nhiều khó khăn: đòi hỏi mất nhiều thời gian, nhiều dữ liệu, nhiều lần kiểm tra thử nghiệm
Giải thuật di truyền (Genetic algorithms)
Là quá trình mô phỏng theo tiến hoá của tự nhiên Ý tưởng chính của giải thuật là dựa vào quy luật di truyền trong biến đổi, chọn lọc tự nhiên và tiến hoá trong sinh học
1.1.5 Những thách thức trong Khai phá dữ liệu
Dữ liệu thiếu và nhiễu: Mức độ nhiễu cao trong dữ liệu dẫn đến thuật toán thiếu chính xác
Trang 2719 Vấn đề “quá phù hợp” (Overfitting): Thuật toán trên lý thuyết sử dụng bộ
dữ liệu “quá phù hợp” nhưng không phù hợp với các bộ dữ thực tế
Sự thay đổi của dữ liệu và tri thức: Dữ thay đổi nhanh chóng có thể dẫn đến những tri thức đã khai phá trước đây không còn phù hợp
Đánh giá các mẫu dữ liệu tìm được: Việc kiểm tra tính hữu ích của các mẫu phát hiện được cũng là một thách thức lớn với khai phá dữ liệu
Làm việc với các dữ liệu phức tạp: Hiện nay, ngoài cơ sở dữ liệu quan hệ
sự phát triển của mạng máy tính, tự động hóa,… làm cho dữ liệu có thể được thu thập ở nhiều nguồn với nhiều định dạng khác nhau, kích thước rất lớn Việc phát hiện tri thức từ các dạng dữ liệu này rất phức tạp và là một thách thức rất lớn với khai phá dữ liệu
Dữ liệu lớn: Khác với trong lý thuyết, các tập dữ liệu cần khai phá trong thực tế thường có kích thước rất lớn để đảm bảo các tri thức sinh ra có mức độ chính xác cần thiết Tuy nhiên, các thuật toán khai phá dữ liệu thường có độ phức tạp đa thức trở lên làm tăng thời gian xử lý khi đầu vào lớn Hiện nay, mặc
dù kích thước bộ nhớ trong của máy tính tăng đáng kể nhưng không thể đáp ứng kịp với việc tăng kích thước dữ liệu Vì vậy, việc cải tiến, vận dụng các kỹ thuật xác suất, lấy mẫu, đệm, song song, …vào các giải thuật hoặc dùng các máy tính chuyên biệt hay sử dụng mô hình phân tán cũng là một trong nhiều lựa chọn được nghiên cứu và sử dụng hiện nay Ngoài ra, việc lựa chọn ngôn ngữ lập trình, đảm bảo việc cấp phát bộ nhớ cho toàn bộ giải thuật cũng là một vấn đề đáng quan tâm
1.1.6 Ứng dụng của khai phá dữ liệu
Theo khai phá dữ liệu có những ứng dụng như sau:
Kinh tế-ứng dụng trong kinh doanh, tài chính, tiếp thị bán hàng, bảo hiểm, thương mại, ngân hàng,…Đưa ra các bản báo cáo giàu thông tin, phân
Trang 2820 tích rủi ro trước khi đưa ra các chiến lược kinh doanh, sản xuất, phân loại khách hàng từ đó phân định thị trường, thị phần,…
Khoa học: Thiên văn học (dự đoán đường đi các thiên thể, hành tinh,…), Công nghệ sinh học (tìm ra các gen mới, cây con giống mới,…)
Phân tích dữ liệu và hỗ trợ ra quyết định (data analysis & decision support), điều trị y học, text mining và web mining, tài chính, bảo hiểm, thị trường chứng khoán, nhận dạng (pattern recognition), web (các công cụ tìm kiếm), bào chế thuốc, quảng cáo, marketing, quản lý quan hệ khách hàng, chăm sóc sức khỏe, viễn thông, thể thao, giải trí, đầu tư
1.2 KHAI PHÁ DỮ LIỆU BẰNG CÔNG CỤ R
1.2.1 Giới thiệu về công cụ R
Năm 1996, hai nhà thống kê học Ross Ihaka và Robert Gentleman thuộc Trường đại học Auckland, New Zealand, phác hoạ một ngôn ngữ cho phân tích thống kê được đặt tên là R
R là một phần mềm mã nguồn mở sử dụng cho phân tích thống kê và đồ thị Về bản chất, R là một ngôn ngữ lập trình được mở rộng dễ dàng thông qua các gói thư viện Với lợi thế miễn phí, mã nguồn mở và mềm dẻo, R được đông đảo người dùng đón nhận và phát triển, hiện nay, R được hỗ trợ bởi một cộng đồng sử dụng rộng lớn và phát triển trên nhiều lĩnh vực khác nhau trong đó có khai phá dữ liệu [3][29]
Thế mạnh khác của R là hỗ trợ tốt các giao diện truy vấn dữ liệu, hiển thị
dữ liệu trực quan, đồ họa, kiểu dữ liệu phong phú, các hàm thống kê, giải thuật học tự động [8][11][14][20][24]
Người dùng R có thể mở rộng ứng dụng dễ dàng nhờ có rất nhiều gói thư viện trên CRAN (Comprehensive R Archive Network), đặt tại nhiều nơi trên thế giới
Trang 2921 Trong năm năm liền, từ năm 2011 đến năm 2015, R được Kdnuggets - trang web đầu ngành về phân tích kinh doanh, Big Data, KPDL và Khoa học dữ liệu (KHDL) được điều hành bởi chuyên gia đầu ngành về KHDL, Gregory Piatetsky-Shapiro - bầu chọn ở vị trí thứ nhất trong top các công cụ về phân tích, KPDL, KHDL [9]
Ngày nay, R được sử dụng rộng rãi trong cả trong nghiên cứu và trong công nghiệp
Hình 1.2 Giao diện môi trường làm việc của R trên Ubuntu
Trang 3022
Hình 1.3 Giao diện môi trường làm việc của RStudio Server trên Ubuntu
1.2.2 R trong khai phá dữ liệu
R có sẵn các gói thư viện hỗ trợ hầu hết các kỹ thuật trong khai phá dữ liệu [25] [26]
1.2.2.1 Phân lớp với R
Dưới đây là một số thư viện có sẵn trong R để hỗ trợ kỹ thuật phân lớp trong khai phá dữ liệu với R
Bảng 1.1 Các thư viện hỗ trợ phân lớp trong R
1.2.2.2 Phân cụm với R
Dưới đây là một số hàm và thư viện có sẵn trong R để hỗ trợ kỹ thuật
Trang 3123 phân cụm trong khai phá dữ liệu với R
Bảng 1.2 Các hàm, thư viện hỗ trợ phân cụm trong R
hclust(), agnes(), diana()
fpc birch clv, clValid, NbClust
1.2.2.3 Khai phá luật kết hợp với R
Dưới đây là một số hàm và thư viện có sẵn trong R để hỗ trợ kỹ thuật khai phá luật kết hợp trong khai phá dữ liệu với R
Bảng 1.3 Các hàm, thư viện hỗ trợ khai phá luật kết hợp trong R
Kỹ thuật khai phá luật kết hợp Hàm Thư viện
1.2.2.4 Khai phá văn bản với R
Dưới đây là một số thư viện có sẵn trong R để hỗ trợ kỹ thuật khai phá văn bản trong khai phá dữ liệu với R
Bảng 1.4 Các thư viện hỗ trợ khai phá văn bản trong R
Kỹ thuật khai phá văn bản Thư viện
Trang 3224
1.2.2.5 Phân tích chuỗi thời gian với R
Dưới đây là một số hàm và thư viện có sẵn trong R để hỗ trợ kỹ thuật phân tích chuỗi thời gian trong khai phá dữ liệu với R
Bảng 1.5 Các hàm, thư viện hỗ trợ phân tích chuỗi thời gian trong R
Kỹ thuật phân tích chuỗi thời gian Hàm Thư viện
Phân rã chuỗi thời gian
Dự báo chuỗi thời gian
Phân cụm chuỗi thời gian
DTW (Dynamic Time Warping)
decomp(), decompose(), arima(), stl()
forecast TSclust Dtw
1.2.2.6 Phân tích mạng xã hội với R
Dưới đây là một số hàm và thư viện có sẵn trong R để hỗ trợ kỹ thuật phân tích mạng xã hội trong khai phá dữ liệu với R
Bảng 1.6 Các hàm, thư viện hỗ trợ phân tích mạng xã hội trong R
fastgreedy.community(), spinglass.community()
igraph, sna, RNeo4j
1.2.2.7 R và Big data
Dưới đây là một số hàm có sẵn trong R để hỗ trợ xử lý BigData trong R
Bảng 1.7 Các thư viện hỗ trợ xử lý BigData trong R
Trang 3325
1.3 DỮ LIỆU LỚN
1.3.1 Khái niệm Dữ liệu lớn
Theo Wikipedia: Dữ liệu lớn (Big Data) là một thuật ngữ chỉ tập hợp dữ liệu lớn hoặc phức tạp mà các phương pháp truyền thống không đủ các ứng dụng để xử lý dữ liệu này
Theo Garnier: Dữ liệu lớn (Big Data) là những nguồn thông tin có đặc điểm chung khối lượng lớn, tốc độ nhanh và dữ liệu định dạng dưới nhiều hình thức khác nhau, do đó muốn khai thác được đòi hỏi phải có hình thức xử lý mới
để đưa ra quyết định
Dữ liệu lớn chủ yếu hình thành từ 6 nguồn:
Dữ liệu hành chính: sinh ra từ dữ liệu của các tổ chức, có thể là chính phủ hoặc phi chính phủ Ví dụ: hồ sơ y tế điện tử ở bệnh viện, hồ sơ bảo hiểm, ngân hàng,…; Dữ liệu từ hoạt động thương mại (phát sinh từ hoạt động giao dịch giữa hai cá thể) Ví dụ: giao dịch giữa các thẻ tín dụng, giao dịch trên mạng, bao gồm cả từ các thiết bị di động,…; Dữ liệu từ các thiết bị cảm biến như thiết bị chụp hình ảnh, vệ tinh, cảm biến đường, cảm biến khi hậu,…; Dữ liệu từ các thiết bị theo dõi Ví dụ: dữ liệu từ các điện thoại di động, GPS,…; Dữ liệu về các hành vi Ví dụ: tìm kiếm trực tuyến (về một sản phẩm dịch vụ hay thông tin khác) hay đọc các trang mạng trực tuyến,…; Dữ liệu từ các thông tin về ý kiến, quan điểm của các cá nhân, tổ chức trên các phương tiện truyền thông; Phương pháp khai thác và quản lý dữ liệu lớn hiện nay được thiết kế phù hợp dựa theo các nguồn hình thành dữ liệu lớn Mỗi nguồn dữ liệu lớn khác nhau sẽ có phương pháp khai thác và quản lý dữ liệu lớn khác nhau Tuy nhiên, hiện nay phần lớn các tổ chức trên thế giới đều dùng Hadoop ecosystem là giải pháp tối
ưu để khai thác và quản lý dữ liệu lớn
Trang 34Khối lượng dữ liệu (Volume): Đây là đặc điểm tiêu biểu nhất của dữ liệu
lớn, khối lượng dữ liệu rất lớn Kích cỡ của Dữ liệu lớn đang từng ngày tăng lên, và tính đến năm 2012 thì nó có thể nằm trong khoảng vài chục terabyte cho đến nhiều petabyte (1 petabyte = 1024 terabyte) chỉ cho một tập hợp dữ liệu Dữ liệu truyền thống chúng ta có thể lưu trữ trên các thiết bị đĩa mềm, đĩa cứng Nhưng với dữ liệu lớn sẽ sử dụng công nghệ “đám mây” mới có khả năng lưu trữ được dữ liệu lớn
Tốc độ (Velocity): Tốc độ có thể hiểu theo 2 khía cạnh: (a) Khối lượng dữ
liệu gia tăng rất nhanh (mỗi giây có tới 72.9 triệu các yêu cầu truy cập tìm kiếm trên web bán hàng của Amazon); (b) Xử lý dữ liệu nhanh ở mức thời gian thực (real-time), có nghĩa dữ liệu được xử lý ngay tức thời ngay sau khi chúng phát sinh (tính đến bằng mili giây) Các ứng dụng phổ biến trên lĩnh vực Internet, Tài chính, Ngân hàng, Hàng không, Quân sự, Y tế – Sức khỏe như hiện nay phần lớn dữ liệu lớn được xử lý thời gian thực Công nghệ xử lý dữ liệu lớn ngày một
Trang 3527 tiên tiến cho phép chúng ta xử lý tức thì trước khi chúng được lưu trữ vào cơ sở
dữ liệu
Đa dạng (Variety): Đối với dữ liệu truyền thống chúng ta hay nói đến dữ
liệu có cấu trúc, thì ngày nay hơn 80% dữ liệu được sinh ra là phi cấu trúc (tài liệu, blog, hình ảnh, vi deo, bài hát, dữ liệu từ thiết bị cảm biến vật lý, thiết bị chăm sóc sức khỏe…) Dữ liệu lớn cho phép liên kết và phân tích nhiều dạng dữ liệu khác nhau Ví dụ, với các comments/post của một nhóm người dùng nào đó trên Facebook với thông tin video được chia sẻ từ Youtube và Twitter
Độ tin cậy/chính xác (Veracity): Một trong những tính chất phức tạp nhất
của Dữ liệu lớn là độ tin cậy/chính xác của dữ liệu Với xu hướng phương tiện truyền thông xã hội (Social Media) và mạng xã hội (Social Network) ngày nay
và sự gia tăng mạnh mẽ tính tương tác và chia sẻ của người dùng mobile làm cho bức tranh xác định về độ tin cậy và chính xác của dữ liệu ngày một khó khăn hơn Bài toán phân tích và loại bỏ dữ liệu thiếu chính xác và nhiễu đang là tính chất quan trọng của Dữ liệu lớn
Giá trị (Value): Giá trị là đặc điểm quan trọng nhất của dữ liệu lớn, vì khi
bắt đầu triển khai xây dựng dữ liệu lớn thì việc đầu tiên chúng ta cần phải làm
đó là xác định được giá trị của thông tin mang lại như thế nào, khi đó chúng ta mới có quyết định nên triển khai dữ liệu lớn hay không Nếu chúng ta có dữ liệu lớn mà chỉ nhận được 1% lợi ích từ nó, thì không nên đầu tư dữ liệu lớn Kết quả dự báo chính xác thể hiện rõ nét nhất về giá trị của dữ liệu lớn mang lại Ví
dụ, từ khối dữ liệu phát sinh trong quá trình khám, chữa bệnh sẽ giúp dự báo về sức khỏe được chính xác hơn, sẽ giảm được chi phí điều trị và các chi phí liên quan đến y tế
Trang 3628
1.3.3 Sự khác biệt giữa dữ liệu lớn và dữ liệu truyền thống
Dữ liệu lớn khác với dữ liệu truyền thống (ví dụ, kho dữ liệu - Data Warehouse) ở 4 điểm [5]: Dữ liệu đa dạng hơn, lưu trữ dữ liệu lớn hơn, truy vấn nhanh hơn, độ chính xác cao hơn
Dữ liệu đa dạng hơn: Khi khai thác dữ liệu truyền thống (thường là dữ
liệu có cấu trúc), chúng ta thường phải trả lời các câu hỏi: Dữ liệu lấy ra kiểu gì? định dạng dữ liệu như thế nào? Đối với dữ liệu lớn, không phải trả lời các câu hỏi trên Hay nói khác, khi khai thác, phân tích dữ liệu lớn chúng ta không cần quan tâm đến kiểu dữ liệu và định dạng của chúng; điều quan tâm là giá trị mà
dữ liệu mang lại có đáp ứng được cho công việc hiện tại và tương lai hay không
Lưu trữ dữ liệu lớn: Lưu trữ dữ liệu truyền thống vô cùng phức tạp và
luôn đặt ra câu hỏi lưu thế nào: dung lượng kho lưu trữ bao nhiêu là đủ? gắn kèm với câu hỏi đó thì chi phí đầu tư sẽ là rất lớn Công nghệ lưu trữ dữ liệu lớn hiện nay đã phần nào có thể giải quyết được vấn đề trên nhờ những công nghệ lưu trữ đám mây, phân phối lưu trữ dữ liệu phân tán và có thể kết hợp các dữ liệu phân tán lại với nhau một cách chính xác và xử lý nhanh
Truy vấn dữ liệu nhanh hơn: dữ liệu lớn được cập nhật liên tục, trong khi
đó kho dữ liệu truyền thống thì lâu lâu mới được cập nhật và trong tình trạng không theo dõi thường xuyên, gây ra tình trạng lỗi cấu trúc truy vấn dẫn đến không tìm kiếm được thông tin đáp ứng theo yêu cầu
Độ chính xác cao hơn: dữ liệu lớn khi đưa vào sử dụng thường được
kiểm định lại dữ liệu với những điều kiện chặt chẽ, số lượng thông tin được kiểm tra thông thường rất lớn, và đảm bảo về nguồn lấy dữ liệu không có sự tác động của con người vào thay đổi số liệu thu thập
Trang 3729
1.3.4 Ứng dụng của dữ liệu lớn trong các lĩnh vực
Dữ liệu lớn đã được ứng dụng trong nhiều lĩnh vực như: hoạt động chính trị, giao thông, y tế, thể thao, tài chính, thương mại, thống kê dưới đây là một
số ví dụ về ứng dụng dữ liệu lớn [5]
1.3.4.1 Chính trị
Cựu tổng thống Mỹ Obama đã xây dựng cho mình một đội ngũ nhân viên chuyên đi thu thập tất cả thông tin về người dân ở các khu vực, sau đó phân tích và chỉ ra một số thông tin quan trọng về người dân Mỹ như: Thích đọc sách
gì, thích mua loại thuốc gì, thích sử dụng phương tiện gì… Thậm chí còn biết được cả thông tin về người đó đã bỏ phiếu tín nhiệm ai ở lần bầu cử trước Trên
cơ sở những thông tin này, Obama đã đưa ra kế hoạch vận động phù hợp, giúp ông tái đắc cử Tổng thống lần 2 của nước Mỹ
1.3.4.2 Giao thông
Sử dụng số liệu CDR (Call Detail Record) trong quá khứ để ước lượng các dòng giao thông trong thành phố vào các giờ cao điểm, từ đó có những kế hoạch phân luồng giao thông chi tiết, hợp lý giúp giảm thiểu kẹt xe Ngoài ra còn đưa ra thông tin cho người tham gia giao thông được biết nếu muốn đi từ nơi này đến nơi khác thì nên đi vào giờ nào để tránh kẹt xe, hoặc đi đường nào
là ngắn nhất v.v Ngoài ra dữ liệu lớn còn giúp phân tích định vị người dùng … thiết bị di động, ghi nhận chi tiết cuộc gọi trong thời gian thực; và giảm thiểu tình trạng ùn tắc giao thông
1.3.4.3 Y tế
Trong y học các bác sĩ dựa vào số liệu trong các bệnh án để đưa ra dự đoán về nguy cơ mắc bệnh Đồng thời cũng đưa ra được xu hướng lây lan của
Trang 3830 bệnh Ví dụ, ứng dụng Google Flu Trend là một trong những ứng dụng thành công của Google ứng dụng này dựa trên từ khóa tìm kiếm ở một khu vực nào
đó, sau đó bộ máy phân tích của Google sẽ phân tích và đối chiếu kết quả tìm kiếm đó, sau cùng là đưa ra dự báo về xu hướng dịch cúm tại khu vực đó Qua
đó cho biết tình hình cúm tại khu vực đó sẽ diễn ra như thế nào để đưa ra các giải pháp phòng tránh Những kết quả mà Google Flu Trend đưa ra, hoàn toàn phù hợp với báo cáo của Tổ chức Y tế Thế giới WHO về tình hình bệnh cúm tại các khu vực đó
1.3.4.6 Thương mại
Trong thương mại dữ liệu lớn giúp cho chúng ta thực hiện được một số công việc sau: Phân khúc thị trường và khách hàng; phân tích hành vi khách hàng tại cửa hàng; tiếp thị trên nền tảng định vị; phân tích tiếp thị chéo kênh, tiếp thị đa kênh; quản lý các chiến dịch tiếp thị và khách hàng thân thiết; So sánh giá; Phân tích và quản lý chuỗi cung ứng; Phân tích hành vi, thói quen người tiêu dùng
Trang 3931
1.3.4.7 Thống kê
Một nghiên cứu thu thập thông tin qua các phương tiện truyền thông ở Hà Lan đã thống kê được nội dung các tin nhắn của người dân Hà Lan, trong đó có đến 50% số tin nhắn vô nghĩa Số liệu này cho thấy kinh phí đã chi ra không đem lại lợi ích cho người dân cũng như xã hội Hà Lan
1.3.5 Những thách thức trong dữ liệu lớn
Tài chính: Nhiều đơn vị, tổ chức không đo lường được vấn đề sẽ phát
sinh trong quá trình triển khai thực hiện, dự toán kinh phí chưa chính xác, do vậy dự án không thực hiện được Để triển khai được thành công, yếu tố tài chính
có ý nghĩa rất quan trọng, một số tập đoàn thương mại lớn có tiềm lực tài chính vững chắc đã xây dựng thuận lợi hệ thống dữ liệu Dữ liệu lớn như IBM, website bán hàng thương mại điện tử Amazon
Chính sách, quy định Luật pháp về truy cập và sử dụng dữ liệu: Việc sử
dụng và khai thác dữ liệu lớn phụ thuộc vào luật quy định của mỗi quốc gia Ví dụ: ở Canada người dùng có thể được tiếp cận dữ liệu từ cả hai tổ chức chính phủ và phi chính phủ, nhưng ở những nước khác như Ireland thì phải được sự cho phép từ các cơ quan chính phủ Điều này có thể dẫn đến những hạn chế để truy cập vào một số loại dữ liệu lớn
Trình độ khai thác và quản lý dữ liệu: Do luật quy định sử dụng và khai
thác ở mỗi quốc gia là khác nhau nên cách quản lý là cũng khác nhau tuy nhiên, một vấn đề liên quan đến quản lý thông tin hiện nay là nguồn nhân lực Khoa học dữ liệu lớn đang phát triển mạnh trong những tổ chức tư nhân, trong khi đó
bộ phận này chưa được liên kết với những tổ chức của chính phủ một cách chặt chẽ dẫn đến việc quản lý vẫn còn nhiều vướng mắc
Hạ tầng công nghệ thông tin: Cần phải cải thiện tốc độ dữ liệu truy cập
vào các dữ liệu hành chính nghĩa là có thể sử dụng giao diện ứng dụng của
Trang 4032 Chương trình chuyên sâu tiêu chuẩn (API) để truy cập dữ liệu Bằng cách này,
nó có thể kết nối các ứng dụng cho dữ liệu thu về và xử lý dữ liệu trực tiếp với
dữ liệu hành chính Ngoài ra hệ thống khai thác dữ liệu lớn cũng cần phải được tính toán để có thể kết nối vào được kho cơ sở dữ liệu truyền thống, đó cũng là một trong những thách thức lớn cần được giải quyết
1.3.6 Hạn chế R trong dữ liệu lớn
Công cụ R được xây dựng như một công cụ phân tích dữ liệu trên máy tính các nhân Do đó dữ liệu R có thể phân tích phải được lưu trữ trên một máy tính Ngày nay, với sự phát triển nhanh chóng của dữ liệu lớn, việc lưu trữ và xử
lý dữ liệu được lưu trữ trên từng máy tính riêng lẻ là một trở ngại lớn và không đáp ứng được nhu cầu Hơn nữa nhiều hàm khai phá dữ liệu của R được phát triển trên những thuật toán chạy trên máy đơn nên hạn chế về khả năng khai phá
dữ liệu lớn và tốc độ khai phá dữ liệu
Với sự phát triển của nền tảng Hadoop và mô hình lập trình song song MapReduce, nếu được kết hợp vào R thì sẽ tăng khả năng phân tích dữ liệu lớn của R
1.4 MÔ HÌNH LẬP TRÌNH MAPREDUCE
Năm 2003, Google công bố bài báo về Google File System (GFS) về tổ chức dữ liệu trên hệ thống phân tán Đến năm 2004, Google tiếp tục công bố nền tảng MapReduce (có thể coi MapReduce là một mô hình lập trình, hay một thuật giải) hoạt động trên nền tảng Google File System (GFS) để xử lý tập dữ liệu lớn, song song trong môi trường phân tán Năm 2005, Doug Cutting
và Mike Cafarella xây dựng thành công mô hình lưu trữ và xử lý dữ liệu dựa trên ý tưởng GFS và MapReduce của Google đặt tên là Hadoop Hadoop là một
dự án mã nguồn mở của Apache được viết bằng Java và Yahoo là công ty đầu