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

Xây dựng hệ thống AI nhận diện và dự đoán sản lượng điện năng tiêu thụ bất thường của khách hàng

84 5 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 đề Xây Dựng Hệ Thống AI Nhận Diện Và Dự Đoán Sản Lượng Điện Năng Tiêu Thụ Bất Thường Của Khách Hàng
Tác giả Hồng Xuân Thiện
Người hướng dẫn TS. Bùi Thị Thanh Thanh
Trường học Đại học Đà Nẵng
Chuyên ngành Khoa học máy tính
Thể loại luận văn thạc sĩ
Năm xuất bản 2022
Thành phố Đà Nẵng
Định dạng
Số trang 84
Dung lượng 3,91 MB

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

Nội dung

tín chỉ [1], Phương pháp lấy mẫu thuộc tính mới trong rừng ngẫu nhiên cho phân tích dữ liệu SNP [2], Nghiên cứu, xây dựng phương pháp trích chọn thuộc tính nhằm làm tăng hiệu quả phân lớ

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA

HOÀNG XUÂN THIỆN

XÂY DỰNG HỆ THỐNG AI NHẬN DIỆN VÀ DỰ ĐOÁN SẢN LƯỢNG ĐIỆN NĂNG TIÊU THỤ BẤT THƯỜNG CỦA

KHÁCH HÀNG

L UẬN VĂN THẠC SĨ NGÀNH KHOA HỌC MÁY TÍNH

Đà Nẵng – Năm 2022

Trang 2

TRƯỜNG ĐẠI HỌC BÁCH KHOA

HOÀNG XUÂN THIỆN

XÂY DỰNG HỆ THỐNG AI NHẬN DIỆN VÀ DỰ ĐOÁN SẢN LƯỢNG ĐIỆN NĂNG TIÊU THỤ BẤT THƯỜNG CỦA

KHÁCH HÀNG

Chuyên ngành: Khoa học máy tính

Mã số: 60.48.01

LUẬN VĂN THẠC SĨ NGÀNH KHOA HỌC MÁY TÍNH

Người hướng dẫn khoa học: TS Bùi Thị Thanh Thanh

Đà Nẵng – Năm 2022

Trang 3

LỜI CAM ĐOAN

Nội dung của nghiên cứu này được tôi thực hiện dưới sự hướng dẫn tận tình của

TS Bùi Thị Thanh Thanh và ông Hoàng Ngọc Hoài Quang (Phó Giám đốc Công ty Điện lực Thừa Thiên Huế)

1 Tất cả các tài liệu tham khảo được sử dụng trong luận văn là miễn phí và được chia sẻ cho cộng đồng

2 Các dữ liệu điện khách hàng sử dụng trong đề tài nghiên cứu được bảo mật theo đúng quy định an toàn thông tin của Tập đoàn Điện lực Quốc gia Việt Nam

3 Mọi sai sót về bản quyền có trong luận văn này, tôi xin chịu trách nhiệm

4 Nghiên cứu đã được chấp nhận và trình bày tại Hội thảo khoa học quốc tế CITA

2022 và đảm bảo không vi phạm bản quyền (Trang 72-82, Hội thảo Khoa học Quốc Gia - CITA 2022, ISBN 978-604-84-6711-1)

Tác giả

Hoàng Xuân Thiện

Trang 4

MỤC LỤC

LỜI CAM ĐOAN i

MỤC LỤC ii

DANH SÁCH CÁC BẢNG v

DANH SÁCH HÌNH ẢNH vi

DANH SÁCH CƠNG THỨC vii

DANH SÁCH TỪ VIẾT TẮT viii

TĨM TẮT x

MỞ ĐẦU 1

1 Tính cấp thiết và lý do chọn đề tài 1

2 Mục tiêu và nội dung nghiên cứu 3

3 Đối tượng và phạm vi nghiên cứu 3

4 Phương pháp nghiên cứu 3

5 Dự kiến kết quả đạt được 4

6 Ý nghĩa khoa học và thực tiễn 4

7 Bố cục của luận văn 5

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 6

1.1 Học máy (Machine Learning) 6

1.1.1 Khái niệm 6

1.1.2 Cây quyết định (Decision Tree) 7

1.2 Thuật tốn Rừng ngẫu nhiên (Random Forest) 9

1.2.1 Giới thiệu 9

1.2.2 Các ứng dụng của Rừng ngẫu nhiên 12

1.2.3 Ưu điểm và nhược điểm của Rừng ngẫu nhiên 13

1.2.3.1 Ưu điểm của Rừng ngẫu nhiên 13

1.2.3.2 Nhược điểm của Rừng ngẫu nhiên 13

1.2.4 Các bước thực hiện 13

1.3 Thuật tốn Nạve Bayes 14

1.3.1 Giới thiệu 14

1.3.2 Định lý Bayes 15

1.3.3 Cách hoạt động 15

1.4 Cơng nghệ sử dụng 16

1.4.1 Nodejs 16

1.4.2 Microsoft SQL Server 17

1.4.3 Angular 18

Trang 5

1.4.4 Python 20

1.4.5 Docker Compose 20

1.4.6 Google Colaboratory 21

1.5 Các giao thức và mơ hình 22

1.5.1 HTTP 22

1.5.2 Định dạng JSON 23

1.5.3 Chuyển giao trạng thái đại diện (REST) 24

1.5.4 REST API 26

1.5.5 Mơ hình MVC 27

CHƯƠNG 2: ỨNG DỤNG THUẬT TỐN RANDOM FOREST 29

VÀO BÀI TỐN 29

2.1 Thu thập dữ liệu 29

2.1.1 Quy trình thu thập dữ liệu từ hệ thống CMIS 29

2.1.2 Quy trình thu thập dữ liệu các khách hàng trộm cắp điện 30

2.1.3 Xử lý dữ liệu khách hàng gây nhiễu 31

2.2 Áp dụng mơ hình học máy vào nhận diện 32

2.2.1 Các ràng buộc 32

2.2.1.1 Các mùa trong năm 32

2.2.1.2 Giá điện bậc thang dành cho khách hàng sinh hoạt 33

2.2.1.3 Dữ liệu sản lượng điện của khách hàng trong 05 tháng gần nhất 35

2.2.2 Xây dựng tập dữ liệu gốc (Original Dataset) 36

2.2.3 Xây dựng tập dữ liệu khởi động (Bootstrapped Dataset) 36

2.2.4 Xây dựng các cây quyết định 37

CHƯƠNG 3: TRIỂN KHAI HỆ THỐNG VÀ ĐÁNH GIÁ KẾT QUẢ 39

3.1 Thiết kế hệ thống 39

3.2 Mơ hình hoạt động hệ thống 40

3.3 Triển khai các chức năng 40

3.3.1 Triển khai ứng dụng Web với Angular và API Nodejs 40

3.3.2 Triển khai hệ thống AI nhận diện khách hàng bất thường bằng ngơn ngữ Python chạy trên Docker Compose 41

3.4 Kết quả 42

3.5 Đánh giá kết quả 44

3.5.1 So sánh thuật tốn Random Forest và Nạve Bayes 44

3.5.2 Kết quả đạt được 46

KẾT LUẬN VÀ KIẾN NGHỊ 48

DANH MỤC CƠNG TRÌNH KHOA HỌC ĐÃ ĐƯỢC CƠNG BỐ 50

Trang 6

DANH MỤC TÀI LIỆU THAM KHẢO 51 PHỤ LỤC 01 HỆ THỐNG THỐNG THÔNG TIN QUẢN LY KHÁCH

HÀNG NGÀNH ĐIỆN EVN (CMIS) 53 PHỤ LỤC 02 HỆ THỐNG THU THẬP DỮ LIỆU 57

ĐO XA RF-SPIDER 57

Trang 7

DANH SÁCH CÁC BẢNG

Bảng 1.1 Bảng quan hệ giữa SQL và HTTP 27

Bảng 2.1 06 khách hàng trộm cắp điện năm 2019 30

Bảng 2.2 Bảng giá điện ngành sản xuất 33

Bảng 2.3 Giá khối hành chính sự nghiệp 34

Bảng 2.4 Giá điện kinh doanh 34

Bảng 2.5 Giá điện sinh hoạt 34

Bảng 2.6 Sản lượng điện 05 tháng của 05 khách hàng thuộc TTHPC 2021 36

Bảng 2.7 Tập dữ liệu gốc gồm n dữ liệu (sample) 36

Bảng 2.8 Tập dữ liệu khởi động 37

Bảng 3.1 Bảng dữ liệu sản lượng điện tiêu thụ trong năm của một khách hàng trộm cắp điện 45

Bảng 3.2 Bảng Dữ liệu samble được từ một khách hàng trộm cắp điện: 45

Bảng 3.3 Bảng so sánh giữa 02 thuật toán 46

Bảng 3.4 Danh sách khách hàng trộm cắp điện năm 2022 46

Bảng 3.5 Chi tiết sản lượng điện từ tháng 01/2021 đến 01/2022 của 03 khách hàng trộm cắp điện năm 2022 47

Trang 8

DANH SÁCH HÌNH ẢNH

Figure 1.1 Mô hình học có giám sát 7

Hình 1.2 Mô hình học không giám sát 7

Hình 1.3 Mô hình thuật toán Random Forest 12

Hình 1.4 Ví dụ khi áp dụng thuật toán RF trong lựa chọn trái cây 12

Hình 1.5 Mô hình bỏ phiếu phân loại của thuật toán Rừng ngẫu nhiên 14

Hình 1.6 Lịch sử phiên bản phát triển Angular 19

Hình 1.7 Docker Container và máy ảo 21

Hình 1.8 Cấu hình phần cứng Google colab cung cấp 22

Hình 1.9 Client Server model 24

Hình 1.10 Stateless 25

Hình 0.11 REST API 26

Hình 1.12 Kiến trúc MVC 27

Hình 2.1 Sản lượng điện tiêu thụ 12 tháng năm 2021 của khách hàng PC03BB0101051 30

Hình 2.2 Biểu đồ sản lượng trong năm 2019 06 khách hàng trộm cắp điện 31

Hình 2.3 Biểu đồ dữ liệu sản lượng điện 2 năm của một khách hàng ăn trộm ít biến động 32

Hình 2.4 Một cây quyết định ngẫu nhiên trong tập cây quyết định 38

Hình 3.1 Biểu đồ Use Case hệ thống 39

Hình 3.2 Sơ đồ hoạt động của hệ thống 40

Hình 3.3 Giao diện Web dành cho người dùng chạy tại DNS http://gsdn.pctth.vn:83 41

Hình 3.4 Thanh công cụ điều hướng 41

Hình 3.5 API AI dự đoán khách hàng 42

Hình 3.6 Danh sách khách hàng được dự đoán tự động 42

Hình 3.7 Danh sách khách hàng trộm cắp điện 43

