Tài liệu Nghiên cứu giải pháp xử lý bigdata sử dụng apache spark và ứng dụng hỗ trợ xây dựng dữ liệu bản đồ giao thông thông minh

  • Số trang: 113 |
  • Loại file: PDF |
  • Lượt xem: 32 |
  • Lượt tải: 0
thanhphoquetoi

Tham gia: 05/11/2015

Mô tả:

TRỊNH QUANG ĐĂNG BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC MỞ HÀ NỘI LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN NGHIÊN CỨU GIẢI PHÁP XỬ LÝ BIGDATA SỬ DỤNG APACHE SPARK VÀ ỨNG DỤNG HỖ TRỢ XÂY DỰNG DỮ LIỆU BẢN ĐỒ GIAO THÔNG THÔNG MINH TRỊNH QUANG ĐĂNG 2016-2018 HÀ NỘI - 2018 1 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC MỞ HÀ NỘI LUẬN VĂN THẠC SỸ NGHIÊN CỨU GIẢI PHÁP XỬ LÝ BIGDATA SỬ DỤNG APACHE SPARK VÀ ỨNG DỤNG HỖ TRỢ XÂY DỰNG DỮ LIỆU BẢN ĐỒ GIAO THÔNG THÔNG MINH TRỊNH QUANG ĐĂNG CHUYÊN NGÀNH : CÔNG NGHỆ THÔNG TIN MÃ SỐ: 8480201 NGƢỜI HƢỚNG DẪN KHOA HỌC: TS. TRƢƠNG TIẾN TÙNG HÀ NỘI - 2018 2 LỜI CAM ĐOAN Tôi cam đoan đây là công trình nghiên cứu của riêng tôi. Các số liệu, kết quả nêu trong luận văn là trung thực và chƣa từng đƣợc ai công bố trong bất cứ công trình nào TÁC GIẢ LUẬN VĂN Trịnh Quang Đăng 3 LỜI CẢM ƠN Đầu tiên tôi xin chân thành cảm ơn ngƣời thầy đã hƣớng dẫn trực tiếp tôi TS.Trƣơng Tiến Tùng – Trƣờng Đại học Mở Hà Nội đã tận tình giúp đỡ, động viên, định hƣớng, hƣớng dẫn tôi nghiên cứu và hoàn thành luận văn này. Tôi xin cảm ơn các giảng viên trong Trƣờng Đại học Mở Hà Nội đã giảng dạy và giúp đỡ tôi trong thời gian qua, cảm ơn sự giúp đỡ nhiệt tình của các bạn đồng nghiệp. Trong quá trình nghiên cứu của mình, mặc dự đƣợc sự hƣớng dẫn rất nhiệt tình, đầy trách nhiệm của TS. Trƣơng Tiến Tùng và các thầy cô giáo trong Trƣờng Đại học Mở Hà Nội cùng với sự nỗ lực của cá nhân nhƣng cũng không thể tránh đƣợc những thiếu sót. Tác giả chân thành mong nhận đƣợc những ý kiến đóng góp từ quý Thầy, Cô và các bạn bè đồng nghiệp. Trân trọng cám ơn. Trịnh Quang Đăng 4 MỤC LỤC LỜI MỞ ĐẦU .............................................................................................................1 CHƢƠNG 1: TỔNG QUAN CÔNG NGHỆ BIGDATA CHO BÀI TOÁN GIAO THÔNG .......................................................................................................................4 1.1. Đặt vấn đề ..........................................................................................................4 1.2. Một số nghiên cứu liên quan .............................................................................4 1.3. Giới thiệu các lý thuyết liên quan .....................................................................5 1.3.1. Khái niệm về Bigdata .................................................................................5 1.3.2. Giới thiệu về Ngôn ngữ lập trình R, Công cụ lập trình RStudio và framework Shiny............ ......................................................................................6 1.3.3. Công nghệ dùng trong Bigdata ................................................................12 1.3.4. Sự khác biệt giữa Bigdata và dữ liệu truyền thống ..................................14 1.4. Các đặc trƣng cơ bản của Bigdata ...................................................................15 1.4.1. Khối lƣợng dữ liệu ...................................................................................15 1.4.2. Tốc độ .......................................................................................................15 1.4.3. Đa dạng ....................................................................................................15 1.4.4. Độ tin cậy/chính xác.................................................................................15 1.4.5. Giá trị.......................................................................................................16 1.5. Kiến trúc của Bigdata ......................................................................................16 1.5.1. Kiểu có cấu trúc: ......................................................................................16 1.5.2. Kiểu nửa cấu trúc .....................................................................................17 1.5.3. Kiểu không cấu trúc .................................................................................17 1.6. Ứng dụng Bigdata trong cuộc sống .................................................................18 1.6.1. Các lĩnh vực đang ứng dụng Bigdata .......................................................18 1.6.2. Thực tế sử dụng Bigdata tại Việt Nam .....................................................20 1.7. Giới thiệu bản đồ giao thông thông minh........................................................21 1.8. Ứng dụng cho bản đồ thông minh ...................................................................29 1.9. Kết luận chƣơng 1 ...........................................................................................30 CHƢƠNG 2: GIẢI PHÁP APACHE SPARK VÀ ỨNG DỤNG BẢN ĐỒ THÔNG MINH ........................................................................................................................31 5 2.1. Giới thiệu về Apache Spark ............................................................................31 2.2. Các tính năng của Apache Spark .....................................................................31 2.3. Các thành phần lõi của Apache Spark .............................................................32 2.4. Cơ chế phân cụm của Apache Spark ...............................................................33 2.5. Cơ chế xử lý dữ liệu của Apache spark ...........................................................33 2.6. Xử lý dữ liệu thời gian thực trên Apache spark ..............................................35 2.7. Phân tích dữ liệu trên Apache spark ................................................................35 2.8. Hiệu năng và ứng dụng Apache Spark ............................................................35 2.9. Xử lý dữ liệu đầu vào dữ liệu giao thông ........................................................36 2.10. Phân vùng bản đồ ..........................................................................................37 2.11. Phân vùng thời gian .......................................................................................38 2.12. Kết luận chƣơng 2 .........................................................................................65 CHƢƠNG 3: ỨNG DỤNG HỖ TRỢ XÂY DỰNG DỮ LIỆU BẢN ĐỒ GIAO THÔNG THÔNG MINH ..........................................................................................66 3.1. Mô tả quá trình lấy dữ liệu và xử lý dữ liệu ....................................................66 3.1.1. Mô tả quá trình lấy dữ liệu .......................................................................66 3.1.2. Xử lý dữ liệu ............................................................................................67 3.2. Phân vùng chi tiết bản đồ ................................................................................71 3.3. Cài đặt chi tiết các bài toán .............................................................................72 3.3.1. Bài toán Phân tích thời gian di chuyển dựa trên vùng địa lý ...................79 3.3.2. Bài toán mô hình hóa các đặc trƣng giao thông giữa những vùng địa lý để phát hiện các vấn đề ...........................................................................................83 3.4. Biểu diễn kết quả của các bài toán ..................................................................96 3.4.1. Chi tiết về framework Shiny và cách sử dụng .........................................96 3.4.2. Ứng dụng phân vùng giao thông ..............................................................97 3.4.3. Chức năng dự đoán tình trạng giao thông ................................................98 3.5. Kết luận chƣơng 3 ...........................................................................................90 KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ..............................................................100 TÀI LIỆU THAM KHẢO .......................................................................................102 6 DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT STT 1 2 3 4 5 Tên viết tắt ACC ANN CSS GPS HTML 6 7 JS JSON Tên đầy đủ Accuracy Artifical neural network Cascading Style Sheets Global Positioning System HyperText Markup Language JavaScript JavaScript Object Notation 8 9 10 KNN NB PR K –nearest neighbors Naùve Bayes PageRank 11 RD Random forest 7 Tiếng Việt Độ chính xác Mạng noron nhân tạo Tập tin định kiểu theo tầng Hệ thống định vị toàn cầu Ngôn ngữ đánh dấu siêu văn bản Ngôn ngữ javascrip kiểu định dạng dữ liệu trong sử dụng văn bản thuần tuý (cặp key - value để dữ liệu ) K láng giềng gần nhất Mạng bayes thuật toán xếp hạng các trang web trong bảng kết quả xếp hạng tìm kiếm (SERP) của Google Rừng ngẫu nhiên DANH MỤC CÁC BẢNG BIỂU Bảng 1.1: Cách khai báo các kiểu dữ liệu trong R ............................................................. 10 Bảng 2.1: Phân vùng thời gian cho ngày làm việc và ngày nghỉ ....................................... 39 Bảng 2.2: Giá trị PageRank qua từng lần lặp ..................................................................... 44 Bảng 2.3: Giá trị E(V) và θ của một số vùng .................................................................... 50 Bảng 2.4: Xử lý mẫu qua từng khoảng thời gian trong từng ngày ................................... 53 Bảng 2.5: Xử lý mẫu qua từng khoảng thời gian và liên kết các cặp vùng ...................... 54 Bảng 2.6: Lƣu lƣợng taxi và vận tốc trung bình trên một vùng địa lý............................... 58 Bảng 2.7: Phân loại mƣa theo cấp độ ................................................................................ 59 Bảng 2.8: Phân loại chỉ số nhiệt ........................................................................................ 60 Bảng 2.9: Phân loại điểm sƣơng ....................................................................................... 61 Bảng 2.10: Phân loại nhiệt độ theo mức ............................................................................ 61 Bảng 2.11: Thời tiết trong một khoảng thời gian qua từng ngày ....................................... 62 Bảng 2.12: Bộ các đặc trƣng và Hình thỏi thời tiết của một vùng ..................................... 63 Bảng 2.13: Bộ dữ liệu các đặc trƣng và thời tiết sau khi biến đổi ..................................... 64 Bảng 3.1: Giải thích các thông tin trong bản ghi ............................................................... 67 Bảng 3.2: Xếp hạng vùng theo lƣợt n, trả khách trung bình trong 1 tuần ......................... 76 Bảng 3.3: Xếp hạng theo thuật toán PageRank trên toàn bộ dữ liệu ................................. 77 Bảng 3.4: Thời gian di chuyển giữa một số vùng .............................................................. 82 Bảng 3.5: Các cặp vùng liền kề thƣờng xuyển xảy ra vấn đề ............................................ 86 Bảng 3.6: Một số luật liên kết giữa những cặp vùng ......................................................... 87 Bảng 3.7: Độ chính xác của mô hình dự đoán lƣu lƣợng sử dụng KNN ........................... 93 Bảng 3.8: Độ chính xác của mô hình dự đoán lƣu lƣợng sử dụng RD, NB, ANN ............ 93 Bảng 3.9: Độ chính xác của mô hình dự đoán vận tốc sử dụng KNN ............................... 94 Bảng 3.10: Độ chính xác của mô hình dự đoán vận tốc sử dụng RD, NB, ANN .............. 94 Biểu đồ 2.1: Số lƣợng chuyến taxi của một hãng theo ngày và thời gian ......................... 56 Biểu đồ 2.2: Vận tốc di chuyển của taxi của một hãng theo ngày và thời gian ................. 57 8 DANH MỤC CÁC HÌNH VẼ Hình 1.1: Thống kê các nguồn dữ liệu hiện nay ................................................................. 6 Hình 1.2: Giao diện Công cụ lập trình RStudio ................................................................... 8 Hình 1.3: Các công ty tham gia vào Bigdata ..................................................................... 13 Hình 1.4: Mô hình SV5 .................................................................................................... 15 Hình 1.5: Xếp hạng các trang theo thuật toán PageRank .................................................. 26 Hình 1.6: Mô tả thuật toán K láng giếng gần nhất ............................................................ 23 Hình 1.7: Cây quyết định cho bài toán chơi thể thao ........................................................ 26 Hình 1.8: Mạng noron nhân tạo ........................................................................................ 27 Hình 2.1: Các thành phần lõi apache spark ........................................................................ 38 Hình 2.2: Phân cụm trong apache spark ............................................................................ 33 Hình 2.3: Sơ đồ xử lý dữ liệu ............................................................................................. 36 Hình 2.4: Sơ đồ nhập dữ liệu ............................................ Error! Bookmark not defined. Hình 2.5: Phân vùng bản đồ theo kích thƣớc 10x10 và bán kính 1 km ............................. 37 Hình 2.6: Kiến trúc của bài toán xếp hạng vùng ................................................................ 49 Hình 2.7: Biểu diễn một số quỹ đạo trên bản đồ................................................................ 41 Hình 2.8: Đồ thị có hƣớng G và ma trận liền kề biểu diễn ................................................ 43 Hình 2.9: Kiến trúc của bài toán phân tích thời gian di chuyển ........................................ 45 Hình 2.10: Kiến trúc của bài toán mô hình hóa các đặc trƣng giao thông để phát hiện các vấn đề ................................................................................................................... 47 Hình 2.11: Ví dụ về skyline ............................................................................................... 49 Hình 2.12: Kiến trúc của bài toán dự đoán lƣu lƣợng và vận tốc trung bình .................... 50 Hình 2.13: Đồ thị có hƣớng G và ma trận liền kề biểu diễn .............................................. 51 Hình 3.1: Phân vùng bản đồ và đánh số thứ tự .................................................................. 71 Hình 3.2: Biểu diễn các vùng nhiều lƣợt trả khách............................................................ 78 Hình 3.3: Một số vùng sử dụng trong bài toán Phân tích thời gian di chuyển .................. 81 Hình 3.4: Biểu diễn một số vùng thƣờng xuyên xảy ra vấn đề .......................................... 87 Hình 3.5: Một số vùng sử dụng trong đánh giá bài toán .................................................... 92 9 LỜI MỞ ĐẦU Trên thế giới giao thông luôn là vấn đề cấp thiết với bất cứ quốc gia nào. Hiện tại giao thông Việt Nam đang phát triển nhanh và dẫn đầu trong khu vực, tốc độ phát triển trong năm 2018 là rất nhanh chóng, đứng thứ nhất trong khu vực và thứ 2 thế giới chỉ sau Ấn Độ [14]. Tuy nhiên sự phát triển nhanh luôn đi kèm với thách thức lớn đặc biệt là vấn đề cơ sở hạ tầng ở những đô thị lớn. Quá trình đô thị hóa đã thu hút ngƣời dân về các đô thị để có cơ hội việc làm, học tập và sinh hoạt. Nhiều khu kinh tế, khu chức năng, khu đô thị đƣợc hình thành kéo theo nhu cầu đi lại của ngƣời dân. Phát triển đô thị luôn luôn phải tiến hành song song với phát triển cơ sở hạ tầng tuy nhiên tốc độ phát triển nhanh dẫn tới cơ sở hạ tầng không thể đáp ứng đƣợc nhu cầu đi lại của ngƣời dân. Phát triển kinh tế mang lại cho ngƣời dân điều kiện sống ngày càng nâng cao, chất lƣợng cuộc sống ngày càng cải thiện dẫn đến nhu cầu sử dụng phƣơng tiện cá nhân tăng cao. Cụ thể, tốc độ phát triển của phƣơng tiện cá nhân tại Việt Nam đang diễn ra rất nhanh. Riêng đối với thủ đô Hà Nội, sở giao thông vận tải Hà Nội cho biết trong năm 2018 đã có hơn 5 triệu xe máy, gần 500 nghìn ô tô và khoảng 1,2 triệu phƣơng tiện từ các tỉnh ngoại thành tham gia giao thông Hà Nội và dự kiến đến năm 2020 sẽ có hơn 800 nghìn ô tô, hơn 6 triệu xe máy, con số này là gần 2 triệu ô tô và 7,5 triệu xe máy vào năm 2030 . Sự phát triển phƣơng tiện cá nhân đang ở mức báo động, Ủy ban nhân dân thành phố Hà Nội đã đề xuất và thực hiện nhiều giải pháp tuy nhiên chƣa có giải pháp nào thực sự đem tới làn gió mới cho giao thông tại Hà Nội. Nhìn qua một số giải pháp gần đây nhƣ: đổi giờ học, giờ làm việc, dự án xe bus nhanh BRT. Dự án đổi giờ học, giờ làm chƣa mang lại hiệu quả giảm ùn tắc rõ dệt. Dự án xe bus nhanh BRT không mang lại hiệu quả cao nếu không muốn nói là thất bại. Trƣớc tình hình , chính quyền thành phố Hà Nội đã quyết định thực hiện đề án cấm xe máy. Nhìn về quá khứ, các thành phố lớn của Trung Quốc cũng đã gặp tình trạng tƣơng tự nhƣ Hà Nội hiện nay và lựa chọn giải pháp cấm phƣơng tiện cá nhân và phát triển vận tải công cộng, điển hình nhƣ Bắc Kinh cấm xe máy từ năm 1985, Quảng Châu là 2007 và Thƣợng Hải là 2002 . 1 Trƣớc giai đoạn thực hiện đề án cấm xe máy tác giả mong muốn có giải pháp giải quyết vấn đề trƣớc mắt cũng nhƣ lâu dài góp phần giải quyết vấn đề giao thông tác giả mong muốn xây dựng bản đồ thông minh nhằm giúp ngƣời dùng có đƣợc những chỉ dẫn khi tham gia giao thông. Bản đồ thông minh là hệ thống bản đồ có thể đƣa ra những tuyến đƣờng hợp lý nhất mà ngƣời dùng đặt trƣớc điểm xuất phát và đích đến, bản đồ sẽ cũng cấp tình trạng giao thông theo thời gian thực ở khu vực đã nhƣ lƣu lƣợng giao thông, có ách tắc do tai nạn hoặc vấn đề khác không , ngoài ra các thông số cơ bản về tuyến đƣờng nhƣ: biển báo, đƣờng một hoặc hai chiều, tốc độ cho phép…Tác giả thông qua xử lý Bigdata hệ thống sẽ thu thập và đƣa cho ngƣời dùng những chỉ dẫn hợp lý. Hiện nay ở trên thế giới Bigdata đƣợc xem nhƣ sự ra đời tất yếu của quá trình bùng nổ thông tin. Bigdata đƣợc đặc trƣng bởi hai tính chất là: độ lớn lƣu trữ và độ phức tạp, hai tính chất này luôn đi kèm với nhau, trong tính chất phức tạp cũng đặc trƣng và thách thức hơn vấn đề về độ lớn của dữ liệu. Nhờ vậy việc phân tích xử lý Bigdata, sẽ khiến tiết kiệm đƣợc chi phí, tăng lợi nhuận cũng nhƣ hiệu quả hoạt động. Bigdata và các công nghệ phân tích có khả năng làm thay đổi hoàn toàn bộ mặt của giao thông hiện nay. Tuy nhiên, tình hình khai thác Bigdata tại Việt Nam vẫn chƣa thu hút đƣợc nhiều sự quan tâm, nghiên cứu. Chính vì vậy việc thu thập, phân tích, xử lý Bigdata nhằm phát huy giá trị to lớn của nó là điều vô cùng quan trọng. Ứng dụng xử lý Bigdata là Apache Spark. Do Apache Spark không chỉ hữu ích cho học máy mà cũng cho cả việc xử lý luồng dữ liệu hoàn chỉnh. Từ cho phép thu thập dữ liệu, phân tích, xử lý Bigdata và truy xuất đƣợc các thông tin về tình trạng giao thông. Tất cả cơ sở dữ liệu này sẽ đƣợc sử dụng để xây dựng ― bản đồ thông minh‖ về giao thông nhằm hỗ trợ tƣ vấn giúp ngƣời tham gia giao thông lựa chọn đƣợc phƣơng án di chuyển tối ƣu nhằm giảm thiểu tắc nghẽn giao thông, tiết kiệm nhiên liệu. Từ nhu cầu thực tế , học viên với sự giúp đỡ của TS. Trƣơng Tiến Tùng đã lựa chọn đề tài ―Nghiên cứu giải pháp xử lý Bigdata sử dụng Apache Spark và ứng dụng hỗ trợ xây dựng dữ liệu bản đồ giao thông thông minh‖ cho luận văn tốt nghiệp thạc sĩ của mình. 2 Luận văn của Tác giả gồm có 3 chƣơng với nội dung cơ bản sau: Chƣơng 1: Tổng quan công nghệ bigdata ứng dụng cho bài toán giao thông Chƣơng 2: Giải pháp APACHE SPARK và ứng dụng bản đồ giao thông Chƣơng 3: Ứng dụng hỗ trợ xây dựng dữ liêu bản đồ giao thông thông minh 3 CHƢƠNG 1: TỔNG QUAN CÔNG NGHỆ BIGDATA CHO BÀI TOÁN GIAO THÔNG Trong chƣơng này tác giả giới thiệu tổng quan về Bigdata: Khái niệm, đặc trƣng cùng với một số ứng dụng Bigdata tại Việt Nam, trên thế giới và bản đồ giao thông thông minh . 1.1. Đặt vấn đề Hiện nay, vấn đề giao thông luôn là mối quan tâm hàng đầu của các đô thị. Trong những năm gần đây, các đô thị thƣờng xuyên xảy ra tắc đƣờng vào giờ cao điểm và nguồn gốc của vấn đề đƣợc nhận định là do cơ sở hạ tầng không đủ đáp ứng và quy hoạch thiếu hợp lý. Với một quy hoạch tốt, các vấn đề về giao thông có thể đƣợc giảm thiểu giúp cải thiện tình hình giao thông trong tƣơng lai. Đặc trƣng của giao thông bao gồm những thông tin: Lƣu lƣợng, tốc độ, thời gian và khoảng cách di chuyển và một số thông tin liên quan. Những thông tin này bị ảnh hƣởng bởi những yếu tố bên ngoài nhƣ các sự kiện đặc biệt hay do thời tiết. Mỗi thay đổi đều có thể dẫn đến các vấn đề trong giao thông nhƣ trời năng nóng hay trời mƣa. Để thực hiện, yêu cầu tiên quyết là phải thu thập dữ liệu. Dữ liệu có thể thu thập thông qua hai hƣớng chính là dữ liệu từ thiết bị giám sát hành trình hoặc thông qua camera giám sát giao thông. Tuy nhiên đối với camera giám sát giao thông, việc trích xuất đƣợc các thông tin nhƣ tốc độ và khoảng cách di chuyển là không thể thu thập thông qua thiết bị giám sát hành trình. Ngoài ra sau khi đã thu thập đƣợc dữ liệu, cần phải xử lý dữ liệu để xác định tốc độ, lƣu lƣợng, thời gian, khoảng cách di chuyển để phát hiện những điểm nóng, dự đoán tình trạng giao thông dựa trên những thông tin thu thập đƣợc, xác định những thay đổi do các yếu tố bên ngoài, phục vụ cho việc phát hiện vấn đề và đƣa ra hƣớng phải quyết phù hợp. 1.2. Một số nghiên cứu liên quan Tài liệu trình bày một trong những nghiên cứu trong lĩnh vƣc giao thông [15] , nghiên cứu bao gồm nhiều bài toán giải quyết các vấn đề nhƣ: Giao thông thông minh. Nghiên cứu tiến hành chia bản đồ thành nhiều vùng dựa trên các trục đƣờng lớn và nhỏ phân chia các tuyến phố, từ dữ liệu taxi để tính toàn mật độ xe, 4 tốc độ và khoảng cách di chuyển giữa những cặp vùng nhằm đánh giá giao thông giữa cặp vùng và tìm ra những khu vực quy hoạch không hợp lý. Dựa trên dữ liệu taxi thu thập đƣợc ở Hà Nội một nhóm tác giả đã thực hiện nghiên cứu để thực hiện một số bài toán nhƣ: Phân tích, dự báo các chuyến taxi sử dụng dữ liệu bổ sung (bao gồm các điểm đến ƣa thích, điều kiện thời tiết) từ đã ƣớc tính nhu cầu taxi; khám phá mối quan hệ giữa lƣu lƣợng taxi và hoạt động của điện thoại di động, xác định khoảng thời gian và không gian tối ƣu; nghiên cứu về mối quan hệ giữa dữ liệu đô thị bằng cách kiểm tra sự tƣơng tác giữa tính di động của taxi, điều kiện khí hậu và mức độ tập trung của khí thải để ƣớc tính nồng độ các chất gây ô nhiễm trong không khí. 1.3. Giới thiệu các lý thuyết liên quan: 1.3.1. Khái niệm về Bigdata Bigdata là một thuật ngữ dùng để mô tả các bộ dữ liệu có kích thƣớc rất lớn, khả năng phát triển nhanh, rất khó thu thập, lƣu trữ, quản lý và phân tích với các Công cụ thống kê hay ứng dụng cơ sở dữ liệu truyền thống. Bigdata rất quan trọng với các tổ chức, doanh nghiệp. Dữ liệu ngày một lớn và nhiều sẽ giúp các phân tích càng chính xác hơn. Việc phân tích chính xác này sẽ giúp doanh nghiệp đƣa ra các quyết định giúp tăng hiệu quả sản xuất, giảm rủi ro và chi phí [1]. Một số nhóm kiểu Bigdata: Hình 1.1. Thống kê các nguồn dữ liệu hiện nay 5 Thứ nhất là dữ liệu của các hệ thống doanh nghiệp truyền thống bao gồm các dữ liệu từ hệ thống CRM, các giao dịch của hệ thống ERP, các dữ liệu kế toán…. Thứ hai là dữ liệu máy tạo ra/ Dữ liệu từ các thiết bị cảm biến: Bao gồm CDR, các dữ liệu ghi log thiết bị, … Thứ ba là dữ liệu mạng xã hội (Social data): bao gồm các dữ liệu đƣợc sinh ra từ quá trình sử dụng mạng xã hội của ngƣời dùng nhƣ: Hình ảnh, video, thông tin trên Facebook, Twitter, … 1.3.2. Giới thiệu về Ngôn ngữ lập trình R, Công cụ lập trình RStudio và framework Shiny 1.3.2.1 Giới thiệu về Ngôn ngữ lập trình R R là một hệ thống cho tính toán thống kê và đồ họa. R bao gồm một ngôn ngữ và một Runtime environment với đồ họa, trình sửa lỗi, truy nhập vào một số chức năng hệ thống và chạy các chƣơng trình đã đƣợc lƣu trữ. R đƣợc viết bởi Ross Ihaka và Robert Gentleman tại Phòng Thống kê của Đại học Auckland ở New Zealand, thiết kế của R bị ảnh hƣởng lớn từ S và Scheme. Ngoài ra vì là Ngôn ngữ lập trình Mã nguồn mở nên R cũng có sự ng góp lớn tới từ các cá nhân.R hỗ trợ nhiều hệ điều hành khác nhau nhƣ: Unix, Windows, Mac. R thân thiện hơn đối với một số ngôn ngữ khác và nên sử dụng kết hợp với công cụ lập trình RStudio. 6 1.3.2.2 Cài đặt R và Rstudio Để cài đặt R, truy nhập vào trang chủ của R [28], chọn hệ điều hành, tiếp theo lựa chọn base cho lần cài đặt đầu tiên sau chọn download, sau khi download, chạy bộ cài để hoàn tất cài đặt ban đầu. Sau khi cài đặt, nếu thành công sẽ xuất hiện icon mang chữ ―R‖ trong danh sách chƣơng trình. Cài môi trƣờng: Sau khi cài đặt xong R, cần phải cài đặt môi trƣờng bằng cách Chuột phải vào My Computer chọn Properties. Chọn Advanced system settings. Chọn Environment variables. Trong phần User variables, tìm biến Path, chọn Edit hoặc nếu chƣa có chọn New và đặt tên biên là Path. Thêm đƣờng dẫn của file R.exe từ folder R đã cài đặt lúc trƣớc (có phân biệt x86 và x64) vào Variable value. Chọn Ok và hoàn tất cài đặt biến môi trƣờng. RStudio là một bộ các công cụ tích hợp đƣợc thiết kế để làm việc với R hiệu quả hơn. Nó bao gồm một trình soạn thảo, trình kiểm tra cú pháp, hỗ trợ chạy Mã trực tiếp và một loạt các Công cụ để vẽ, lƣu vết lịch sử, gỡ lỗi và quản lý không gian nhớ. RStudio là phần mềm miễn phí cho cá nhân sử dụng. Để cài đặt, truy nhập trang web của phần mềm [29], lựa chọn phiên bản Desktop Non-commerical. Sau khi hoàn tất cài đặt, giao diện ngƣời dùng của RStudio nhƣ hình 1.2 7 Hình 1.2 : Giao diện Công cụ lập trình RStudio Phía trên cùng là phần thƣ mục hiện tại, ngƣời dùng có thể xem bằng câu lệnh getwd() hoặc thay đổi bằng câu lệnh setwd(―địa chỉ‖). Phía dƣới là thanh công cụ, ngƣời dùng có thể lựa chọn các hành động nhƣ tạo dự án mới, tạo mới tập tin, chỉnh sửa và làm một số hành động khác. Phía dƣới bên trái là cửa số Console, ngƣời dùng có thể gõ câu lệnh đơn giản sau dấu nhắc ―>‖ và R sẽ thực hiện lệnh và trả về kết quả. Phía trên bên trái là cửa sổ Script, ngƣời dùng có thể viết câu lệnh vào đây và lƣu lại, ngoài ra để chạy trực tiếp câu lệnh từ cửa sổ này, ngƣời dùng chọn vào một dũng và chọn Run hoặc bụi đen và chọn Run nếu muốn chạy một phần nào . Phía trên bên phải là phần Environment hiện danh sách những biến đã khởi tạo hoặc đƣợc lƣu (R có hỗ trợ lƣu giá trị các biến đã khởi tạo trƣớc trong 1 file gọi là .Rdata trong cùng 1 thƣ mục và có thể tiếp tục sử dụng cho những lần sau) và History là lịch sử những câu lệnh mà ngƣời dùng đã chạy. Phía dƣới bên phải Files là phần hỗ trợ hiển thị bao gồm: Danh sách file trong thƣ mục đƣợc trỏ đến, biểu đồ, các gói đã cài đặt, hỗ trợ, xem giá trị các biến lớn. 8 1.3.2.3. Các kiểu dữ liệu, cách khai báo trong R Các kiểu dữ liệu: Khác với một số ngôn ngữ lập trình thông dụng nhƣ C, C++ hay Java, các biến trong R không cần khai báo kiểu dữ liệu, các biến đƣợc gán nhƣ một Object và tùy vào giá trị của biến mà biến đƣợc xác định kiểu dữ liệu khác nhau. Trong R có 6 kiểu dữ liệu cơ bản. Logical: Dữ liệu kiểu Logic (TRUE/FALSE). Numberic: Dữ liệu kiểu số (1.2, 0.5, …). Integer: Dữ liệu kiểu số nguyên (1,2, …). Complex: Dữ liệu kiểu số thực (1+2i, 3+2i, …). Character: Dữ liệu kiểu chuỗi (―Hello‖, ―World‖, …). Raw: Dữ liệu kiểu byte (00 00, 48 65 6c 6c 6f, … ), mặc định là hệ 16. Dựa trên 6 loại dữ liệu nguyên thủy, R có một số cấu trúc dữ liệu Vectors: Vector lƣu trữ danh sách các dữ liệu cùng kiểu. Lists: Tƣơng tự vector nhƣng có thể lƣu trữ các kiểu dữ liệu khác nhau. Matrices: Ma trận, là một mảng 2 chiều, các dữ liệu phải cùng kiểu. Arrays: Mảng lƣu trữ các dữ liệu cùng kiểu, tuy nhiên có thể có nhiều chiều mà không giới hạn ở 2 nhƣ ma trận. Factors: Đƣợc tạo ra từ vector, lƣu trữ vector cùng với giá trị riêng biệt. Data Frames: Lƣu trữ dữ liệu dƣới dạng bảng. Mỗi cột là một kiểu dữ liệu khác nhau, data frame đƣợc tạo từ một danh sách các vector có độ dài bằng nhau. Bảng 1.1 biểu diễn cách khai báo các kiểu dữ liệu trong R 9 Bảng 1.1: Cách khai báo các kiểu dữ liệu trong R Kiểu dữ liệu Khai báo Vectors vector <- c('green', 'red', 'purple') Lists list <- list (TRUE, 1.2, 5, 'Hello') Matrices matrix <- matrix(c(1:9), nrow=3, ncol=3) Arrays array <- array(c('green','red'),dim = c(2,2,2)) Factors vector <- c('green', 'red', 'yellow', 'orange', 'red', 'yellow', 'orange') factor <- factor(vector) DataFrames studentList <- data.frame( name = c("Nguyen Van A", "Tran Van B"), gender = c("Male", "Male‖), age = c(22, 24) ) Một số phép toán và hàm trong R Để gán giá trị cho một biến trong R, có thể sử dụng ký tự = hoặc <-. Khi phát triển R, ký tự <- dùng để gán giá trị cho biến trong R, sau này ký tự = đƣợc chấp nhận để gán giá trị cho biến.. Tuy nhiên, ký tự = không đƣợc chấp nhận rộng rãi bởi ký tự = thƣờng đƣợc sử dụng trong việc truyền tham số của các hàm. Các phép cộng, trừ, nhân, chia trong R sử dụng toán tử ―+‖, ―-―, ―*‖, ―/‖. Phép lũy thừa sử dụng toán tử ―^‖ và chia lấy phần dƣ sử dụng ―%%‖. Để ép kiểu dữ liệu trong R, sử dụng cú pháp as, ví dụ muốn ộp kiểu biến x sang integer sử dụng as.integer(x). Ngoài ra R có phân biệt biến global và biến local, nếu một biến đã đƣợc khai báo là global, sử dụng <- để thay đổi giá trị của biến global trong phạm vi thực hiện 10 (nhƣ trong một function), để thay đổi giá trị của biến trong toàn bộ phiên sử dụng <<-. R cung cấp một số hàm đọc dữ liệu từ file nhƣ đọc vào 1 data frame (read.csv), đọc vào 1 bảng(read.table), đọc vào 1 bảng và chuyển sang data frame (read.delim), read.socket(), read.Line() …. Để ghi dữ liệu, sử dụng một số hàm nhƣ: write(), write.csv(), write.table() …. R có thể làm nhiều thống kê và phân tích dữ liệu, và có hỗ trợ cài đặt các gói đƣợc cung cấp. Để cài đặt một gói sử dụng có pháp install.packages(―package name‖). Hàm trong R đƣợc định nghĩa bằng có pháp: functionName <- function (arg1, arg2, …). Ngoài ra, RStudio cũng hỗ trợ làm việc trên nhiều phần khác nhau, mỗi phần sẽ hoạt động riêng biệt và không ảnh hƣởng tới nhau, để làm việc trên một phiên khác, lựa chọn Session, New Session, để lấy thông tin của phiên hiện tại sử dụng câu lệnh SessionInfo(). Giới thiệu về framework Shiny: Shiny là một framework đƣợc phát triển và tích hợp sẵn trong RStudio thông qua package Shiny. Shiny giúp dễ dàng xây dựng các ứng dụng web tự động tƣơng tác với R thông qua XmlHttpRequest, các ứng dụng có thể hoạt động độc lập hoặc nhúng vào các ứng dụng khác, mở rộng với CSS, htmlwidgets và JavaScript. Để sử dụng framework Shiny, trƣớc tiên phải cài đặt gói bằng câu lệnh: install.packages(―shiny‖). Đối với RStudio, sử dụng bằng cách chọn File, New Project, New Directory, Shiny Web Application, đặt tên cho web app và chọn Create Project. Sau khi hoàn tất sẽ xuất hiện 2 file server.R và ui.R tƣơng ứng với server xử lý và giao diện UI. Đánh giá ƣu, nhƣợc điểm của R Ưu điểm R là phần mềm Mã nguồn mở, cho phép sử dụng và sửa đổi, R không hạn chế về giấy phép và quyền tác giả. 11
- Xem thêm -