Ứng Dụng Random Forest Nhận Dạng Lỗi Cho Cloud Computing Iaas (LV thạc sĩ)Ứng Dụng Random Forest Nhận Dạng Lỗi Cho Cloud Computing Iaas (LV thạc sĩ)Ứng Dụng Random Forest Nhận Dạng Lỗi Cho Cloud Computing Iaas (LV thạc sĩ)Ứng Dụng Random Forest Nhận Dạng Lỗi Cho Cloud Computing Iaas (LV thạc sĩ)Ứng Dụng Random Forest Nhận Dạng Lỗi Cho Cloud Computing Iaas (LV thạc sĩ)Ứng Dụng Random Forest Nhận Dạng Lỗi Cho Cloud Computing Iaas (LV thạc sĩ)Ứng Dụng Random Forest Nhận Dạng Lỗi Cho Cloud Computing Iaas (LV thạc sĩ)Ứng Dụng Random Forest Nhận Dạng Lỗi Cho Cloud Computing Iaas (LV thạc sĩ)Ứng Dụng Random Forest Nhận Dạng Lỗi Cho Cloud Computing Iaas (LV thạc sĩ)Ứng Dụng Random Forest Nhận Dạng Lỗi Cho Cloud Computing Iaas (LV thạc sĩ)Ứng Dụng Random Forest Nhận Dạng Lỗi Cho Cloud Computing Iaas (LV thạc sĩ)Ứng Dụng Random Forest Nhận Dạng Lỗi Cho Cloud Computing Iaas (LV thạc sĩ)Ứng Dụng Random Forest Nhận Dạng Lỗi Cho Cloud Computing Iaas (LV thạc sĩ)
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-
NGUYỄN VĂN QUÝ
ỨNG DỤNG RANDOM FOREST NHẬN DẠNG LỖI CHO
CLOUD COMPUTING IAAS
LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)
THÀNH PHỐ HỒ CHÍ MINH - 2017
Trang 2HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-
NGUYỄN VĂN QUÝ
ỨNG DỤNG RANDOM FOREST NHẬN DẠNG LỖI CHO
CLOUD COMPUTING IAAS
Chuyên ngành: Hệ thống thông tin
Trang 3i
Trang 4
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 kỳ công trình nào khác
Tp Hồ Chí Minh, ngày….tháng….năm 2017
Học viên thực hiện luận văn
Nguyễn Văn Qúy
Trang 5LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn chân thành nhất đến Thầy PGS.TS Trần Công Hùng, người đã tận tình hướng dẫn, hỗ trợ và giúp đỡ tôi rất nhiều trong nghiên cứu luận văn Thầy đã đưa ra những định hướng, nhận xét và góp ý quý giá để luận văn này được hoàn thành tốt nhất Cùng với đó là sự hướng dẫn tận tình, góp ý và định hướng luận văn nghiên cứu của ThS Bùi Thanh Khiết, anh đã dõi theo và giúp đỡ rất nhiều trong quá trình thực hiện luận văn
Kính gửi lời cảm ơn sâu sắc đến quý Thầy, Cô giảng viên trong thời gian qua
đã nhiệt tình giảng dạy và truyền đạt những kiến thức chuyên môn cần thiết trong quá trình tôi được học tập tại Học viện Công nghệ Bưu chính Viễn thông – Cơ sở II, Thành phố Hồ Chí Minh
Xin gửi lời cảm ơn sâu sắc đến Ban giám đốc Học viện Bưu chính Viễn thông, Cán bộ Phòng Đào tạo của trường đã nhiệt tình giúp đỡ và tạo điều kiện thuận lợi để tôi có được môi trường học tập tốt và hoàn tất khóa học
Xin gửi lời biết ơn vô hạn đến gia đình đã không ngừng quan tâm, động viên, ủng hộ về mặt tinh thần lẫn vật chất trong suốt thời gian tôi tham gia khóa học và thực hiện luận văn này
Cảm ơn các anh chị đồng nghiệp, bè bạn lớp Cao học Hệ thống thông tin khóa 2015-2017 đã giúp đỡ và đồng hành cùng tôi trong những năm tháng học tập tại nhà trường
Tp Hồ Chí Minh, ngày….tháng….năm 2017
Học viên thực hiện luận văn
Nguyễn Văn Qúy
Trang 6MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT v
DANH MỤC CÁC HÌNH VẼ v
DANH SÁCH BẢNG vii
MỞ ĐẦU 1
CHƯƠNG 1 - TỔNG QUAN VỀ NHẬN DẠNG LỖI TRONG CLOUD 3
1.1 Giới thiệu 3
1.1.1 Dịch vụ cơ sở hạ tầng IaaS 3
1.1.2 Lỗi trong cloud IaaS 4
1.2 Một số phương pháp nhận dạng lỗi trên điện toán đám mây 5
1.3 Các tham số đo lường các phương pháp nhận dạng lỗi cho cloud computing 8
1.4 Kết luận Chương 1 8
CHƯƠNG 2 - THUẬT TOÁN RANDOM FOREST 9
2.1 Nguồn gốc ra đời của thuật toán 9
2.2 Thuật toán Random Forest 9
2.2.1 Giới thiệu thuật toán Random Forest 9
2.2.2 Lịch sử của thuật toán Random Forest 10
2.2.3 Thuật toán Random Forest 10
2.2.4 Đặc tính của thuật toán Random Forest 11
2.2.5 Tóm tắt giải thuật 12
2.2.6 Đặc điểm của Random Forest 13
2.2.7 Mô hình phân lớp với Random Forest 14
2.3 Các độ đo đánh giá thuật toán phân loại: 14
Trang 72.3.1 Tiêu chí ROC 14
2.3.2 Tiêu chí CE 15
2.4 Kết luận chương 2 16
CHƯƠNG 3 - SỬ DỤNG RANDOM FOREST DỰ ĐOÁN LỖI GOOGLE CLUSTER 17
3.1 Tổng quan về Google cluster 17
3.1.1 Kỹ thuật cluster 17
3.1.2 Google cluster trace 20
3.2 Xây dựng tập dữ liệu dataset 22
3.3 Kỹ thuật phân lớp 26
3.4 Kết luận chương 3 30
CHƯƠNG 4 - ĐÁNH GIÁ KẾT QUẢ ĐẠT ĐƯỢC VÀ PHƯƠNG HƯỚNG PHÁT TRIỂN 31
4.1 Các kết quả đạt được: 31
4.1.1 Môi trường thực nghiệm 31
4.1.2 Đánh giá dựa theo các độ đo 32
4.1.3 Kết quả tổng thể 355
4.2 Phương hướng phát triển 355
KẾT LUẬN……… ………37
DANH MỤC TÀI LIỆU THAM KHẢO 388
Trang 8DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
nhiên
characteristic
Đường cong ROC
Curve
Khu vực dưới đường ROC
CSV Comma Separated Values Định dạng tập tin
instruction extracted
Truy cập bộ nhớ cho mỗi lệnh trích ra
Trang 9DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Kiến trúc dịch vụ cơ sở hạ tầng 1
Hình 2.1 Mô hình phân lớp 12
Hình 3.1 Trạng thái dịch chuyển giữa các job và các task 20
Hình 3.2 Biểu đồ CPU kể từ lúc bắt đầu theo dõi 23
Hình 3.3 Phương pháp xác nhận chéo 26
Hình 4.1 AUROC và AUPR trong các lần đánh giá 29
Hình 4.2 Biểu đồ đánh giá lần chạy thứ 4 cho kết quả xấu nhất 31
Hình 4.3 Biểu đồ đánh giá lần chạy thứ 14 cho kết quả xấu nhất 31
Hình 4.4 Ngưỡng dao động giữa FAIL và SAFE 33
Trang 10DANH SÁCH BẢNG
Bảng 3.1 Thời gian chạy của BigQuery 20 Bảng 3.2 Quy mô tập huấn và kiểm tra đối với dữ liệu huấn luyện 30
Trang 11MỞ ĐẦU
Trong những năm gần đây, Điện toán đám mây đã đang phát triển chóng mặt đạt được nhiều thành tựu về mặt nghiên cứu và ứng dụng thực tế Vào năm 2008, Amazon đẩy mạnh nghiên cứu và triển khai Điện toán đám mây Tiếp bước đó, các tập đoàn lớn như Microsoft, Google, IBM,… thúc đẩy Điện toán đám mây phát triển nhanh chóng Hiện nay đã có rất nhiều nhà cung cấp dịch vụ cloud IaaS (Infrastructure as a Service) cung cấp cho rất nhiều khách hàng Một trong những vấn đề quan trọng phải quan tâm khi xây dựng cũng như cung cấp dịch vụ điện toán đám mây là tính sẵn sàng của dịch vụ Một dịch vụ Iaas tốt phải có khả năng nhận diện và phản ứng kịp thời để đảm bảo tính thông suốt cũng như chất lượng dịch vụ khi có sự cố Từ đó đặt ra nhu cầu cần phải xây dựng một hệ thống nhận diện lỗi (fault detection) chính xác để xây dựng một hệ thống kháng lỗi (fault tolerance) hiệu quả
Bên cạnh đó việc tiếp tục dựa vào sự điều hành trực tiếp từ con người để quản lý các trung tâm dữ liệu là một trở ngại lớn vì quy mô cơ sở dữ liệu của các hệ thống ngày càng lớn Các hệ thống máy tính trên điện toán đám mây nói chung và các trung tâm dữ liệu nói riêng có xu hướng dần được quản lý bởi các mô hình tính toán và mô hình thực thi dự đoán và quản lý tự động Sự can thiệp của con người sẽ được giới hạn ở cấp cao như đặt mục tiêu và quản lý các chính sách cấp cao hơn và việc thực thi ở dưới sẽ do hệ thống tự động điều khiển quyết định Việc tự động hóa
dữ liệu sẻ quản lý và kiểm soát dữ liệu dựa trên các mô hình dự đoán tổng thể, các
mô hình này được xây dựng và cập nhật bằng các dữ liệu có sẵn trước đó Điều này
sẽ hỗ trợ rất lớn trong việc quản lý hệ thống Đây sẽ là thách thức mới cho các nhà nghiên cứu
Dựa trên lĩnh vực nghiên cứu này, mục tiêu và phạm vi nghiên cứu của luận
văn là ứng dụng kĩ thuật học máy (maching learning), cụ thể là thuật toán Random Forest để xây dựng mô hình dự đoán lỗi máy cho hệ thống Google Cluster (một Cloud Computing lớn) dựa trên bộ dữ liệu công bố của Google được thu thập trong một cụm gồm hơn 12000 máy chủ với mục đích xây dựng và đánh giá mô hình dự báo lỗi của các máy chủ trong cụm máy chủ
Trang 12Nội dung luận văn gồm 4 chương:
- Chương 1: Tổng quan về nhận dạng lỗi trên cloud computing
- Chương 2: Thuật toán Random Forest
- Chương 3: Sử dụng Random Forest dự báo lỗi cho Google cluster
- Chương 4: Đánh giá kết quả đạt được và phương hướng phát triển
Trang 13CHƯƠNG 1 - TỔNG QUAN VỀ NHẬN DẠNG LỖI
Hình 1.1: Kiến trúc dịch vụ cơ sở hạ tầng
Trang 14
Trong đó
Cụm máy vật lý: 1 cụm máy vật lý gồm nhiều máy chủ vật lý
Máy chủ vật lý: được triển khai công nghệ ảo hóa để thực thi các máy chủ ảo
Cơ sở dữ liệu: nơi lưu trữ thông tin cụm máy vật lý, máy chủ vật lý, máy chủ ảo, các gói dịch vụ;
Hệ thống quản lý ảo hóa tập trung: đây là phần cốt lỗi của hệ thống, đảm bảo việc vận hành hệ thống được thông suốt từ trên giao diện người dùng xuống tới máy chủ vật lý bên dưới
Giao diện điện toán đám mây: đây là giao diện Web cung cấp cho người dùng khả năng quản lý máy ảo, cung cấp cho nhà cung cấp dịch vụ khả năng quản lý
hệ thống tập trung cả hệ thống máy chủ vật lý, máy ảo, mạng ảo Được hiện thực dựa trên công nghệ dịch vụ web
Lỗi trong IaaS có thể được phân loại dựa vào vị trí xuất hiện, vị trí module chức năng Lỗi có thể xuất hiện từ phần cứng vật lý, xuất hiện trong máy chủ ảo hóa, hoặc trong các máy ảo…
Lỗi trong điện toán đám mây có các khái niệm như sau [2-4]:
Fault: là một điều kiện bất thường trong một hoặc nhiều thành phần của hệ thống Một fault có thể hoặc không thể là nguyên nhân làm hệ thống không thực thi theo như thiết kế ban đầu
Error: là sự trái ngược nhau giữa lý thuyết và thực tế của một thành phần bên trong hệ thống khi hệ thống được thực thi Một Error có thể là nguyên nhân
hệ thống không thực thi theo như thiết kế ban đầu
Failure: là trạng thái của hệ thống thực thi không đúng như thiết kế ban đầu Một cách hiểu khác cụ thể hơn, lỗi trên điện toán đám mây có thể là các loại lỗi [5]:
Lỗi mạng (Network fault): lỗi liên quan tới mạng lưới như: bị cô lập mạng, mất gói, gói tin lỗi, đích đến mất kết nối, lỗi link…
Lỗi do phần cứng: Loại lỗi do các thiết bị phần cứng của server gây ra như: lỗi nguồn, lỗi CPU, lỗi RAM, HDD, storage, CPU fan, mainboard,
Trang 15 Lỗi truyền tải media: lỗi do media bị lỗi trong quá trình truyền hoặc nhận
Lỗi bộ xử lý: lỗi xảy ra trong bộ xử lý vì hệ điều hành bị lỗi
Lỗi tiến trình: Một lỗi do hết tài nguyên hoặc lỗi của phần mềm
Lỗi dịch vụ hết hạn: hết thời gian phục vụ của một tài nguyên trong khi ứng dụng đang dùng nó Lỗi xảy ra trong suốt quá trình tính toán trên tài nguyên
hệ thống có thể được phân loại như: lỗi bỏ sót, lỗi định thời, lỗi trả lời và lỗi crash
Còn có thể phân loại lỗi dựa vào thời gian như:
Lỗi lâu dài (permanent): lỗi xảy ra như do bị đứt dây mạng, nguồn điện bị mất, thảm họa… Đặc điểm của loại lỗi này là dễ tái tạo lại lỗi Những lỗi này có thể gây ra những hậu quả lớn cho hệ thống hoặc là làm cho một phần
hệ thống hoạt động không như mong đợi
Những lỗi gián đoạn: là những lỗi hiếm khi xuất hiện Hầu hết những lỗi này được bỏ qua trong hệ thống thử nghiệm và chỉ xuất hiện khi hệ thống có tải
Vì vậy khó dự đoán sự thiệt hại của những lỗi này có thể gây ra
Lỗi tạm thời: Những lỗi xảy ra bởi một vài lỗi vốn có từ trước, tuy nhiên, những lỗi này được sửa sai bằng cách cố gắng roll back hệ thống đến trạng thái trước đó như là khởi động lại phần mềm hoặc gửi một thông báo [6,7]
Từ những khái niệm lỗi trên đã có những nghiên cứu về phương pháp nhận dạng lỗi cho ĐTĐM như: sử dụng phương pháp phân lớp (classification) và phương pháp suy luận (inference) Trong luận văn này sẽ tập trung nghiên cứu phương pháp phân lớp trong lĩnh vực học máy (maching learning) để ứng dụng nhận dạng lỗi cho điện toán đám mây, cụ thể ứng dụng thuật toán Random Forest
1.2 Một số phương pháp nhận dạng lỗi trên điện toán đám mây
Có một số cách tiếp cận khác nhau trong việc dự đoán một thành phần nào
đó của hệ thống phần mềm có lỗi hay không Do luận văn chỉ tập trung vào cách tiếp cận dựa trên học máy nên trong phần này sẽ giới thiệu ngắn gọn về một số phương pháp học máy có thể sử dụng để nhận dạng lỗi trên cloud computing
Trang 161.2.1 Phương pháp ứng dụng cây quyết định [8]
Trong lĩnh vực học máy, cây quyết định là một kiểu mô hình dự đoán (predictive model), nghĩa là một ánh xạ từ các quan sát về một sự vật/hiện tượng tới các kết luận về giá trị mục tiêu của sự vật/hiện tượng Kỹ thuật học máy dùng trong cây quyết định được gọi là học bằng cây quyết định, hay chỉ gọi với cái tên ngắn gọn là cây quyết định
Cây quyết định là cây mà những nút bên trong của nó bao gồm việc kiểm tra một thuộc tính xác định và những nút lá của nó đưa ra sự phân lớp mà được áp dụng cho tất cả các mẫu đạt đến nút lá, hoặc một tập của sự phân lớp, hoặc một xác xuất phân tán qua tất cả các lớp có thể Để phân lớp cho một mẫu chưa biết, nó được định tuyến xuống dưới cây dựa theo giá trị của thuộc tính được kiểm tra lần luợt theo các nút, và khi một nút lá được tìm thấy một mẫu được phân lớp dựa theo lớp mà được gán cho nút lá Cây quyết định cũng là một phương tiện có tính mô tả dành cho việc tính toán các xác suất có điều kiện Thuật toán cây quyết định là một trong các thuật toán mà được sử dụng rộng rãi nhất trong các thuật toán học máy trong việc xây dựng các mẫu phân lớp từ các nguồn dữ liệu Nó có thể được chọn cho việc thu thập những tri thức và tạo những quy tắc quyết định từ kho lưu trữ dữ liệu dựa trên một vài đặc điểm sau:
Cây quyết định có thể được chọn để tạo các quy tắc dễ hiểu
Đạt đến sự phân lớp mà không cần những tính toán chuyên sâu
Có thể được chọn để làm việc với cả những biến liên tục và biến phân loại,cung cấp sự định hướng rõ ràng, và phạm vi nào là quan trọng nhất cho việc dự đoán hoặc phân lớp
Tự động lựa chọn thuộc tính tương ứng
Có thể sử dụng truy vấn SQL để truy cập cơ sở dữ liệu
Khi thực hiện phân lớp thì độ chính xác cũng có thể được so sánh với các phương pháp khác
Trang 171.2.2 Kỹ thuật hồi quy logistic (logistic regression)
Trong thống kê, hồi quy logistic (mô hình logit) được sử dụng cho dự đoán khả năng xuất hiện lỗi của một hệ thống bằng một hàm logit Kỹ thuật hồi quy logit được phát triển trong những năm 1970 mô hình tuyến tính tổng quát hóa sử dụng cho hồi quy nhị phân (chỉ có 2 giá trị) Giống như các dạng của phân tích hồi quy, hồi quy tuyến tính tạo ra vài biến dự đoán mà có thể là số hoặc tên thể loại Hồi quy logit là một kiểu hồi quy mà các biến phụ thuộc là nhị phân hoặc số.Ví dụ: một người bị đau tim trong một khoảng thời gian thời gian cụ thể có thể được dự đoán dựa trên những hiểu biết về tuổi, giới tính, chỉ số cơ thể Thuật toán hồi quy logit được sử dụng rộng rãi trong các ngành y tế, xã hội hoặc các ứng dụng kinh doanh tiếp thị, ví dụ như dự đoán xu hướng khách hàng sẽ mua sản phẩm nào hoặc không mua sản phẩm nào trong năm Hàm logit f(z) có dạng:
1.2.3 Kỹ thuật mạng nơ ron (neural net works)
Mạng nơ ron nhân tạo (Artificial neural network – ANN) là một mô phỏng xử lý thông tin, được nghiên cứu ra từ hệ thống thần kinh của sinh vật, giống như bộ não để xử lý thông tin Nó bao gồm số lượng lớn các mối gắn kết cấp cao để
xử lý các yếu tố làm việc trong mối liên hệ giải quyết vấn đề rõ ràng Thuật toán máy tính mô phỏng các kiến trúc sinh học này thường được gọi là mạng nơron nhân tạo
để phân biệt với các phần mềm trong cơ thể động vật ANNs hoạt động giống như bộ não con người, được học bởi kinh nghiệm, lưu những kinh nghiệm hiểu biết và sử dụng trong những tình huống phù hợp Đầu tiên ANN được giới thiệu năm 1943 bởi nhà thần kinh học Warren McCulloch và nhà logic học Walter Pits Mạng nơron hoạt động dựa trên nguyên lý học máy Thông qua các mẫu có sẵn và tập mục tiêu (với phương pháp học có thầy) để đưa ra kết luận khi có một mẫu mới được đưa vào Mạng nơron nhân tạo là một kỹ thuật mô phỏng lại bộ não và hệ thần kinh của con người Nó cũng có khả năng học từ các kinh nghiệm trong quá khứ, tổng quát hóa các kinh nghiệm này để đưa ra một nhận định mới nhờ rút ra được các đặc trưng cơ
Trang 18bản của tập mẫu Các việc này được thực hiện thông qua việc xử lý tín hiệu giữa các nơron cùng với các trọng số của chúng
1.3 Các tham số đo lường các phương pháp nhận dạng lỗi cho cloud computing
Các phương pháp, thuật toán nhận dạng lỗi đã có trước đây trong cloud computing thường xem xét các tham số khác nhau như: thông lượng (throughput), thời gian phản hồi (response-time), khả năng mở rộng, hiệu năng, khả năng sẵn sàng,
độ khả dụng, độ tin cậy, độ an toàn, và phí tổn kết hợp [9]:
Thông lượng (throughput): nó định nghĩa số lượng tác vụ đã được hoàn thành
Hệ thống tốt thì thông lượng càng có giá trị cao
Thời gian phản hồi: thời gian phản hồi, đáp ứng của thuật toán, giá trị này càng thấp càng tốt
Khả năng mở rộng: Số lượng node trong hệ thống mà thuật toán kháng lỗi còn
có thể hoạt động tốt - Hiệu năng: tham số này kiểm tra sự ảnh hưởng về hiệu năng của hệ thống khi áp dụng thuật toán Hiệu năng của hệ thống cần được cải thiện với một chi phí hợp lý
Độ sẵn sàng: độ sẵn sàng của hệ thống là một yếu tố ảnh hưởng đến độ tin cậy
Độ khả dụng: khả năng kết hợp với các sản phẩm khác một cách hiệu quả và
dễ dàng
Độ tin cậy: xem xét khả năng đạt được kết quả chính xác hoặc chấp nhận được trong một khoảng thời gian
Phí tổn kết hợp: (overhead associated): là phí tổn trong khi thực thi những tác
vụ, tiến trình trong thuật toán Phí tổn có thể được gây ra bởi các tiến trình di chuyển dữ liệu, trong nội tại tiến trình và trong nội tại bộ xử lý Một thuật toán kháng lỗi hiệu quả thì phí tổn phải nhỏ
1.4 Kết luận Chương 1
Trong chương này đã tổng quan được các định nghĩa về lỗi, kiến trúc dịch
vụ cơ sở hạ tầng điện toán Tổng quát được một số phương pháp nhận dạng lỗi trên cloud computing có liên quan đến luận văn Từ đó để nắm được nền tảng để ứng dụng thuật toán khác để giải quyết vấn đề bài toán đặt ra
Trang 19CHƯƠNG 2 - THUẬT TOÁN RANDOM FOREST
2.1 Nguồn gốc ra đời của thuật toán
Trong lĩnh vực nghiên cứu về khai phá dữ liệu nói chung cũng như trong nghiên cứu về các thuật toán phân lớp nói riêng, vấn đề xử lý dữ liệu lớn ngày càng trở thành vấn đề cấp thiết và đóng vai trò chủ đạo trong việc giải quyết các bài toán thực tế Phần lớn các thuật toán phân lớp đã phát triển chỉ có thể giải quyết với một
số lượng dữ liệu có hạn cũng như với một độ phức tạp dữ liệu giới hạn được Trong khi đó dữ liệu thu được càng trở nên đa dạng phong phú nhờ sự phát triển mạnh mẽ của khoa học Mặc dù kỹ thuật cây quyết định là công cụ khai phá dữ liệu mạnh trong lĩnh vực học máy tuy nhiên kỹ thuật này không hoàn toàn hoàn hảo và thích hợp với một số loại vấn đề Các cây phân loại dữ liệu có thể ổn định và có sự biên đổi nhỏ (các biến đổi này được tạo ra một cách ngẫu nhiên) có thể là cơ sở cho sự khác nhau của các cây tìm kiếm được sinh ra Đây là đặc điểm đặc biệt trong các trường hợp mà các chia tách tối ưu cho các biến khác nhau gần với các biến khác về mặt giá trị Trong tường hợp này, một biến đổi nhỏ về mặt dữ liệu cũng đủ gây ảnh hưởng tới việc lựa chọn trong việc phân tách các giá trị khác
2.2 Thuật toán Random Forest [10-11]
2.2.1 Giới thiệu thuật toán Random Forest
Thuật toán RF - Random Forest là một thuật toán đặc biệt dựa trên kỹ thuật lắp ghép, Về bản chất thuật toán RF được xây dựng dựa trên nền tảng thuật toán phân lớp cây phân loại và hồi quy, sử dụng kỹ thuật có tên gọi là “bagging” [12] Thuật toán này cho phép lựa chọn một nhóm nhỏ các thuộc tính tại mỗi nút của cây để phân chia cho mức tiếp theo của cây phân lớp Bằng cách chia nhỏ không gian tìm kiếm thành các cây nhỏ hơn như vậy cho phép thuật toán có thể phân loại một cách rất nhanh chóng cho dù không gian thuộc tính rất lớn Các tham
số đầu vào của thuật toán khá đơn giản bao gồm các thuộc tính được chọn trong mỗi lần phân chia Giá trị mặc định của tham số này là căn bậc hai của p với p là số lượng các thuộc tính Số lượng cây được tạo ra là không hạn chế và cũng không sử dụng bất kỳ kỹ thuật nào để hạn chế mở rộng cây Phải lựa chọn tham số cho biết số lượng cây sẽ được sinh ra sao cho đảm bảo rằng sẽ mỗi một thuộc tính sẽ được
Trang 20kiểm tra một vài lần Thuật toán sử dụng kỹ thuật “out of bag” để xây dựng tập huấn luyện và phương pháp kiểm tra trên nó [13]
2.2.2 Lịch sử của thuật toán Random Forest
Thuật toán tạo một rừng ngẫu nhiên được phát triển bởi Leo Breiman và Adele Cutler, thuật ngữ Random Forest được lấy làm tên phổ biến cho thuật toán này Thuật ngữ RF được xuất lần đầu tiên năm 1995, sau đó kết hợp với phương pháp “bagging” trong lựa chọn các thuộc tính ngẫu nhiên của Leo Breiman năm 1996 để xây dựng phương pháp chọn các cây quyết theo các thay đổi có thể kiểm soát được Năm 2001 Breiman xây dựng thuật toán
RF có bổ sung thêm một lớp ngẫu nhiên để phân lớp Ngoài việc xây dựng mỗi cây
sử dụng các mẫu dữ liệu khác nhau, các rừng ngẫu nhiên được thay đổi để xây dựng các cây phân loại và hồi quy khác nhau Các gói thư viện cài đặt thuẩt toán RF được xây dựng bằng ngôn ngữ Fortran bởi Leo Breiman và Cutler có thể tham khảo tại đường dẫn: (http://www.stat.berkeley.edu/)
2.2.3 Thuật toán Random Forest
Về cơ bản thuật toán Random Forest (RF) – rừng ngẫu nhiên dựa trên kỹ thuật cây quyết định Ý tưởng của RF chúng ta có thể liên tưởng tới việc bầu cử theo nguyên tắc phổ thông đầu phiếu Nếu sử dụng một cây quyết định chẳng khác nào việc bầu cử mà chỉ có 1 người bỏ phiếu Việc sinh các cây quyết định từ một mẫu dữ liệu nhằm đa dạng hoá các “phiếu bầu” (giống như việc mọi thành phần, tầng lớp, giai cấp đều được đi bỏ phiếu) cho kết luận Việc áp dụng các kỹ thuật sinh ra các mẫu dữ liệu hay việc lựa chọn rẽ nhánh ngẫu nhiên sẽ tạo ra các cây “dị tật” trong rừng (giống việc cho phép công dân không cần phân biệt trình độ học vấn, sức khỏe đi bầu cử) Càng nhiều loại hình, càng nhiều phiếu bầu sẽ cung cấp cho chúng ta cái nhìn đa chiều, chi tiết hơn và do đó kết luận sẽ có tính chính xác, gần với thực tế hơn
Định nghĩa: Một RF là một bộ phân loại gồm một tập các bộ phân loại có câu hình
cây{h(x, ⊖k), k=1,…} trong đó {⊖k} là các vecto ngẫu nhiên, độc lập, có cùng phân bố xác suất, mỗi cây bầu cử một phiếu cho lớp phổ biến nhất tại đầu vào x [5]
Trang 212.2.4 Đặc tính của thuật toán Random Forest
Đối với rừng ngẫu nhiên, cận trên sẽ bắt nguồn cho các lỗi phát sinh dưới dạng hai tham số, là cách xác định tính chính xác (Strength - Accuracy) và tính tương quan (hay còn gọi là độ nhạy - Correlation) của các bộ phân loại riêng lẻ có trong rừng ngẫu nhiên
Hàm tương quan như sau:
Công thức thể hiện sự dao động của mr như sau:
độ đo này có sự tương quan nghịch: độ chính xác càng cao thì độ nhạy càng thấp và ngược lại Khi độ chính xác hoặc độ nhạy đạt giá trị tối thiểu thì cũng là lúc hệ thống mất khả năng phân loại Vì vậy người ta phải kết hợp hai độ đo trên trong một
độ đo thống nhất, vấn đề đặt ra là làm sao để có thể cân bằng hai tham số này khi thực hiện phân loại để đạt hiệu quả cao nhất Theo công thức độ chính xác là tỷ lệ phần trăm các lớp phân loại đúng hoặc các lớp phân loại không lỗi: (TP/ (TP + FP))
Độ nhạy là tỷ lệ phần trăm các lớp phân loại sai hoặc các lớp phân loại lỗi: (TP/ (TP + FN)) Ta có bảng mô tả mối tương quan hai tiêu chí này như ở dưới
Trang 22Trong đó:
TPi là số lượng mẫu được phân loại đúng, và được phân vào lớp ci
FPi là số lượng mẫu bị phân loại sai, và được phân vào lớp ci
FNi là số lượng mẫu có nhãn thực là ci nhưng không được phân vào lớp ci
TNi là số lượng mẫu có nhãn thực khác ci và không được phân vào lớp ci
Độ chính xác (p i) và độ nhạy (ri) tính theo từng phân lớp được định nghĩa như sau:
Với mỗi Cây Ntree được xây dựng bằng các sử dụng thuật toán sau:
Với N là số lượng các trường hợp của dữ liệu huấn luyện, M là số lượng các biến trong việc phân loại
Lấy m là số các biến đầu vào được sử dụng để xác định việc phân chia tại
1 Nút của cây, m < M
Trang 23 Chọn 1 tập huấn luyện cho cây bằng cách chọn n ngẫu nhiên với sự thay thế từ tất cả các trường hợp huấn luyện có sẵn N Sử dụng các phần còn lại để ước lượng các lỗi của cây, bằng cách dự đoán các lớp của chúng
Với mỗi nút của cây, chọn ngẫu nhiên m là cơ sở phân chia tại nút đó (độc lập với mỗi nút) Tính chia tốt nhất dựa trên các biến m trong tập huấn luyện n
Mỗi cây được trồng hoàn toàn và không tỉa (có thể được sử dụng trong vệ xây dựng một bộ phân loại như các cây bình thường)
Đối với mỗi dự doán mới được đưa vào Nó được gán nhãn của mẫu đạo tạo trong các nút cuối để kết thúc Thủ tục sẽ được lập lại qua tất cả các cây Ntree, và đa số phiếu bình chọn với phân lớp hay trung bình với hồi quy của các cây Ntree là dự đoán mô hình
2.2.6 Đặc điểm của Random Forest
Random forest có một đặc điểm như sau:
Nó đạt chính xác cao trong các thuật toán hiện hành
Nó chạy hiệu quả trên các cơ sở dữ liệu lớn
Nó có thể xử lý hàng ngàn biến đầu vào mà không cần xóa biến
Nó cung cấp ước tính của các biến quan trọng trong việc phân loại
Nó tạo ra ước lượng không chênh lệnh giữa lỗi nội bộ và lỗi tổng quan trong quá trình phát triển rừng
Nó có một phương pháp hiệu quả để ước lượng dữ liệu bị mất và duy trì
độ chính xác khi một tỷ lệ lớn dữ liệu bị mất
Trang 242.2.7 Mô hình phân lớp với Random Forest
Hình 2.1: Mô hình phân lớp
Tạo ra n tập huấn luyện bằng cách sử dụng bootstrap
Bootstrap là một phương pháp rất nổi tiếng trong thống kê được giới thiệu bởi Bradley Efron vào năm 1979 Phương pháp này chủ yếu dùng để ước lượng lỗi chuẩn (standard errors), độ lệch (bias) và tính toán khoảng tin cậy (confidence interval) cho các tham số Phương pháp này được thực hiện như sau: từ một quần thể ban đầu lấy ra một mẫu L = (x1, x2, xn) gồm n thành phần, tính toán các tham số mong muốn Trong các bước tiếp theo lặp lại b lần việc tạo ra mẫu Lb cũng gồm n phần từ từ L bằng cách lấy lại mẫu với sự thay thế các thành phần trong
mẫu ban đầu sau đó tính toán các tham số mong muốn
2.3 Các độ đo đánh giá thuật toán phân loại:
2.3.1 Tiêu chí ROC (receiver operating characteristic)
Việc đánh giá các mô hình dự đoán lỗi nhằm:
Cung cấp sự so sánh toàn diện giữa các mô hình
Đánh giá sự ảnh hưởng của việc chọn lựa tiêu chí đánh giá sẽ tác động đến thứ hạng của các mô hình đó như thế nào Đường cong ROC mô tả lợi ích của việc sử dụng mô hình (đại diện bằng thuộc tính Dương thật) và chi phí sử