Hình 3.8 Tra cứu khách hàng 43

Hình 3.9 Mẫu phiếu kiểm tra khách hàng 44

Trang 9

DANH SÁCH CÔNG THỨC

Công thức (1.1) 15

Công thức (1.2) 15

Công thức (1.3) 16

Công thức (1.4) 16

Công thức (1.5) 16

Công thức (1.6) 16

Công thức (3.1) 45

Trang 10

DANH SÁCH TỪ VIẾT TẮT

CMIS Hệ thống thông tin quản lý khách hàng dùng điện

HTTP/HTTPS Hyper Text Transfer Protocol

REST Representational State Transfer

Super Admin Super Administrator

Trang 11

URI Uniform Resource Identifier

EVNCPC Tổng công ty Điện lực miền Trung

Trang 12

TĨM TẮT

XÂY DỰNG HỆ THỐNG AI NHẬN DIỆN VÀ DỰ ĐỐN SẢN LƯỢNG ĐIỆN

NĂNG TIÊU THỤ BẤT THƯỜNG CỦA KHÁCH HÀNG

Học viên: Hồng Xuân Thiện Chuyên ngành: Khoa học máy tính

Mã số: 60.48.01 Khĩa: K41 Trường Đại học Bách khoa – ĐH Đà Nẵng

Tĩm tắt - Bài báo xây dựng hệ thống AI dự đốn khách hàng sử dụng điện bất thường

qua sản lượng điện tiêu thụ Thuật tốn Random Forest được sử dụng để đánh giá và phát hiện các khách hàng cĩ hành vi ăn cắp điện dựa vào hồ sơ dữ liệu cĩ sẵn về các khách hàng ăn trộm điện trước đây Dữ liệu huấn luyện được lấy từ kho dữ liệu khách hàng của Tổng cơng ty Điện lực miền Trung (CPC) Qua thực nghiệm, việc thiết lập các tham số đầu vào và kích cỡ dữ liệu huấn luyện ảnh hưởng khơng nhỏ đến kết quả nhận diện Ở chế độ dự đốn khách hàng từ dữ liệu sản lượng điện trong 3 tháng gần nhất, kết quả nhận diện đúng trên 60% và với dữ liệu sản lượng 5 tháng gần nhất là trên 80% Vào cuối năm 2021, hệ thống được thí điểm tại Cơng ty Điện lực Thừa Thiên Huế (TTHPC) và đã phát hiện phát hiện, xử lý trộm cắp điện: 74 vụ

Từ khĩa - Sản lượng điện bất thường; Rừng ngẫu nhiên; Bayes Nạve; Học cĩ giám

sát; Cây quyết định

BUILDING AI SYSTEM IDENTIFICATION AND PREDICTION OF UNNORMAL ELECTRIC QUANTITY CONSUMPTION OF CUSTOMERS Abstract - The article builds an AI system that predicts abnormal electricity usage by

customers through electricity consumption The Random Forest algorithm is used to evaluate and detect customers who have stolen electricity based on availa-ble data records on previous customers who steal electricity The training data is taken from the customer database of the Central Power Corporation (CPC) Through experiment, the setting of input parameters and training data size have a significant influence on the recognition results In the customer prediction mode from the power output data of the last 3 months, the correct identification results are over 60% and with the output data

of the last 5 months, it is over 80% At the end of 2021, the system was piloted at Thua Thien Hue Power Company (TTHPC) and detected and handled electricity theft: 74 cases

Keywords - Unnormal Electric Quantity; Random Forest; Bayes Nạve; Supervised

Learning; Decision tree

Trang 13

MỞ ĐẦU

1 Tính cấp thiết và lý do chọn đề tài

Ngành điện là một ngành đã và đang đóng vai trò vô cùng thiết yếu trong cuộc sống hiện nay từ kinh doanh, sản xuất cho đến sinh hoạt hàng ngày của tất cả mọi người Ngành này có nhiệm vụ quan trọng trong việc đảm bảo sự vận hành ổn định của nguồn điện, đồng thời phát triển hệ thống truyền tải điện an toàn, hợp lí và hiệu quả phục vụ hoạt động sản xuất công, nông nghiệp; thương mại dịch vụ và dân sinh

Từ đầu năm 2020, dịch bệnh Covid-19 bắt đầu bùng phát tại Việt Nam khiến các ngành công nghiệp lớn nhỏ phải đóng cửa Điều này cũng khiến tỉ trọng sử dụng điện năng tại các hộ gia đình cũng tăng cao Ngoài ra với môi trường khác nghiệt của miền Trung nói chung và tỉnh Thừa Thiên Huế nói riêng, vào những mùa hè nắng nóng, nhu cầu sử dụng điện năng cho các thiết bị làm mát của khách hàng cũng tăng nên sản lượng tiêu dùng cũng tăng cao khiến các khách hàng đặt nhiều nghi vấn Công ty Điện lực Thừa Thiên Huế luôn quan tâm đến khách hàng và tiến hành kiểm tra định kỳ và đột xuất đối với các khách hàng nghi vấn bất thường qua các chương trình đo đếm theo dõi số liệu từ xa Qua qua trình rà quét, Công ty tiến hành kiểm tra 73.852 khách hàng trên tổng 317.203 khách hàng Trong đó số vụ phát hiện vi phạm

là 3.038 vụ (đạt 178,7% kế hoạch năm) và số vụ trộm cắp điện là 62 vụ (đạt 152,5%

kế hoạch năm) Năm 2020, sản lượng truy thu của Công ty là 62.820 kWh và tổng số tiền bồi thường là 1.004.691.941 VNĐ Có thể thấy, các chỉ tiêu này đã vượt kế hoạch khiến nạn ăn trộm điện ngày càng tăng với các thủ đoạn ngày càng tinh vi Ngoài những hành vi ăn trộm cắp điện thì việc xảy ra chạm chập điện và mùa nóng cũng khiến sản lượng điện của khách hàng có thể tăng cao hoặc giảm mạnh Ngày nay, nhiều hành vi trộm cắp điện với tinh vi cao khiến Công ty gặp nhiều khó khăn trong việc giám sát và xử lý

Cùng với sự phát triển của trí tuệ nhân tạo, con người đã nghiên cứu và đưa ra nhiều thuật toán Machine Learning khác nhau giúp việc huấn luyện các AI trở nên đa dạng và đạt kết quả tốt hơn, chính xác hơn và có thể làm thay các công việc của con người giúp giảm thời gian công việc tăng năng suất lao động Cùng với sự phát triển của trí tuệ nhân tạo, con người đã nghiên cứu và đưa ra nhiều thuật toán Machine Learning khác nhau giúp việc huấn luyện các AI trở nên đa dạng và đạt kết quả tốt hơn, chính xác hơn và có thể làm thay các công việc của con người giúp giảm thời gian công việc tăng năng suất lao động Một số đề tài đã áp dụng thuật toán Rừng ngẫu nhiên như Ứng dụng Random Forest để tư vấn chọn lộ trình học trong học chế

Trang 14

tín chỉ [1], Phương pháp lấy mẫu thuộc tính mới trong rừng ngẫu nhiên cho phân tích

dữ liệu SNP [2], Nghiên cứu, xây dựng phương pháp trích chọn thuộc tính nhằm làm tăng hiệu quả phân lớp đối với dữ liệu đa chiều [3], Sử dụng dữ liệu ảnh viễn thám kết hợp kỹ thuật GIS để phân tích biến động tài nguyên rừng [4], Ứng dụng kỹ thuật phân loại ảnh hướng đối tượng nhằm phân loại trạng thái rừng theo thông tư số [5] và

So sánh phương pháp phân loại dựa vào điểm ảnh phân loại định hướng đối tượng chiết xuất thông tin lớp phủ bề mặt [6].Nói chung sử dụng phương pháp Rừng ngẫu nhiên (RF) để phân loại ảnh viễn thám hiện nay chưa có nhiều tác giả đề cập, một số

ít nghiên cứu chủ yếu được thực hiện ở rừng ôn đới hoặc rừng trồng Đến nay chưa

có nghiên cứu nào thực hiện tại các khu rừng bị tác động như ở Việt Nam, vì vậy đây vẫn là một chủ đề đang bỏ ngõ và cần được tiếp cận để có thể nâng cao hiệu quả trong phân loại ảnh vệ tinh để xây dựng các bản đồ rừng phục vụ cho các mục đích lâm nghiệp

Hiện nay, Tập đoàn điện lực Việt Nam đã triển khai nhiều chương trình AI trong nhiều lĩnh vực như hệ thống khôi phục lưới điện thông minh, hệ thống nhận dạng hình ảnh quản lý đầu tư xây dựng… Sản lượng điện năng là một phần thiết yếu trong dịch vụ kinh doanh khách hàng, các chuyên viên tại phòng Kinh doanh và Kiểm tra Giám sát mua bán điện đang sử dụng các cách thủ công như Microsoft Excel hoặc các chương trình theo dõi đo đếm từ xa theo thời gian trên nền tảng website Từ đó, bằng các khả năng nghiệp vụ, họ đặt ra các tiêu chí riêng để phát hiện các khách hàng có hành vi bất thường cần kiểm tra Vì vậy với tình hình hiện nay, EVN đang sử dụng những giải pháp thủ công để kiểm tra khách hàng như xem một khách hàng có biểu hiện sử dụng điện như thế nào trong năm, tự đánh giá theo tiêu chí của mỗi chuyên viên Điều này làm ảnh hưởng tới hiệu năng làm việc của mỗi người Tại TTHPC nói riêng và EVN nói chung rất cần một hệ thống AI để tự động thu thập tính toán và đánh giá các hành vi của khách hàng dự trên sản lượng điện tiêu thụ khách hàng đó

Mục tiêu của nghiên cứu này là sử dụng kho dữ liệu sản lượng điện tiêu thụ của khách hàng và thuật toán phân loại Rừng ngẫu nhiên nhằm phát hiện ra các khách hàng có hành vi bất thường nguy cơ có thể trộm cắp điện, từ đó đánh giá được hiệu quả và độ chính xác của kết quả phân loại

Từ những vấn đề trên, chúng tôi đã tiến hành tìm kiếm các mô hình thuật toán huấn luyện và dự đoán phù hợp với mô hình và dữ liệu sử dụng điện năng của khách hàng mua điện thuộc quản lý của Công ty

Vì những lý do như trên, tôi đề xuất chọn đề tài luận văn cao học:

Trang 15

“Xây dựng hệ thống AI dự đoán khách hàng sử dụng điện bất thường qua

sản lượng điện tiêu thụ”

2 Mục tiêu và nội dung nghiên cứu

2.1 Mục tiêu

Xây dựng hệ thống AI nhận diện được các khách hàng có hành vi bất

