1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Kết hợp r và hadoop trong khai phá dữ liệu

87 24 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Kết Hợp R Và Hadoop Trong Khai Phá Dữ Liệu
Thể loại Luận Văn
Định dạng
Số trang 87
Dung lượng 2,7 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

MỤ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 2

1.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 3

BỘ 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 4

Em 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 5

LỜ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 6

DANH 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 7

DANH 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 8

DANH 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 9

sở 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 10

2 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 11

3

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 12

4

- 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 13

5

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 14

6

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 15

7

đó 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 16

8

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 17

9

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 18

10 đầ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 19

11

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 20

12

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 21

13

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 22

14

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 23

Hồ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 24

16

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 25

17 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 26

18

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 27

19 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 28

20 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 29

21 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 30

22

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 31

23 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 32

24

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 33

25

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 34

Khố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 35

27 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 36

28

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 37

29

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 38

30 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 39

31

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 40

32 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

Ngày đăng: 11/08/2021, 15:57

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Lê Thị Việt Hoa (2008), “Khai phá dữ liệu và thuật toán khai phá luật kết hợp song song” Luận văn thạc sĩ, Trường Đại học Thái Nguyên Sách, tạp chí
Tiêu đề: “Khai phá dữ liệu và thuật toán khai phá luật kết hợp song song”
Tác giả: Lê Thị Việt Hoa
Năm: 2008
[2] Vũ Lan Phương (2006), “Nghiên cứu và cài đặt một số giải thuật phân cụm, phân lớp”, Khoa Công nghệ thông tin, Đại học Bách Khoa Hà Nội Sách, tạp chí
Tiêu đề: “Nghiên cứu và cài đặt một số giải thuật phân cụm, phân lớp”
Tác giả: Vũ Lan Phương
Năm: 2006
[3] Nguyễn Văn Tuấn (2006), “Phân tích dữ liệu và tạo biểu đồ bằng R”, Trường Đại học Quy Nhơn, NXB Khoa học kỹ thuật Sách, tạp chí
Tiêu đề: “Phân tích dữ liệu và tạo biểu đồ bằng R”
Tác giả: Nguyễn Văn Tuấn
Nhà XB: NXB Khoa học kỹ thuật
Năm: 2006
[4] Nguyễn Thị Tuyết, Trần Hoàng Việt, Trần Thiên Thành, (12/2017), “Một cải tiến thuật toán -means song song sử dụng phương pháp lấy mẫu”, Kỷ yếu Hội thảo quốc gia Công nghệ thông tin amp; ứng dụng trong các lĩnh vực lần thứ 6, trang 196-203 Sách, tạp chí
Tiêu đề: “Một cải tiến thuật toán -means song song sử dụng phương pháp lấy mẫu”
[5] Tổng hợp theo Kỷ yếu Hội thảo khoa học, (07/10/2015), “Thống kê Nhà nước với Dữ liệu lớn”, Trung tâm Thông tin Khoa học thống kê, Viện Khoa học thống kê Sách, tạp chí
Tiêu đề: “Thống kê Nhà nước với Dữ liệu lớn”
[6] Agrawal R. and Srikant R (1994), “Fast algorithm for mining associantion rules in large databases”, VLDB '94 Proceedings of the 20th International Conference on Very Large Data Bases, Pages 487-499 Sách, tạp chí
Tiêu đề: Fast algorithm for mining associantion rules in large databases”
Tác giả: Agrawal R. and Srikant R
Năm: 1994
[7] Bogdan Oancea, Raluca Mariana Dragoescu, (2014), “Integrating R and Hadoop for Big Data Analysis”, Nicolae Titulescu University of Bucharest, The Bucharest University of Economic Studies Sách, tạp chí
Tiêu đề: “Integrating R and Hadoop for Big Data Analysis”
Tác giả: Bogdan Oancea, Raluca Mariana Dragoescu
Năm: 2014
[8] Crawley M.J, (2005), “Statistics: An Introduction using R”, Wiley Sách, tạp chí
Tiêu đề: “Statistics: An Introduction using R”
Tác giả: Crawley M.J
Năm: 2005
[9] G. Piatetsky, Kdnuggets polls, “Primary programming language for Analytics Data Mining”. Available athttp://www.kdnuggets.com/polls/index.html Sách, tạp chí
Tiêu đề: “Primary programming language for "Analytics Data Mining”
[10] Garry Turkington, Gabriele Modena, (2015), Boo : “Learning Hadoop 2”, Published by Packt Publishing Ltd., pp. 8-16 Sách, tạp chí
Tiêu đề: Boo : “Learning Hadoop 2”
Tác giả: Garry Turkington, Gabriele Modena
Năm: 2015
[11] Ihaka R. and Gentleman R, (1996): “R: A language for data analysis and graphics”, Journal of Computational and Graphical Statistics, 5(3): 299- 314 Sách, tạp chí
Tiêu đề: “R: A language for data analysis and graphics”
Tác giả: Ihaka R. and Gentleman R
Năm: 1996
[12] Information on See5/C5.0, (2011), “RuleQuest Research Data Mining Tools”, Available at: http://www.rulequest.com/see5-info.html Sách, tạp chí
Tiêu đề: “RuleQuest Research Data Mining Tools”
Tác giả: Information on See5/C5.0
Năm: 2011
[13] Jiawei Han, Micheline Kamber (2006), “Data Mining: Concepts and Techniques”, Second Edition, Morgan Kaufmann Publishers Sách, tạp chí
Tiêu đề: “Data Mining: Concepts and Techniques”
Tác giả: Jiawei Han, Micheline Kamber
Năm: 2006
[14] J. A. Hartigan and M. A. Wong, (1979), “A K-means clustering algorithm”, Applied Statistics, Vol. 28, pp. 100-108 Sách, tạp chí
Tiêu đề: “A K-means clustering algorithm”
Tác giả: J. A. Hartigan and M. A. Wong
Năm: 1979
[15] Jeffrey Dean and Sanjay Ghemawat, (2004), Mapreduce: “Simlified Data Processing on Large Clusters”, OSDI 2004 Sách, tạp chí
Tiêu đề: Mapreduce: “Simlified Data Processing on Large Clusters”
Tác giả: Jeffrey Dean and Sanjay Ghemawat
Năm: 2004
[16] L. Breiman, J.H. Friedman, R. Olshen and C.J. Stone, (1984), “Classification and Regression Trees”, Wadsworth International Group, Belmont, California Sách, tạp chí
Tiêu đề: “Classification and Regression Trees”
Tác giả: L. Breiman, J.H. Friedman, R. Olshen and C.J. Stone
Năm: 1984
[17] Maindonald J. and Braun J., (2003), “Data Analysis and Graphics Using R”, Cambridge University Press Sách, tạp chí
Tiêu đề: “Data Analysis and Graphics Using R”
Tác giả: Maindonald J. and Braun J
Năm: 2003
[18] Qiankun Zhao, Sourav S. Bhowmick, “Association Rule Mining: A Survey” Sách, tạp chí
Tiêu đề: Association Rule Mining: A Survey
[20] Spector P., (2004): “An Introduction to R”, Statistical Computing Facility, University of California, Berkeley Sách, tạp chí
Tiêu đề: “An Introduction to R”
Tác giả: Spector P
Năm: 2004
[21] 13.Tom White (2015), “Hadoop The Definitive Guide, 4th Edition”, O’Reilly Sách, tạp chí
Tiêu đề: “Hadoop The Definitive Guide, 4th Edition”
Tác giả: 13.Tom White
Năm: 2015

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w