MỞ ĐẦU .1 Lý do chọn đề tài.2 Tổng quan tình hình nghiên cứu đề tài .3 Mục tiêu và nhiệm vụ nghiên cứu .4 Nhiệm vụ nghiên cứu .5 Đối tƣợng và phạm vi nghiên cứu. 4 CHƢƠNG 1: KIẾN THỨC TỔNG QUAN .1 Giới thiệu về học máy. Các thành phần của học máy. Phương thức hoạt động của học máy.
Ứng dụng của học máy .2 Mô hình lập trình MapReduce .1 Tổng quan về mô hình MapReduce.2 Nguyên tắc hoạt động của mô hình MapReduce .3 Một số bài toán ứng dụng mô hình MapReduce [6] .3 Giới thiệu về Spark .2 Thành phần của Apache Spark .3 Quản lý bộ nhớ của Apache Spark .4 Kết luận chƣơng 1. 24 CHƢƠNG 2: THUẬT TOÁN NAÏVE BAYES VÀ BÀI TOÁN DỰ BÁO KHẢ NĂNG HỎNG CỦA ĐĨA CỨNG MÁY TÍNH .1 Thuật toán Naïve Bayes. Mô hình phân lớp Naïve Bayes. Một số kiểu mô hình Naïve Bayes.
Ứng dụng của thuật toán .2 Bài toán dự báo đĩa cứng hỏng .2 Giới thiệu về S.4 Naïve Bayes cho bài toán dự báo khả năng hỏng của đĩa cứng.3 Naïve Bayes theo mô hình lập trình MapReduce cho bài toán dự báo.4 Thuật toán Naïve Bayes thực hiện trên môi trƣờng Spark .5 Học máy trên môi trƣờng Spark.6 Kết luận chƣơng 2. 57 CHƢƠNG 3: THỰC NGHIỆM .1 Cấu trúc dữ liệu thử nghiệm .2 Triển khai thực nghiệm .3 Đánh giá thuật toán. Kết quả đạt đƣợc của luận văn. Kiến nghị và hƣớng nghiên cứu tiếp theo.
76 DANH MỤC TÀI LIỆU THAM KHẢO. 78 DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT Tên viết Thuật ngữ Ý nghĩa tắt CSDL Cơ sở dữ liệu Cơ sở dữ liệu CNTT Công nghệ thông tin Công nghệ thông tin AI Artificial Intelligence Trí tuệ nhân tạo Tập hợp các item đƣợc phân RDD Resilient Distributed DataSet tán trên các node. Đồ thị không chu trình có DAG Directed Acyclic Graph hƣớng Hệ thống lƣu trữ tập tin của HDFS Hadoop Distributed File System Hadoop DANH MỤC CÁC BẢNG Bảng 3.1 Mô tả các thông số SMART từ thu thập dữ liệu .2 Ví dụ tỉ lệ phần trăm của hai đĩa cứng thông qua số liệu thống kê SMART .3: So sánh kết quả thu đƣợc qua mô hình thực nghiệm 1 và mô hình thực nghiệm 2. 75 DANH MỤC CÁC HÌNH VẼ Hình 1.1 Mô hình làm việc của một công việc MapReduce.
Quy trình xử lý của MapReduce [6] .3 Tỉ lệ sử dụng ngôn ngữ lập trình trong 2 năm 2014 và 2015 .4 Các thành phần của Apache Spark [11] .1 Giai đoạn Training [3].2 Giai đoạn phân loại [3].3 Mô tả tập dữ liệu theo định dạng file CSV. Đọc dữ liệu. Tính độ lệch chuẩn cho từng giá trị SMART. Xử lý dữ liệu.
Tính xác suất của từng biến theo phân phối Gausian. Dự đoán dựa vào xác suất .9 Giai đoạn phân loại [5].1 Dữ liệu mẫu .2: Input thƣ viện và cho máy học dữ liệu training và dữ liệu test trên môi trƣờng Pandas.3: Input thƣ viện và cho máy học dữ liệu training và dữ liệu test trên môi trƣờng Spark.4: Tập dữ liệu kiểm tra .5 Inport thƣ viện, môi trƣờng và thuật toán Naïve Bayes.6: Đọc và kiểm tra data training và data testing.7: Đếm tổng số data và số lƣợng data dự đoán lỗi ổ cứng bị thiếu.8: Sắp xếp các giá trị SMART > 0.9: Sắp xếp theo tổng các giá trị SMART trừ SMART 12.10: Sắp theo chu kỳ điện SMART 12.11: Kết quả thu đƣợc từ đếm tổng số dữ liệu đầu vào và đếm số lƣợng dự đoán lỗi ổ cứng bị thiếu dữ liệu.12: Kết quả thu đƣợc từ việc sắp xếp các giá trị SMART.13: Triển khai môi trƣờng Spark bằng googlecolab .14: Import thƣ viện và môi trƣờng spark .15: Cho máy học training data và testing data .16: Triển khai áp dụng thuật toán Naïve Bayes .17: Kết quả thu đƣợc từ đếm tổng số dữ liệu đầu vào và đếm số lƣợng dự đoán lỗi ổ cứng bị thiếu dữ liệu trên Spark.18: Kết quả thu đƣợc từ việc sắp xếp các giá trị SMART trên môi trƣờng Spark.1 Lý do chọn đề tài Trong thế giới kỹ thuật số, cơ sở hạ tầng vật lý và thiết bị vẫn là xƣơng sống của nhiều cơ quan, doanh nghiệp. Dự báo thiết bị hỏng từ lâu đã là mục tiêu cho những ngƣời chịu trách nhiệm quản lý hiệu suất tài sản, những tiến bộ trong công nghệ cảm biến, công nghệ truyền thông, quản lý thông tin và phân tích hiện đang là một trong những hƣớng đi tích cực cho việc dự báo độ hƣ hỏng của thiết bị. Không phải tất cả các dữ liệu đều có giá trị nhƣ nhau khi nói đến việc dự đoán thiết bị hỏng, vì vậy điều quan trọng là phải xác định dữ liệu cần thiết để quản lý thiết bị hỏng.
Dữ liệu đƣợc sử dụng bởi các công cụ phân tích tiên tiến để dự đoán hƣ hỏng đó là, dòng thời gian sản xuất, điều kiện thiết bị và dữ liệu sự kiện đƣợc sử dụng để kiểm soát và theo dõi các quy trình vật lý. Đầu tƣ vào khoa học dữ liệu và các kỹ năng phân tích tiên tiến với sự tập trung vào quản lý thiết bị, dự đoán sẽ giúp hỗ trợ các nỗ lực cải tiến liên tục cho các tổ chức công nghệ thông tin, bất kể tình trạng đầu tƣ hiện tại của doanh nghiệp, sau đó nó có thể giúp đảm bảo mỗi dự án thành công và quan trọng hơn là xây dựng khả năng đáp ứng các yêu cầu cần thiết trong cơ quan, doanh nghiệp. Với những tiến bộ trong các công cụ phân tích để dự báo thiết bị hỏng, đó là sự không thể tránh khỏi rằng các tổ chức với thiết bị quan trọng nhiệm vụ sẽ đầu tƣ và phân tích nâng cao để giúp đảm bảo hoạt động an toàn và đáng tin cậy. Một trong những công cụ mà luận văn hƣớng đến nghiên cứu là thuật toán Naïve Bayes trên môi trƣờng Spark.
Đề tài nghiên cứu “Ứng dụng mô hình học máy Naïve Bayes trên môi trƣờng Spark cho bài toán dự báo khả năng hỏng của đĩa cứng máy tính” nhằm cài đặt và ứng dụng mô hình học máy Naïve Bayes để dự báo việc đĩa cứng máy tính sẽ bị hỏng khi nào nhằm tránh khỏi việc bị động trong 2 việc quản lý đĩa cứng máy tính bị hƣ hỏng ngoài dự đoán của nhà quản lý. Đó là mục tiêu then chốt để hƣớng đến nghiên cứu đề tài.2 Tổng quan tình hình nghiên cứu đề tài Naïve Bayes là một thuật toán dựa trên định luật Bayes về lý thuyết xác suất để đƣa ra các phán đoán cũng nhƣ phân loại dữ liệu dựa trên các dữ liệu đƣợc quan sát và thống kê. Thuật toán Naïve Bayes đƣợc ứng dụng rất nhiều trong lĩnh vực học máy dùng để đƣa các dự đoán chính xác nhất dựa trên một tập dữ liệu đã đƣợc thu thập, vì nó dễ hiểu và có độ chính xác cao [8]. Định luật Bayes đƣợc phát biểu nhƣ sau: P(B|A) P (A) P(A|B)= P(B) Trong đó: - P(A|B) là xác suất xảy ra của một sự kiện ngẫu nhiên A khi biết sự kiện liên quan B đã xảy ra.
- P(B|A) là xác suất xảy ra B khi biết A xảy ra - P(A) là xác suất xảy ra của riêng A mà không quan tâm đến B. - P(B) là xác suất xảy ra của riêng B mà không quan tâm đến A. Một số mô hình áp dụng thuật toán Naïve Bayes [5] - Multinomial model (Mô hình đa thức). - Binary independence model (Mô hình độc lập nhị phân).
- Poisson Naïve Bayes Model - Connection between Poisson and Multinomial Model - Multinomial word model - Negative binomial Naïve Bayes Model Để xây dựng các mô hình này cho bài toán dự báo việc hƣ hỏng của đĩa cứng máy tính thì Spark là một dự án phần mềm mã nguồn mở đƣợc phát triển bởi Apache, nhằm thu các giá trị có ích từ khối lƣợng, tốc độ và tính đa 3 dạng của dữ liệu (cấu trúc/phi cấu trúc). Ban đầu Spark đƣợc phát triển bởi phòng thí nghiệm AMP Lab thuộc trƣờng Đại học California, Berkeley từ năm 2009 với mục đích nhằm nâng cao tốc độ xử lý của các hệ thống Hadoop. Sau đó nó trở thành một công cụ mã nguồn mở miễn phí từ năm 2010 và đƣợc chuyển giao cho Apache Software Foundation vào năm 2013. Spark dần trở thành một trong những dự án trọng tâm của Apache Software Foundation.
Phiên bản đầu tiên đƣợc công bố vào tháng 5/2014 và phiên bản 2.0 đƣợc công bố tháng 7/2016. Phiên bản mới nhất hiện giờ (tính đến tháng 09/2020) là phiên bản 3. Tốc độ xử lý của Spark có đƣợc do việc tính toán đƣợc thực hiện cùng lúc trên nhiều máy khác nhau. Đồng thời việc tính toán đƣợc thực hiện ở bộ nhớ trong (in-memories) hay thực hiện hoàn toàn trên RAM.
Spark cho phép xử lý dữ liệu theo thời gian thực, vừa nhận dữ liệu từ các nguồn khác nhau đồng thời thực hiện ngay việc xử lý trên dữ liệu vừa nhận đƣợc (Spark Streaming). Ứng dụng thuật toán Naïve Bayes cho bài toán dự báo đĩa cứng hỏng trên môi trƣờng Spark để có thể tăng tốc độ xử lý và cho ra kết quả có độ chính xác cao từ lƣợng lớn dữ liệu đƣợc thu thập của các ổ đĩa máy tính và đƣa ra dự báo khi nào thì ổ đĩa hỏng. Đó là hƣớng nghiên cứu cũng nhƣ mục tiêu mà đề tài muốn hƣớng đến.3 Mục tiêu và nhiệm vụ nghiên cứu Tìm hiểu và ứng dụng thuật toán Naïve Bayes trong việc dự báo khả nẳng hỏng của đĩa cứng máy tính, triển khai trên nền tảng Spark. Thực nghiệm và so sánh về tốc độ so với thuật toán khi không chạy trên nền tảng Spark.4 Nhiệm vụ nghiên cứu - Tìm hiểu thuật toán Naïve Bayes 4 - Tìm hiểu về bài toán dự báo đĩa cứng hỏng - Tìm hiểu về lập trình trên môi trƣờng Spark.
- Cài đặt thuật toán Naïve Bayes trên môi trƣờng Spark cho bài toán dự báo đĩa cứng hỏng. - Thực nghiệm và đánh giá 1.5 Đối tƣợng và phạm vi nghiên cứu Đối tƣợng nghiên cứu: - Thuật toán Naïve Bayes. - Bài toán dự báo đĩa cứng hỏng - Môi trƣờng Spark. - Phƣơng pháp lập trình thuật toán Naïve Bayes trên môi trƣờng Spark.
Phạm vi nghiên cứu: - Thuật toán Naïve Bayes theo mô hình lập trình MapReduce và cài đặt thuật toán trên môi trƣờng Spark cho bài toán dự báo đĩa cứng hỏng. 5 CHƢƠNG 1: KIẾN THỨC TỔNG QUAN 1.1 Giới thiệu về học máy 1. Học máy là gì? Học máy (Machine Learning) là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc nghiên cứu và xây dựng các kĩ thuật cho phép các hệ thống "học" tự động từ dữ liệu để giải quyết những vấn đề cụ thể.