thường theo sản lượng điện tiêu thụ của tháng Nhằm đảm bảo xử lý nhanh và kịp thời, hệ thống đồng bộ với hệ thống CMIS của Tập đoàn Điện lực Quốc gia Việt Nam và sẽ tự động hoạt động ngay khi sản lượng điện khách hàng được ra hóa đơn theo tháng để có số liệu chính xác nhất

Nắm rõ được các cơ chế hoạt động của các thuật toán học máy Đặc biệt là thuật toán Rừng ngẫu nhiên trong việc áp dụng tính ngẫu nhiên để đưa ra quyết

định

2.2 Mục đích

Giảm thời gian xử lý công việc của các cán bộ chuyên viên giúp tăng năng

suất lao động, nâng cao hiệu quả công việc qua các hệ thống học máy Khẳng định được về lợi ích của học máy trong công việc Tăng lòng tin của khách hàng với ngành điện

2.3 Nội dung nghiên cứu

Tìm hiểu lý thuyết học máy và các ứng dụng của học máy trong thời đại công nghệ 4.0 nhất là bám sát chủ đề Chuyển đổi số của Bộ Thông tin và Truyền thông năm 2021

Nghiên cứu lý thuyết thuật toán Rừng ngẫu nhiên và cách xây dựng thuật toán Hiểu rõ các ưu điểm và nhược điểm của thuật toán trong việc nhận diện khách hàng

3 Đối tượng và phạm vi nghiên cứu

3.1 Đối tượng nghiên cứu

Sản lượng điện năng (kWh) tiêu thụ của khách hàng đăng ký cấp điện trên địa bàn tỉnh miền Trung – Tây Nguyên (Chi tiết nội dung nguồn dữ liệu như Phụ lục 01)

3.2 Phạm vi nghiên cứu

Sử dụng dữ liệu của khách hàng mua bán điện trên địa bàn tỉnh Thừa Thiên Huế trong quá trình nhận diện tự động hằng ngày Tập dữ liệu huấn luyện cần thu thập mỗi tháng trên địa bàn miền Trung để tăng số lượng dữ liệu huấn luyện để tăng độ chính xác của thuật toán

4 Phương pháp nghiên cứu

4.1 Phương pháp lý thuyết

Trang 16

Cơ sở lý thuyết về thuật tốn Rừng ngẫu nhiên, Cây quyết định và học cĩ giám sát Hiểu rõ cơ chế hoạt động và các ưu nhược điểm của thuật tốn với các loại học máy cịn lại

Hiểu sâu cấu trúc thuộc tình của một khách hàng mua bán điện với Cơng

ty Điện lực và cách nhận diện một khách hàng trộm cắp điện thường cĩ những hành vi như thế nào Sử dụng các khách hàng ngẫu nhiên cĩ hành vi tương tự để đánh giá kết quả tự dự đốn

4.2 Phương pháp thực nghiệm

Thu thập dữ liệu khách hàng trộm cắp điện trên địa bàn miền Trung và xử

lý các khách hàng gây nhiễu trong quá trính huấn luyện mơ hình dự đốn Xây dựng hệ thống AI nhận diện với thuật tốn Rừng ngẫu nhiên với các tham số đầu vào là Sản lượng điện năng các tháng liền kề, thời gian vi phạm, bậc giá điện hiện tại Sử dụng tập các dữ liệu gộp chung khách hàng trộm cắp và khách hàng bình thường để làm tập kiểm thử nhằm kiểm tra độ chính xác của hệ thống nhận diện

5 Dự kiến kết quả đạt được

5.2 Về thực nghiệm

Sử dụng cùng 1 bộ cơ sở dữ liệu để huấn luyện qua 2 giải thuật Random

Forest và Nạve Bayes Ngồi ra, bộ dữ liệu cần dự đốn cũng giống nhau để so sánh được tốc độ huấn luyên, dự đốn cũng như tỷ lệ chính xác của thuật tốn Xây dựng phần mềm AI ứng dụng dự đốn sản lượng điện bất thường của khách hàng với độ chính xác nhận diện khách hàng bất thường khoảng 80% Ngồi ra cịn bổ sung thêm các chức năng như giám sát sản lượng điện năng của khách hàng và tạo phiếu kiểm tra với các khách hàng bất thường

6 Ý nghĩa khoa học và thực tiễn

6.1 Ý nghĩa khoa học

Tổng quan, đánh giá được độ chính xác của thuật tốn Rừng ngẫu nhiên khi áp dụng vào dự đốn sản lượng điện năng theo tháng của khách hàng

Trang 17

Đề tài đã đóng góp một vai trò lớn trong quá trình nâng cao độ tin cậy cho thuật toán Rừng ngẫu nhiên nói riêng và học máy nói chung trong việc nhận diện chính xác các đối tượng cần nghiên cứu dự đoán

6.2 Ý nghĩa thực tiễn

Đề xuất giải pháp này góp phần giúp Công ty Điện lực Thừa Thiên Huế

nhận ra các khách hàng bất thường một cách tự động, giảm công rà soát sản lượng điện khách hàng mỗi ngày các các Giám sát viên Qua đó, có hướng xử lý kịp thời ngay lập tức và giúp các khách hàng tin tưởng ngành điện Hệ thống đã góp phần phổ biến ứng dụng sử dụng trí tuệ nhân tạo trong ngành Điện giúp nâng cao hiệu quả công việc

7 Bố cục của luận văn

Dự kiến luận văn được trình bày bao gồm các phần chính như sau:

Chương 1: Cơ sở lý thuyết

Giới thiệu về học máy, các mô hình học máy thông dụng hiện nay, thuật

toán Rừng ngẫu nhiên và các điểm mạnh điểm yếu các thuật toán Rừng ngẫu nhiên Cơ sở lý thuyết thuật toán Naive Bayes Các lý thuyết sử dụng trong đề tài

Chương 2: Ứng dụng thuật toán Random Forest vào bài toán

Giới thiệu thuật toán Random Forest, xây dựng mô hình học máy, xây dựng tập dữ liệu gốc, tập dữ liệu khởi động, tập kiểm thử, giới thiệu cách hệ thống làm việc qua từng bước trong quá trình huấn luyện và dự đoán sản lượng điện năng của khách hàng

Chương 3: Triển khai và đánh giá

Cài đặt cấu hình các môi trường làm việc cho hệ thống Lập trình các chức

năng cho hệ thống Thu thập dữ liệu theo thời gian xuất hóa đơn của khách hàng mỗi khi CMIS có dữ liệu để tiến hành dự đoán kịp thời So sánh đánh giá kết quả dự đoán khách hàng qua 02 thuật toán Random Forest và thuật toán Naive Bayes Phân tích ưu nhược điểm của 02 thuật toán

Trang 18

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

1.1 Học máy (Machine Learning)

1.1.1 Khái niệm

Machine learning (ML) hay máy học là một nhánh của trí tuệ nhân tạo

(AI), nó là một lĩnh vực nghiên cứu cho phép máy tính có khả năng cải thiện

chính bản thân chúng dựa trên dữ liệu mẫu (training data) hoặc dựa vào kinh

nghiệm (những gì đã được học) Machine learning có thể tự dự đoán hoặc đưa

ra quyết định mà không cần được lập trình cụ thể Một vài ứng dụng nổi tiếng

sử dụng học máy như Cảnh báo giao thông (trên ứng dụng Google Maps) Giờ

đây, Google Maps có lẽ là ứng dụng được sử dụng với tần suất nhiều nhất mỗi

khi bạn tham gia giao thông Đặc biệt khi các ứng dụng khác về di chuyển như

Grab, Be được áp dụng rộng rãi, đồng nghĩa Google Maps được sử dụng liên

tục để chỉ đường cho nhà cung cấp dịch vụ hay người sử dụng dịch vụ Những

thông tin về quãng đường tối ưu, thời gian di chuyển nhanh nhất cũng được

phân tích cùng lúc trên Google Maps Thực tế, dữ liệu lịch sử của tuyến đường

đó đã được thu thập theo thời gian và một số dữ liệu có từ các nguồn khác Mọi

người sử dụng bản đồ đều cung cấp vị trí, tốc độ trung bình, tuyến đường

Những thông tin này Google thu thập và tổng hợp thành Dữ liệu lớn về lưu

lượng truy cập, thông qua các thuật toán phân tích phức tap trên Machine

Learning, những thông tin này trở nên có nghĩa, chúng giúp Google dự đoán

lưu lượng sắp tới và điều chỉnh tuyến đường của bạn theo cách tối ưu nhất

Mạng xã hội Facebook là một trong những ứng dụng phổ biến nhất của

Machine Learning là Đề xuất gắn thẻ bạn bè tự động trên Facebook hoặc bất kỳ

nền tảng truyền thông xã hội nào khác Facebook sử dụng tính năng nhận diện

khuôn mặt và nhận dạng hình ảnh để tự động tìm thấy khuôn mặt của người

phù hợp với Cơ sở dữ liệu của họ và do đó đề nghị người dùng gắn thẻ người

đó dựa trên DeepFace Dự án DeepFace của Facebook thực hiện nhiệm vụ nhận

diện khuôn mặt và xác định đối tượng cụ thể trong ảnh Nó cũng cung cấp Thẻ

Alt (Thẻ thay thế) cho hình ảnh đã được tải lên trên facebook

Có rất nhiều cách phân loại machine learning, thông thường thì machine

learning sẽ được phân làm hai loại chính sau:

− Supervised learning: học có giám sát

− Unsupervised learning: học không giám sát

Ngoài ra, machine learning còn có thể phân làm các loại sau:

Trang 19

− Semi-supervised learning: học bán giám sát

− Deep learning: học sâu (về một vấn đề nào đó)

− Supervised learning

Supervised learning là việc cho máy tính học trên dữ liệu đã được gán

nhãn (label), hay nói cách khác, với mỗi đầu vào Xi, chúng ta sẽ có nhãn Yi

tương ứng

Hình 1.1 Mô hình học có giám sát

Unsupervised learning là cho máy tính học trên dữ liệu mà không được

gán nhãn, các thuật toán machine learning sẽ tìm ra sự tương quan dữ liệu, mô

hình hóa dữ liệu hay chính là làm cho máy tính có kiến thức, hiểu về dữ liệu, từ

đó chúng có thể phân loại các dữ liệu về sau thành các nhóm, lớp (clustering)

giống nhau mà chúng đã được học hoặc giảm số chiều dữ liệu (dimension

reduction)

Hình 1.2 Mô hình học không giám sát

1.1.2 Cây quyết định (Decision Tree)

Trong lĩnh vực máy học, cây quyết định là một kiểu mô hình dự báo

(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 Mỗi một nút

Trang 20

trong (internal node) tương ứng với một biến; đường nối giữa nó với nút con

của nó thể hiện một giá trị cụ thể cho biến đó Mỗi nút lá đại diện cho giá trị dự

đoán của biến mục tiêu, cho trước các giá trị của các biến được biểu diễn bởi

đường đi từ nút gốc tới nút lá đó 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

Trong ngành công nghiệp phần mềm tại công ty phát triển tài chính nguồn

nhân lực, Khi có dự án cần phần mềm tự động phân tích nguồn nhân lực và tài

chính giúp đóng góp phần quan trọng trong tiến độ dự án Hay về công ty phần

mềm khi có khách hàng ra các yêu cầu cần cây quyết định để phân tích các

chuyên gia viết đúng chuyên mô và đủ kinh nghiệm Nếu các yêu cầu thỏa mản

thì sẽ chuyến bước tiếp theo

Cây quyết định được sử dụng để giải quyết cả vấn đề phân loại và hồi quy

Nhưng nhược điểm chính của cây quyết định là nó thường dẫn đến việc

overfitting dữ liệu Hãy thảo luận chi tiết về ưu và nhược điểm của nó Ưu điểm

của cây quyết định Clear Visualization: Thuật toán đơn giản để hiểu, diễn giải

và trực quan vì ý tưởng chủ yếu được sử dụng trong cuộc sống hàng ngày của

chúng ta Đầu ra của cây quyết định có thể được con người giải thích một cách

dễ dàng đơn giản và dễ hiểu: Cây quyết định trông giống như các câu lệnh

if-else đơn giản và rất dễ hiểu Cây quyết định có thể được sử dụng cho cả bài

toán phân loại và bài toán hồi quy Cây quyết định có thể xử lý cả biến liên tục

và biến phân loại Không yêu cầu feature scaling: Không yêu cầu feature

scaling (standardization và normalization) trong trường hợp cây quyết định vì

nó sử dụng phương pháp tiếp cận dựa trên quy tắc thay vì tính toán Xử lý các

tham số phi tuyến tính một cách hiệu quả: Các tham số phi tuyến tính không

ảnh hưởng đến hiệu suất của cây quyết định không giống như các thuật toán

dựa trên đường cong Vì vậy, nếu có sự không tuyến tính cao giữa các biến độc

lập, cây quyết định có thể hoạt động tốt hơn so với các thuật toán dựa trên

đường cong khác Cây quyết định có thể tự động xử lý các giá trị bị thiếu Cây

quyết định thường mạnh mẽ đối với các trường hợp ngoại lệ và có thể xử lý

chúng một cách tự động Thời gian đào tạo ít hơn: Thời gian đào tạo ít hơn so

với rừng ngẫu nhiên (Random Forest) vì nó chỉ tạo ra một cây không giống như

rừng của các cây trong Random Forest Nhược điểm của Cây quyết định là

Overfitting: Đây là vấn đề chính của cây quyết định Nó thường dẫn đến việc

quá khớp dữ liệu mà cuối cùng dẫn đến dự đoán sai Để fit với dữ liệu (ngay cả

dữ liệu nhiễu), nó tiếp tục tạo ra các nút mới và cuối cùng cây trở nên quá phức

Trang 21

tạp để diễn giải, dẫn đến mất khả năng tổng quát hóa Nó hoạt động rất tốt trên

dữ liệu được đào tạo nhưng bắt đầu mắc nhiều lỗi trên dữ liệu không nhìn thấy

được Phương sai cao: Như đã đề cập ở điểm 1, cây quyết định thường dẫn đến

việc quá khớp dữ liệu Chính vì thế, có rất nhiều khả năng sai lệch cao trong

đầu ra, dẫn đến nhiều sai sót trong ước tính cuối cùng và cho thấy kết quả

không chính xác cao Quá khớp dẫn đến phương sai cao Không ổn định: Việc

thêm một điểm dữ liệu mới có thể dẫn đến việc tạo lại cây tổng thể và tất cả các

nút cần được tính toán lại và tạo lại Bị ảnh hưởng bởi nhiễu: Một chút dữ liệu

nhiễu có thể làm cho nó không ổn định, dẫn đến dự đoán sai Không phù hợp

với tập dữ liệu lớn: Nếu kích thước dữ liệu lớn, thì một cây đơn lẻ có thể phát

triển phức tạp và dẫn đến quá khớp Vì vậy, trong trường hợp này, chúng ta nên

sử dụng Random Forest thay vì một cây quyết định

1.2 Thuật toán Rừng ngẫu nhiên (Random Forest)

1.2.1 Giới thiệu

Rừng ngẫu nhiên hoặc rừng quyết định ngẫu nhiên là một phương pháp

học tập tổng hợp để phân loại, hồi quy và các nhiệm vụ khác hoạt động bằng

cách xây dựng vô số cây quyết định tại thời điểm đào tạo Đối với các nhiệm vụ

phân loại, đầu ra của rừng ngẫu nhiên là loại được chọn bởi hầu hết các cây

Đối với các nhiệm vụ hồi quy, giá trị trung bình hoặc dự đoán trung bình của

các cây riêng lẻ được trả về Rừng quyết định ngẫu nhiên phù hợp với thói quen

thích nghi quá mức của cây quyết định đối với tập huấn luyện của chúng Rừng

ngẫu nhiên nhìn chung tốt hơn cây quyết định, nhưng độ chính xác của chúng

thấp hơn cây tăng cường độ dốc Tuy nhiên, đặc điểm dữ liệu có thể ảnh hưởng

đến hiệu suất của chúng

Thuật toán đầu tiên cho các khu rừng quyết định ngẫu nhiên được tạo ra

vào năm 1995 bởi Tin Kam Ho [7] bằng cách sử dụng phương pháp không gian

con ngẫu nhiên, theo công thức của tác giả, là một cách để thực hiện phương

pháp "phân biệt ngẫu nhiên" để phân loại do Eugene Kleinberg đề xuất Các

khu rừng ngẫu nhiên thường được sử dụng làm mô hình chính ở các dự án AI

trong các doanh nghiệp, vì chúng tạo ra các dự đoán hợp lý trên nhiều loại dữ

liệu trong khi yêu cầu cấu hình ít

Các phương pháp bỏ phiếu cho các thuật toán phân loại, chẳng hạn như

đóng gói (Bagging) và AdaBoost, đã được chứng minh là rất thành công trong

việc cải thiện độ chính xác của một số bộ phân loại nhất định cho các bộ dữ liệu

Trang 22

nhân tạo và thế giới thực [8] Rừng ngẫu nhiên có thể giải quyết cả bài toán hồi

quy và phân loại Trên thực tế, mỗi cây cung cấp một giá trị gần đúng cho phần

sau đầy đủ, trong đó các đặc điểm được chọn phụ thuộc vào nhánh được đi

ngang Do số lượng và tính chất của các truy vấn, việc xây dựng cây quyết định

tiêu chuẩn dựa trên vectơ đặc trưng có độ dài cố định là không khả thi Thay

vào đó, một vài thử nghiệm được đặt ra trong đó một số mẫu truy vấn ngẫu

nhiên nhỏ tại mỗi nút, hạn chế độ phức tạp của chúng tăng theo độ sâu của cây

và phát triển nhiều cây Các nút đầu cuối được gắn nhãn bằng các ước lượng về

sự phân bố phía sau tương ứng trên các lớp hình dạng [9]

Thuật toán Rừng ngẫu nhiên cho ra kết quả chính xác cao nhờ yếu tố ngẫu

nhiên ra quyết định qua đó bỏ phiếu theo số đông cây quyết định [10] Các thử

nghiệm trên tập dữ liệu thực và mô phỏng bằng cách sử dụng cây phân loại và

hồi quy cũng như lựa chọn tập hợp con trong hồi quy tuyến tính cho thấy rằng

việc đóng gói có thể mang lại mức độ chính xác đáng kể [11] Ngoài ra, việc

đóng gói có thể làm giảm hiệu quả phương sai của các yếu tố dự báo hồi quy,

trong khi vẫn giữ nguyên độ chệch [12]

Rừng ngẫu nhiên được đề xuất bởi Breiman vào năm 2001 Đây là thuật

toán phân loại có kiểm định dựa trên cây quyết định và kỹ thuật bagging and

bootstrapping đã được cải tiến Bootstrapping là một phương pháp rất nổi tiếng

trong thống kê được giới thiệu bởi Efron vào năm 1979 [15] 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 tạo ra mẫu Lb cũng gồm n phần 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 (Đồng Thị Ngọc Lan, 2011) [3] Phương pháp Bagging

được xem như là một phương pháp tổng hợp kết quả có được từ các

bootstraping sau đó huấn luyện mô hình từ các mẫu ngẫu nhiên này và cuối

cùng đưa ra dự đoán phân loại dựa vào số phiếu bầu cao nhất của lớp phân loại

(Đồng Thị Ngọc Lan, 2011) [3] Cây quyết định là một sơ đồ phát triển có cấu

trúc dạng cây phân nhánh đi từ gốc cho đến lá, giá trị các lớp phân loại của mẫu

được đưa vào kiểm tra trên cây quyết định Mỗi mẫu tương ứng có một đường

đi từ gốc-tức là dữ liệu đầu vào đến lá-tức là các kết quả phân loại dự đoán đầu

ra, biểu diễn dự đoán giá trị phân lớp mẫu đó Mỗi sơ đồ cây trong tập mẫu

được tạo thành từ tập hợp các điểm ảnh huấn luyện được lựa chọn ngẫu nhiên

để huấn luyện mô hình phân loại RF (mỗi tập mẫu bootstrap sẽ cho ra một tree

và ntree tương ứng với nbootstrap) Khi một tập mẫu được rút ra từ tập huấn

Trang 23

luyện (bootstrap) với sự thay thế có hoàn lại, thì theo ước tính có khoảng 1/3

các phần tử không nằm trong mẫu này và vì thế chúng không tham gia vào quá

trình huấn luyện (Breiman L., 2001, 2007) [13], [14] Điều này có nghĩa là chỉ

có khoảng 2/3 các phần tử trong tập huấn luyện tham gia vào trong các tính

toán để phân loại (in of bag), và 1/3 các phần tử này dùng để kiểm tra sai số

được gọi là dữ liệu out-of-bag (OOB) Dữ liệu out-of-bag được sử dụng để ước

lượng sai số tạo ra từ việc kết hợp các kết quả phân loại riêng lẻ sau đó được

tổng hợp trong mô hình RF cũng như dùng để ước tính các biến quan trọng

(variable important) bằng chức năng Importance

Việc ước tính các biến quan trọng được xem xét theo hai chỉ số là: i) độ

chính xác giảm bình quân cho mỗi biến (MDA - Mean Decrease Accuracy) và

ii) sự giảm bình quân hệ số Gini đối với mỗi biến (MDG - Mean Decrease

Gini) MDA là độ chính xác của mỗi biến độc lập phân loại dựa trên đánh giá tỉ

lệ sai số OOB Hệ số Gini cho phép đo độ đồng nhất của mỗi lớp Hệ số Gini

(1909) [16] càng giảm khi một lớp cụ thể nào đó có các phần tử được gán sai

nhãn trong kết quả phân loại càng ít

Phân loại RF chứa một lượng lớn các cây, mỗi cây được phát triển từ các

pixel huấn luyện (training pixels) được lựa chọn ngẫu nhiên Hai tham số cần

được xác định trong thuật toán phân loại này là ntree (số lượng cây được phát

triển) và mtry (số lượng biến để phân chia tại mỗi node) Số ntree được lựa

chọn phụ thuộc vào khoảng thời gian xử lý ngắn nhất để kết quả đạt được độ sai

số thấp nhất, ntree chạy từ 1 đến 500 cây và mtry biến động từ số biến độc lập

tối thiểu (bằng 1) đến số biến độc lập tối đa được sử dụng trong phân loại

Trang 24

Hình 1.3 Mô hình thuật toán Random Forest

Hình 1.4 Ví dụ khi áp dụng thuật toán RF trong lựa chọn trái cây

Sau khi mô hình Rừng ngẫu nhiên được tạo thành, mỗi kết quả của các

boostrap trong tập hợp sẽ bỏ phiếu cho lớp phổ biến nhất và cho ra một kết quả

phân loại Mô hình được tạo thành dựa vào phân loại có số phiếu bầu nhiều

nhất của mỗi sơ đồ cây quyết định ntree (Breiman L., 2001) [14]

1.2.2 Các ứng dụng của Rừng ngẫu nhiên

Một số lĩnh vực phổ biến mà Rừng ngẫu nhiên thường được sử dụng:

− Ngân hàng: Lĩnh vực ngân hàng chủ yếu sử dụng thuật toán này để

xác định rủi ro cho vay

− Y học: Với sự trợ giúp của thuật toán này, các xu hướng bệnh và

nguy cơ của bệnh có thể được xác định

Trang 25

− Sử dụng đất: Chúng tôi có thể xác định các khu vực sử dụng đất

tương tự bằng thuật toán này

− Tiếp thị: Các xu hướng tiếp thị có thể được xác định bằng cách sử

dụng thuật toán này

1.2.3 Ưu điểm và nhược điểm của Rừng ngẫu nhiên

1.2.3.1 Ưu điểm của Rừng ngẫu nhiên

Thuật toán giải quyết tốt các bài toán có nhiều dữ liệu nhiễu, thiếu giá trị

Do cách chọn ngẫu nhiên thuộc tính nên các giá trị nhiễu, thiếu ảnh hưởng

không lớn đến kết quả Có những sự ước lượng nội tại như độ chính xác của mô

hình phỏng đoán hoặc độ mạnh và liên quan giữa các thuộc tính (Out of bag)

Dễ dàng thực hiện song song Thay vì một máy thực hiện cả thuật toán, ta có

thể sử dụng nhiều máy để xây dựng các cây sau đó ghép lại thành rừng

Các sai số được giảm thiểu do kết quả của Random Forest được tổng hợp

thông qua nhiều người học (Cây phân lớp) Việc chọn ngẫu nhiên tại mỗi bước

trong Random Forest sẽ làm giảm mối tương quan giữa các người học trong

việc tổng hợp các kết quả Lỗi chung của một rừng các cây phân lớp phụ thuộc

vào lỗi riêng của từ Dữ liệu huấn luyện cần được đa dạng hóa và cân bằng về số

nhãn lớp

1.2.3.2 Nhược điểm của Rừng ngẫu nhiên

Cân bằng nhãn lớp khiến kết quả dự đoán của thuật toán có thể lệch về số

đông nhãn lớp

Thời gian huấn luyện của rừng có thể kéo dài tùy số cây và số thuộc tính

phân chia.ng cây trong rừng cũng như mối tương quan giữa các cây

1.2.4 Các bước thực hiện

Đầu tiên thuật toán Rừng ngẫu nhiên được xây dựng dựa trên một tập thể

cây quyết định Cây quyết định là các khối xây dựng của một thuật toán rừng

ngẫu nhiên Cây quyết định là một kỹ thuật hỗ trợ quyết định tạo thành một cấu

trúc giống như cây Tổng quan về cây quyết định sẽ giúp chúng ta hiểu cách

hoạt động của các thuật toán rừng ngẫu nhiên

Cây quyết định bao gồm ba thành phần: nút quyết định, nút lá và nút gốc

Thuật toán cây quyết định chia tập dữ liệu huấn luyện thành các nhánh, tập dữ

liệu này sẽ tách biệt thành các nhánh khác Trình tự này tiếp tục cho đến khi đạt

được một nút lá Nút lá không thể được phân tách thêm

Trang 26

Các nút trong cây quyết định đại diện cho các thuộc tính được sử dụng để

dự đốn kết quả Các nút quyết định cung cấp một liên kết đến các lá Sơ đồ sau

đây cho thấy ba loại nút trong cây quyết định

Hình 1.5 Mơ hình bỏ phiếu phân loại của thuật tốn Rừng ngẫu nhiên

Ở bước huấn luyện thì mình sẽ xây dựng nhiều cây quyết định, các cây

quyết định cĩ thể khác nhau Sau đĩ ở bước dự đốn, với một dữ liệu mới, thì ở

mỗi cây quyết định mình sẽ đi từ trên xuống theo các điểm nút điều kiện để

được các dự đốn, sau đĩ kết quả cuối cùng được tổng hợp từ kết quả của các

cây quyết định

1.3 Thuật tốn Nạve Bayes

1.3.1 Giới thiệu

Naive Bayes Classification (NBC) là một thuật tốn dựa trên định lý

Bayes về lý thuyết xác suất để đưa ra các phán đố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ê Naive Bayes Classification là

một trong những thuật tốn được ứng dụng rất nhiều trong các lĩnh vực

Machine learning dùng để đưa các dự đốn chính xác nhất dự trên một tập dữ

liệu đã được thu thập, vì nĩ khá dễ hiểu và độ chính xác cao Nĩ thuộc vào

nhĩm Supervised Machine Learning Algorithms (thuật tốn học cĩ hướng dẫn),

tức là máy học từ các ví dụ từ các mẫu dữ liệu đã cĩ

Ví dụ như ta cĩ thể ứng dụng vào việc thiết kế một ứng dụng nghe nhạc cĩ

thể phán đốn được sở thích của nghe nhạc của người dùng dựa trên các hành vi

như nhấn nút “thích” bài hát, “nghe đi nghe” lại nhiều lần các bài hát “bỏ qua”

các bài hát khơng thích … Dựa trên tập dữ liệu đĩ ta cĩ thể áp dụng NBC để

Trang 27

tính toán ra các phong cách nhạc mà người dùng thích nhất, từ đó chúng ta có

thể đưa ra các “gợi ý” nghe nhạc gần đúng nhất cho người dùng từ việc học hỏi

từ những thói quen đó

1.3.2 Định lý Bayes

Định lý Bayes cho phép tính 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 Xác suất này được ký hiệu là P(A|B), và

đọc là "xác suất của A nếu có B" Đại lượng này được gọi là xác suất có điều

kiện hay xác suất hậu nghiệm vì nó được rút ra từ giá trị được cho của B hoặc

phụ thuộc vào giá trị đó

Theo định lý Bayes, xác suất xảy ra A khi biết B sẽ phụ thuộc vào 3 yếu

tố:

Xác suất xảy ra A của riêng nó, không quan tâm đến B Ký hiệu là P(A) và

đọc là xác suất của A Đây được gọi là xác suất biên duyên hay xác suất tiên

nghiệm, nó là "tiên nghiệm" theo nghĩa rằng nó không quan tâm đến bất kỳ

thông tin nào về B

Xác suất xảy ra B của riêng nó, không quan tâm đến A Ký hiệu là P(B) và

đọc là "xác suất của B" Đại lượng này còn gọi là hằng số chuẩn hóa

(normalising constant), vì nó luôn giống nhau, không phụ thuộc vào sự kiện A

đang muốn biết

Xác suất xảy ra B khi biết A xảy ra Ký hiệu là P(B|A) và đọc là "xác suất

của B nếu có A" Đại lượng này gọi là khả năng (likelihood) xảy ra B khi biết A

đã xảy ra Chú ý không nhầm lẫn giữa khả năng xảy ra B khi biết A và xác suất

xảy ra A khi biết B

Khi biết ba đại lượng này, xác suất của A khi biết B cho bởi công thức:

𝑃(𝐴|𝐵) =𝑃(𝐵|𝐴)𝑃(𝐴)

𝑙𝑖𝑘𝑒𝑙𝑖ℎ𝑜𝑜𝑑 ∗ 𝑝𝑟𝑖𝑜𝑟𝑛𝑜𝑟𝑚𝑎𝑙𝑖𝑧𝑖𝑛𝑔𝑐𝑜𝑛𝑠𝑡𝑎𝑛𝑡

Côn

g thức (1.1)

Từ đó dẫn tới:

𝑃(𝐴|𝐵)𝑃(𝐵) = 𝑃(𝐴⋂𝐵) = 𝑃(𝐵|𝐴)𝑃(𝐴) Công thức (1.2)

1.3.3 Cách hoạt động

Bước 1 Gọi D là tập dữ liệu huấn luyện, trong đó mỗi phần tử dữ liệu X

được biểu diễn bằng một vector chứa n giá trị thuộc tính

Trang 28

𝐴1, 𝐴2… 𝐴𝑛 = {𝑥1, 𝑥2, … 𝑥𝑛} Công thức (1.3) Bước 2 Giả sử có m lớp C1, C2…Cm Cho một phần tử dữ liệu X, bộ

phân lớp sẽ gán nhãn cho X là lớp có xác suất hậu nghiệm lớn nhất Cụ thể, bộ

phân lớp Bayes sẽ dự đoán X thuộc vào lớp Ci nếu và chỉ nếu:

𝑃(𝐶𝑖|𝑋) > 𝑃(𝐶𝑗|𝑋) (1 <= 𝑖, 𝑗 <= 𝑚, 𝑖 ! = 𝑗) Công thức (1.4) Giá trị này sẽ tính dựa trên định lý Bayes

Bước 3 Để tìm xác suất lớn nhất, ta nhận thấy các giá trị P(X) là giống

nhau với mọi lớp nên không cần tính Do đó ta chỉ cần tìm giá trị lớn nhất của

P(X|Ci) * P(Ci) Chú ý rằng P(Ci) được ước lượng bằng |Di|/|D|, trong đó Di là

tập các phần tử dữ liệu thuộc lớp Ci Nếu xác suất tiền nghiệm P(Ci) cũng

không xác định được thì ta coi chúng bằng nhau

𝑃(𝐶1) = 𝑃(𝐶2) = = 𝑃(𝐶𝑚) Công thức (1.5) khi đó ta chỉ cần tìm giá trị P(X|Ci) lớn nhất

Bước 4 Khi số lượng các thuộc tính mô tả dữ liệu là lớn thì chi phí tính

toàn P(X|Ci) là rất lớn, dó đó có thể giảm độ phức tạp của thuật toán Naive

Bayes giả thiết các thuộc tính độc lập nhau Khi đó ta có thể tính:

dịch Just-In-Time mà V8 thực hiện Nhờ đó, mã JavaScript chạy trong Node.js

có thể trở nên rất hiệu quả

Một số tính năng quan trọng:

− Không đồng bộ và theo hướng sự kiện - Tất cả các API của thư viện Node.js là không đồng bộ, nghĩa là không chặn Về cơ bản, nó có nghĩa là một máy chủ dựa trên Node.js không bao giờ đợi API trả về dữ liệu Máy chủ

Trang 29

chuyển đến API tiếp theo sau khi gọi nó và cơ chế thông báo Sự kiện của Node.js giúp máy chủ nhận được phản hồi từ lệnh gọi API trước đó

− Rất nhanh - Được xây dựng trên Công cụ JavaScript V8 của Google Chrome, thư viện Node.js thực thi mã rất nhanh

− Đơn luồng nhưng có khả năng mở rộng cao - Node.js sử dụng mô hình một luồng với vòng lặp sự kiện Cơ chế sự kiện giúp máy chủ phản hồi theo cách không bị chặn và làm cho máy chủ có khả năng mở rộng cao so với các máy chủ truyền thống tạo ra các luồng giới hạn để xử lý các yêu cầu Node.js sử dụng một chương trình luồng đơn và chương trình tương tự có thể cung cấp dịch vụ cho số lượng yêu cầu lớn hơn nhiều so với các máy chủ truyền thống như Apache HTTP Server

− Không đệm - Các ứng dụng Node.js không bao giờ đệm bất kỳ dữ liệu

nào Các ứng dụng này chỉ đơn giản xuất dữ liệu theo từng phần

− Giấy phép - Node.js được phát hành theo giấy phép MIT

Một số lĩnh vực mà Node.js đang chứng tỏ mình là một đối tác công nghệ

hoàn hảo

− Các ứng dụng ràng buộc I / O

− Ứng dụng truyền dữ liệu

− Ứng dụng thời gian thực chuyên sâu về dữ liệu (DIRT)

− Ứng dụng dựa trên API JSON

− Ứng dụng trang đơn

1.4.2 Microsoft SQL Server

Microsoft SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ do Microsoft

phát triển Là một máy chủ cơ sở dữ liệu, nó là một sản phẩm phần mềm có

chức năng chính là lưu trữ và truy xuất dữ liệu theo yêu cầu của các ứng dụng

phần mềm khác Có thể chạy trên cùng một máy tính hoặc trên một máy tính

khác trong mạng (bao gồm cả Internet)

Microsoft đưa ra thị trường ít nhất một chục phiên bản Microsoft SQL

Server khác nhau, nhắm mục tiêu đến các đối tượng khác nhau và khối lượng

công việc khác nhau, từ các ứng dụng máy đơn nhỏ đến các ứng dụng Internet

lớn với nhiều người dùng đồng thời

SQL là một ngôn ngữ phi thủ tục và không yêu cầu bất kỳ quyền truy cập

nào vào cơ sở dữ liệu Tất cả các thông điệp SQL đều dễ sử dụng và không có

lỗi

SQL cung cấp các tập lệnh phong phú cho các tác vụ truy vấn dữ liệu như:

Trang 30

− Chèn, xóa và cập nhật các hàng trong một mối quan hệ

− Chạm, thêm, xóa và sửa đổi các đối tượng trong cơ sở dữ liệu

− Kiểm soát quyền truy cập vào cơ sở dữ liệu và các đối tượng cơ sở

dữ liệu để đảm bảo tính bảo mật, tính nhất quán và tính ràng buộc của

cơ sở dữ liệu

Đối tượng của máy chủ SQL là bảng dữ liệu với các cột và hàng Các cột

được gọi là trường dữ liệu và các hàng là các bản ghi của một bảng Các cột dữ

liệu và kiểu dữ liệu xác định tạo nên cấu trúc của bảng

Khi một bảng được tổ chức thành một hệ thống cho một mục đích cụ thể, nó

sẽ trở thành một cơ sở dữ liệu

1.4.3 Angular

Angular là một nền tảng phát triển và khung thiết kế ứng dụng để tạo các

ứng dụng một trang hiệu quả và phức tạp

Các tài liệu Angular này giúp bạn tìm hiểu và sử dụng khung Angular và

nền tảng phát triển, từ ứng dụng đầu tiên của bạn đến việc tối ưu hóa các ứng

dụng một trang phức tạp cho doanh nghiệp Hướng dẫn và hướng dẫn bao gồm

các ví dụ có thể tải xuống để tăng tốc các dự án của bạn

Với cơ chế Single Page, Angular có sức mạnh trong việc xây dựng một

website nhanh về mặt tốc độ tải dữ liệu Việc sử ít chuyển Router cũng giúp

trang website ít phải reload giúp chương trình thân thiện người dùng hơn

➢ Phiên bản Angular

Phiên bản sớm nhất của Angular được đặt tên là Angular 2 Sau đó đổi

tên thành Angular Nhóm Angular sau đó đã phát triển một phiên bản thông

thường mới và phiên bản ổn định mới nhất là Angular 11

Hiện có phiên bản beta của Angular 11 được phát hành vào ngày 25 tháng 1 năm 2022

➢ Lịch sử phát hành

Trang 31

Hình 1.6 Lịch sử phiên bản phát triển Angular

➢ Yêu cầu

Angular yêu cầu hiểu biết về JavaScript, HTML và CSS Nó cũng cần

kiến thức về OOP Và kiến thức về AngularJS là không cần thiết Bạn sẽ sử

dụng TypeScript để viết mã và nếu bạn có kiến thức về C # hoặc Java thì việc

học sẽ dễ dàng hơn

➢ Giới thiệu về Angular

Angular 2 được biết đến rộng rãi với cái tên Angular hiện tại Nó là một

khuôn khổ cho giao diện người dùng và phiên bản tiếp theo của AngularJS

Angular là mã nguồn mở giúp chúng tôi xây dựng các Ứng dụng Trang Đơn

(SPA)

Angular cũng đang xây dựng cả ứng dụng Di động và Máy tính để bàn

Nó được xây dựng bằng JavaScript Bạn phải sử dụng nó để xây dựng một ứng

dụng hoàn chỉnh kết hợp HTML, CSS và JavaScript

Angular có nhiều cải tiến so với AngularJS Nó có nhiều cải tiến giúp dễ

dàng tìm hiểu và phát triển các ứng dụng cho doanh nghiệp Bạn có thể xây

dựng một ứng dụng dễ mở rộng, bảo trì và thử nghiệm

➢ Tính năng của Angular

Angular được tải bằng Power-packaged Một số tính năng được liệt kê ở

đây:

− Cơ chế liên kết dữ liệu hai chiều: Đây là tính năng thú vị nhất của

Angular Liên kết dữ liệu tự động và rất nhanh chóng có nghĩa là bất

kỳ thay đổi nào trên khung nhìn đều được tự động cập nhật vào lớp

thành phần và ngược lại

Trang 32

− Hỗ trợ cơ chế định tuyến mạnh mẽ: Angular có cơ chế định tuyến tải

trang không đồng bộ trên cùng một trang cho phép chúng ta tạo SPA

− Mở rộng HTML: Angular cho phép chúng ta sử dụng cấu trúc lập trình

như điều kiện if, vòng lặp for… để kết xuất các điều khiển

− Thiết kế mô-đun: Tiếp cận góc cạnh theo hướng thiết kế mô-đun Bạn

phải tạo Mô-đun Angular để tổ chức và quản lý mã nguồn tốt hơn

− Hỗ trợ làm việc với hệ thống Backend: Angular được xây dựng để hỗ

trợ làm việc với backend server và thực thi bất kỳ logic nào và nhận dữ

liệu

− Cộng đồng tốt: Angular được cung cấp bởi Google và cộng đồng

Angular được thay đổi rất nhiều so với AngularJS Angular đã được thiết

kế lại từ đầu nên nhiều khái niệm đã thay đổi so với AngularJS Ngày này với

những tiện lợi của Angular11 thì nhiều công cụ hỗ trợ cho lập trình viên hơn

việc xây dựng các giao diện chức năng cũng tăng đáng kể

1.4.4 Python

Python là ngôn ngữ lập trình hướng đối tượng, cấp cao, mạnh mẽ, được

tạo ra bởi Guido van Rossum Nó dễ dàng để tìm hiểu và đang nổi lên như một

trong những ngôn ngữ lập trình nhập môn tốt nhất cho người lần đầu tiếp xúc

với ngôn ngữ lập trình Python hoàn toàn tạo kiểu động và sử dụng cơ chế cấp

phát bộ nhớ tự động Python có cấu trúc dữ liệu cấp cao mạnh mẽ và cách tiếp

cận đơn giản nhưng hiệu quả đối với lập trình hướng đối tượng Cú pháp lệnh

của Python là điểm cộng vô cùng lớn vì sự rõ ràng, dễ hiểu và cách gõ linh

động làm cho nó nhanh chóng trở thành một ngôn ngữ lý tưởng để viết script và

phát triển ứng dụng trong nhiều lĩnh vực, ở hầu hết các nền tảng

1.4.5 Docker Compose

Docker Compose là một công cụ dùng để định nghĩa và chạy các chương

trình Docker sử dụng nhiều container (multi-container) Với Docker Compose, chúng ta sử dụng một file YAML để thiết lập các service cần thiết cho chương trình Cuối cùng, với một câu lệnh, chúng ta sẽ create và start tất cả service từ các thiết lập đó

Docker là một nền tảng dành cho developer và system administrator, cung

cấp cho họ những thành phần để build, run và share những chương trình thông

qua những container Việc sử dụng container để triển khai chương trình được

gọi là containerization

Trang 33

Một chương trình bình thường nếu chạy ở các server sẽ có ba lớp từ trên

xuống là: chương trình (Application), Hệ điều hành (Operating System) và Máy

chủ vật lí (Physical Server)

Hình 1.7 Docker Container và máy ảo

1.4.6 Google Colaboratory

Colaboratory hay còn gọi là Google Colab, là một sản phẩm từ Google

Research, nó cho phép chạy các dòng code python thông qua trình duyệt, đặc

biệt phù hợp với Data analysis, machine learning và giáo dục Colab không cần

yêu cầu cài đặt hay cấu hình máy tính, mọi thứ có thể chạy thông qua trình

duyệt, bạn có thể sử dụng tài nguyên máy tính từ CPU tốc độ cao và cả GPUs

và cả TPUs đều được cung cấp cho bạn

Colab cung cấp nhiều loại GPU, thường là Nvidia K80s, T4s, P4s and

P100s, tuy nhiên người dùng không thể chọn loại GPU trong Colab, GPU trong

Colab thay đổi theo thời gian Vì là dịch vụ miễn phí, nên Colab sẽ có những

thứ tự ưu tiên trong việc sử dụng tài nguyên hệ thống, cũng như giới hạn thời

gian sử dụng, thời gian sử dụng tối đa lên tới 12 giờ

Google Colab hiện cũng cung cấp một nền tảng trả phí có tên Google

Colab Pro, có giá 9,99$/tháng Khi sử dụng, bạn có thể nhận được GPU Tesla

T4 hoặc Tesla P100 và tùy chọn chọn một phiên bản có RAM cao khoảng 27

GB Ngoài ra, thời gian sử dụng tối đa của bạn được nhân đôi từ 12 giờ lên 24

giờ

Trang 34

Hình 1.8 Cấu hình phần cứng Google colab cung cấp

1.5 Các giao thức và mô hình

Với kiến trúc hướng dịch vụ, chúng tôi quyết định sử dụng Angular để

phát triển trang web giao diện người dùng và Node JS để xây dựng các API để

tương tác với dữ liệu lưu tại cơ sở dữ liệu tại Công ty Ngoài ra tôi cũng sử

dụng Google Colab để triển khai các chương trình huấn luyện trên đám mây

Tôi triển khai hệ thống của mình đến máy chủ của công ty TTHPC Chúng tôi

sẽ nói về những công nghệ này trong phần này, nhưng trước hết chúng tôi sẽ

trình bày các lý thuyết cơ bản

1.5.1 HTTP

Giao thức truyền siêu văn bản (HTTP) là một giao thức ứng dụng cho các

hệ thống thông tin phân tán, cộng tác và siêu phương tiện Nó là một giao thức

chung, không trạng thái, có thể được sử dụng cho nhiều tác vụ ngoài việc sử

dụng cho siêu văn bản, chẳng hạn như máy chủ định danh và hệ thống quản lý

đối tượng phân tán, thông qua việc mở rộng các phương thức yêu cầu, mã lỗi và

tiêu đề của nó HTTP là nền tảng của giao tiếp dữ liệu cho World Wide Web

HTTP hoạt động như một giao thức phản hồi yêu cầu trong mô hình tính

toán máy khách-máy chủ Ví dụ: một trình duyệt web có thể là máy khách và

một ứng dụng chạy trên máy tính lưu trữ một trang web có thể là máy chủ Máy

khách gửi một thông báo yêu cầu HTTP đến máy chủ Máy chủ, nơi cung cấp

các tài nguyên như tệp HTML và nội dung khác, hoặc thực hiện các chức năng

khác thay mặt máy khách, trả về một thông báo phản hồi cho máy khách Phản

hồi chứa thông tin trạng thái hoàn thành về yêu cầu và cũng có thể chứa nội

dung được yêu cầu trong nội dung thư của nó

HTTP được thiết kế để cho phép các phần tử mạng trung gian cải thiện

hoặc cho phép giao tiếp giữa máy khách và máy chủ Trình duyệt là một máy

khách HTTP vì nó gửi các yêu cầu đến máy chủ HTTP (máy chủ Web), máy

chủ này sau đó sẽ gửi phản hồi trở lại máy khách Cổng tiêu chuẩn (và mặc

định) cho các máy chủ HTTP để lắng nghe là 80, mặc dù chúng có thể sử dụng

bất kỳ cổng nào Dòng yêu cầu có ba phần, được phân tách bằng dấu cách: tên

Trang 35

phương thức, đường dẫn cục bộ của tài nguyên được yêu cầu và phiên bản

HTTP đang được sử dụng

HTTP xác định các phương thức để chỉ ra hành động mong muốn được

thực hiện trên tài nguyên đã xác định Tài nguyên này đại diện cho điều gì, cho

dù là dữ liệu có từ trước hay dữ liệu được tạo động, phụ thuộc vào việc triển

khai của máy chủ Thông thường, tài nguyên tương ứng với một tệp hoặc đầu ra

của tệp thực thi nằm trên máy chủ Đặc tả HTTP / 1.0 xác định các phương thức

GET, POST và HEAD và đặc tả HTTP / 1.1 đã thêm 5 phương thức mới:

OPTIONS, PUT, DELETE, TRACE và CONNECT

Với các URL và phương thức, máy khách có thể khởi tạo các yêu cầu tới

máy chủ Đổi lại, máy chủ phản hồi bằng mã trạng thái và thông báo Mã trạng

thái rất quan trọng và cho máy khách biết cách diễn giải phản hồi của máy chủ

Thông số HTTP xác định các phạm vi số nhất định cho các loại phản hồi cụ thể:

1xx: Tin nhắn thông tin Lớp mã này được giới thiệu trong HTTP / 1.1 và

hoàn toàn là tạm thời

2xx: Thành công Loại mã trạng thái này cho biết rằng yêu cầu của khách

hàng đã được nhận, hiểu và chấp nhận thành công Mã phổ biến nhất là 200

OK

3xx: Chuyển hướng Điều này yêu cầu khách hàng thực hiện thêm hành

động Trường hợp sử dụng phổ biến nhất là chuyển đến một URL khác để tìm

nạp tài nguyên

4xx: Lỗi máy khách Các mã này được sử dụng khi máy chủ cho rằng máy

khách bị lỗi, do yêu cầu tài nguyên không hợp lệ hoặc đưa ra yêu cầu không

hợp lệ Mã phổ biến nhất trong lớp này là 404 Not Found, nó chỉ ra rằng tài

nguyên không hợp lệ và không tồn tại trên máy chủ

5xx: Lỗi Máy chủ Loại mã này được sử dụng để chỉ ra lỗi máy chủ trong

khi xử lý yêu cầu Mã lỗi phổ biến nhất là Lỗi máy chủ nội bộ 500

1.5.2 Định dạng JSON

JSON hoặc JavaScript Object Notation là một định dạng trao đổi dữ liệu

văn bản thuần túy Nó dựa trên một tập hợp con của phiên bản thứ ba của tiêu

chuẩn ECMA-262 JSON được sử dụng như một cơ chế để tuần tự hóa cấu trúc

dữ liệu thành chuỗi Các chuỗi này thường được gửi qua các mạng, được ghi để

xuất tệp hoặc được sử dụng để gỡ lỗi

Về mặt ngữ pháp, JSON rất giống với cú pháp theo nghĩa đen của đối

tượng JavaScript Danh sách sau đây mô tả các quy tắc để tạo chuỗi JSON:

Trang 36

− Các đối tượng JSON bắt đầu bằng dấu ngoặc nhọn mở ‘{‘ và kết

thúc bằng dấu ngoặc nhọn đóng ‘}”

− Giữa các dấu ngoặc nhọn là không hoặc nhiều cặp khóa / giá trị

được gọi là thành viên

− Các thành viên được phân tách bằng dấu phẩy

− Khóa và giá trị của mỗi phần tử được phân tách bằng dấu hai chấm

− Khóa là chuỗi và phải được bao quanh bởi dấu ngoặc kép

− Định dạng của giá trị phụ thuộc vào kiểu dữ liệu

Ví dụ: {“name": "xuanthien", "age": 26, "city": "thành phố Huế"} là một

đối tượng JSON Các khóa của nó là tên, tuổi và thành phố Giá trị tương ứng

của nó là xuanthien, 26 và thành phố Huế

JSON hỗ trợ nhiều kiểu dữ liệu gốc của JavaScript Cụ thể, JSON hỗ trợ

số, chuỗi, Boolean, mảng, đối tượng và null Vì định dạng JSON chỉ là văn bản

nên nó có thể dễ dàng được gửi đến và đi từ máy chủ và được sử dụng làm định

dạng dữ liệu bởi bất kỳ ngôn ngữ lập trình nào

1.5.3 Chuyển giao trạng thái đại diện (REST)

Chuyển giao trạng thái đại diện (REST) xác định một tập hợp các nguyên

tắc kiến trúc mà bạn có thể thiết kế các dịch vụ Web tập trung vào tài nguyên

của hệ thống, bao gồm:

➢ Client - Server

Điều này về cơ bản tách các mối quan tâm về giao diện người dùng khỏi mối quan tâm về lưu trữ dữ liệu Có nghĩa là ứng dụng máy khách và ứng dụng

máy chủ phải có khả năng phát triển riêng biệt mà không phụ thuộc vào nhau

Khách hàng chỉ nên biết URI tài nguyên và đó là tất cả Điều này về cơ bản cho

phép ứng dụng khách trên nhiều nền tảng và ứng dụng máy chủ có thể mở rộng

➢ Stateless

Trang 37

Máy chủ sẽ không lưu trữ bất cứ điều gì về ứng dụng khách yêu cầu HTTP

mới nhất được thực hiện Nó sẽ coi mỗi và mọi yêu cầu là mới Mỗi yêu cầu từ

máy khách đến máy chủ phải chứa tất cả thông tin cần thiết để hiểu được yêu cầu và không thể tận dụng bất kỳ ngữ cảnh được lưu trữ nào trên máy chủ

Không có phiên, không có lịch sử Bất kỳ trạng thái phiên nào đều do khách

hàng nắm giữ

Lý do cho điều này về cơ bản là khi số lượng máy khách tăng lên, máy chủ

sẽ không thể theo dõi tất cả các máy khách đang giao tiếp với nó, điều này sẽ

mất rất nhiều thời gian Vì vậy, điều này về cơ bản là cần thiết để đảm bảo quy

mô của hệ thống Nhưng về cơ bản điều này làm cho hệ thống REST thiếu một

số chức năng cơ bản như đăng nhập, đăng xuất Để xác thực và ủy quyền máy

khách, máy chủ kiểm tra thông tin đăng nhập của từng yêu cầu, do đó máy

khách cần lưu trữ thông tin đăng nhập và gửi chúng trong mỗi yêu cầu

Hình 1.10 Stateless

➢ Uniform interface

Bằng cách áp dụng nguyên tắc chung của kỹ thuật phần mềm cho giao diện

thành phần, kiến trúc hệ thống tổng thể được đơn giản hóa và khả năng hiển thị

của các tương tác được cải thiện Để có được một giao diện thống nhất, cần có

nhiều ràng buộc kiến trúc để hướng dẫn hành vi của các thành phần REST

được định nghĩa bởi bốn ràng buộc giao diện: xác định tài nguyên; thao túng

các nguồn lực thông qua các đại diện; thông điệp tự mô tả; và, siêu phương tiện

như động cơ của trạng thái ứng dụng

➢ Cacheable

Như trên WWW, máy khách có thể lưu vào bộ nhớ cache các phản hồi

Do đó, các phản hồi phải tự xác định một cách rõ ràng hoặc rõ ràng là có thể lưu

vào bộ nhớ cache hoặc không, để ngăn máy khách sử dụng lại dữ liệu cũ hoặc

Trang 38

không phù hợp để phản hồi các yêu cầu khác Bộ nhớ đệm được quản lý tốt sẽ

loại bỏ một phần hoặc hoàn toàn một số tương tác giữa máy khách và máy chủ,

cải thiện hơn nữa khả năng mở rộng và hiệu suất

➢ Layered system

Thông thường, một máy khách không thể biết liệu nó được kết nối trực

tiếp với máy chủ cuối hay với một bên trung gian trên đường đi Máy chủ trung gian có thể cải thiện khả năng mở rộng hệ thống bằng cách cho phép cân bằng

tải và bằng cách cung cấp bộ nhớ đệm dùng chung Họ cũng có thể thực thi các

chính sách bảo mật

➢ Code on demand (optional)

Hầu hết thời gian, bạn sẽ gửi các biểu diễn tĩnh của tài nguyên dưới dạng XML hoặc JSON Nhưng khi cần, bạn có thể tự do trả lại mã thực thi để hỗ trợ

một phần của ứng dụng Nó được phép để làm mà không bị ngăn cản bởi các

API web phía máy chủ là giao diện lập trình bao gồm một hoặc nhiều điểm cuối được hiển thị công khai với hệ thống thông báo yêu cầu-phản hồi đã xác định, thường được thể hiện bằng JSON hoặc XML, được hiển thị qua web - phổ biến nhất là dựa trên HTTP máy chủ web API web phía máy khách là một giao diện có lập trình để mở rộng chức năng trong trình duyệt web hoặc máy khách HTTP khác

API REST là một API tuân theo các ràng buộc của REST Nó cho thấy

URI giống cấu trúc thư mục, chuyển XML, JSON hoặc cả hai Các thành phần chính của giao thức chuẩn trong API REST được sử dụng để cung cấp các hành động CRUD (Create, Read, Update, Delete) cho các tài nguyên

Trang 39

Bảng 1.1 Bảng quan hệ giữa SQL và HTTP

Trong thực tế, một API REST không được có đầy đủ 6 ràng buộc của

REST Nhưng nếu một API REST đáp ứng tất cả các ràng buộc của REST, nó

được gọi là API RESTful

Mẫu MVC đã được nhiều nhà phát triển báo trước là một mẫu hữu ích cho

việc tái sử dụng mã đối tượng và một mẫu cho phép họ giảm đáng kể thời gian phát triển ứng dụng với giao diện người dùng

− View, là một tập hợp các lớp đại diện cho các phần tử trong giao diện người dùng (tất cả những thứ mà người dùng có thể nhìn thấy và phản hồi trên màn hình, chẳng hạn như các nút, hộp hiển thị, v.v.)

Trang 40

− Controller, đại diện cho các lớp kết nối mô hình và khung nhìn và được

sử dụng để giao tiếp giữa các lớp trong mô hình và khung nhìn

Ngày đăng: 21/10/2022, 18:15

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Trần Hoàng Bình, (2015). Ứng dụng Random Forest để tư vấn chọn lộ trình học trong học chế tín chỉ. Luận văn Thạc sĩ chuyên ngành Khoa học máy tính. Mã số: 60.48.01.01, Đại học Đà Nẵng Khác
[2] Nguyễn Văn Hoàng, Phan Thị Thu Hồng, Nguyễn Thanh Tùng và Nguyễn Thị Thủy, (2014). Phương pháp lấy mẫu thuộc tính mới trong rừng ngẫu nhiên cho phân tích dữ liệu SNP. Tạp chí khoa học và phát triển 2015, tập 13, (số 2), tr.301- 307 Khác
[3] Đồng Thị Ngọc Lan, (2011). Nghiên cứu, xây dựng phương pháp trích chọn thuộc tính nhằm làm tăng hiệu quả phân lớp đối với dữ liệu đa chiều. Luận văn Thạc sĩ ngành Công nghệ phần mềm. Mã số: 60.48.10, Đại học công nghệ Khác
[4] Trần Thanh Sơn, (2012). Sử dụng dữ liệu ảnh viễn thám kết hợp kỹ thuật GIS để phân tích biến động tài nguyên rừng tại huyện Tuy Đức, tỉnh Đắk Nông. Luận văn Thạc sĩ Lâm nghiệp. Đại học Tây Nguyên Khác
[5] Nguyễn Văn Thị và Trần Quang Bảo, (2014). Ứng dụng kỹ thuật phân loại ảnh hướng đối tượng nhằm phân loại trạng thái rừng theo thông tư số 34. Tạp chí Khoa học Lâm nghiệp, 2/2014, tr.3343-3353 Khác
[6] Trịnh Thị Hoài Thu, Lê Thị Thu Hà và Phạm Thị Làn, (2012). So sánh phương pháp phân loại dựa vào điểm ảnh và phân loại định hướng đối tượng chiết xuất thông tin lớp phủ bề mặt Khác
[7] Ho, Tin Kam (1995). Random Decision Forests (PDF). Proceedings of the 3rd Interna-tional Conference on Document Analysis and Recognition, Montreal, QC, 14–16 Au-gust 1995. pp. 278–282 Khác
[8] Bauer, E. &amp; Kohavi, R. (1999). An empirical comparison of voting classification algo-rithms. Machine Learning, 36(1/2), 105–139 Khác
[9] Amit, Y. and Geman, D. (1997) Shape quantization and recognition with randomized trees, Neural Computation 9,1545-1588 Khác
[10] Breiman. L. (1998b). Randomizing outputs to increase prediction accuracy. Technical Report 518, May 1, 1998, Statistics Department, UCB (in press, Machine Learning) Khác
[11] Breiman, L. (1996a). Bagging predictors. Machine Learning 26(2), 123–140 Khác
[12] Breiman, L. 1999. Using adaptive bagging to debias regressions. Technical Report 547, Statistics Dept. UCB Khác
[14] Andrew Beattlie. The Story Behind Google's Success. Investopedia Business Company Profiles May 19, 2020 Khác
[15] Mark J Christensen, Richard H Thayer (2002), The project manager’s guide to Software Engineering’s Best Practices, Wiley-IEEE Computer Society Khác
[16] Dorothy Graham (2002), Requirements and Testing Seven Missing-Link Myths IEEE Software, volume: 19, pages 15-17 Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.1 Mơ hình học cĩ giám sát - Xây dựng hệ thống AI nhận diện và dự đoán sản lượng điện năng tiêu thụ bất thường của khách hàng
Hình 1.1 Mơ hình học cĩ giám sát (Trang 19)
Hình 1.2 Mơ hình học khơng giám sát - Xây dựng hệ thống AI nhận diện và dự đoán sản lượng điện năng tiêu thụ bất thường của khách hàng
Hình 1.2 Mơ hình học khơng giám sát (Trang 19)
Hình 1.4 Ví dụ khi áp dụng thuật tốn RF trong lựa chọn trái cây - Xây dựng hệ thống AI nhận diện và dự đoán sản lượng điện năng tiêu thụ bất thường của khách hàng
Hình 1.4 Ví dụ khi áp dụng thuật tốn RF trong lựa chọn trái cây (Trang 24)
Hình 1.3 Mơ hình thuật tốn Random Forest - Xây dựng hệ thống AI nhận diện và dự đoán sản lượng điện năng tiêu thụ bất thường của khách hàng
Hình 1.3 Mơ hình thuật tốn Random Forest (Trang 24)
Hình 1.5 Mơ hình bỏ phiếu phân loại của thuật tốn Rừng ngẫu nhiên - Xây dựng hệ thống AI nhận diện và dự đoán sản lượng điện năng tiêu thụ bất thường của khách hàng
Hình 1.5 Mơ hình bỏ phiếu phân loại của thuật tốn Rừng ngẫu nhiên (Trang 26)
Hình 1.6 Lịch sử phiên bản phát triển Angular - Xây dựng hệ thống AI nhận diện và dự đoán sản lượng điện năng tiêu thụ bất thường của khách hàng
Hình 1.6 Lịch sử phiên bản phát triển Angular (Trang 31)
Hình 1.7 Docker Container và máy ảo - Xây dựng hệ thống AI nhận diện và dự đoán sản lượng điện năng tiêu thụ bất thường của khách hàng
Hình 1.7 Docker Container và máy ảo (Trang 33)
Hình 1.8 Cấu hình phần cứng Google colab cung cấp - Xây dựng hệ thống AI nhận diện và dự đoán sản lượng điện năng tiêu thụ bất thường của khách hàng
Hình 1.8 Cấu hình phần cứng Google colab cung cấp (Trang 34)
Hình 1.10 Stateless - Xây dựng hệ thống AI nhận diện và dự đoán sản lượng điện năng tiêu thụ bất thường của khách hàng
Hình 1.10 Stateless (Trang 37)
Bảng 1.1 Bảng quan hệ giữa SQL và HTTP - Xây dựng hệ thống AI nhận diện và dự đoán sản lượng điện năng tiêu thụ bất thường của khách hàng
Bảng 1.1 Bảng quan hệ giữa SQL và HTTP (Trang 39)
1.5.5. Mơ hình MVC - Xây dựng hệ thống AI nhận diện và dự đoán sản lượng điện năng tiêu thụ bất thường của khách hàng
1.5.5. Mơ hình MVC (Trang 39)
Bảng 2.1 06 khách hàng trộm cắp điện năm 2019 - Xây dựng hệ thống AI nhận diện và dự đoán sản lượng điện năng tiêu thụ bất thường của khách hàng
Bảng 2.1 06 khách hàng trộm cắp điện năm 2019 (Trang 42)
Hình 2.1 Sản lượng điện tiêu thụ 12 tháng năm 2021 của khách hàng PC03BB0101051 - Xây dựng hệ thống AI nhận diện và dự đoán sản lượng điện năng tiêu thụ bất thường của khách hàng
Hình 2.1 Sản lượng điện tiêu thụ 12 tháng năm 2021 của khách hàng PC03BB0101051 (Trang 42)
Hình 2.2 Biểu đồ sản lượng trong năm 2019 06 khách hàng trộm cắp điện - Xây dựng hệ thống AI nhận diện và dự đoán sản lượng điện năng tiêu thụ bất thường của khách hàng
Hình 2.2 Biểu đồ sản lượng trong năm 2019 06 khách hàng trộm cắp điện (Trang 43)
Hình 2.3 Biểu đồ dữ liệu sản lượng điện 2 năm của một khách hàng ăn trộm ít biến động - Xây dựng hệ thống AI nhận diện và dự đoán sản lượng điện năng tiêu thụ bất thường của khách hàng
Hình 2.3 Biểu đồ dữ liệu sản lượng điện 2 năm của một khách hàng ăn trộm ít biến động (Trang 44)

TRÍCH ĐOẠN

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