Các ứng dụng của ML đ愃̀ quá quen thuô ̣c với con người: xe tự hành của Google và Tesla, hệ thống tự tag khuôn mặt trên Facebook, hệ thống gợi ý sản phẩm của Amazon, hệ thống gợi ý phim
Trang 1TRƯỜNG ĐẠI HỌC KHOA CÔNG NGHỆ THÔNG TIN
Trang 2LỜI MỞ ĐẦU
Trí tuệ nhân tạo tiếng anh là Artificial intelligence – viết tắt là AI Chúng ta
có thể hiểu đó như là một ngành của khoa học máy tính Con người lập trình nên
nó với mục đích để giúp máy tính có thể thực hiện các hành vi thông minh và xử
lý các yêu cầu giống như con người
Những năm gần đây, AI nổi lên như mô ̣t bằng chứng của cuô ̣c cách mạngcông nghiệp lần thứ tư Theo đà phát triển của công nghệ, ứng dụng trí tuệ nhântạo luôn là xu hướng công nghệ tương lai mà các h愃̀ng công nghệ trên toàn thếgiới đua nhau sáng tạo, nó là nền tảng cốt lõi của cuốc cách mạng công nghệ 4.0.Hầu hết mọi nghành công nghiệp đang làm việc với hàm lượng lớn dữ liệu đềunhận ra tầm quan trọng của công nghệ ML Những cái nhìn sáng suốt từ nguồndữ liệu này – chủ yếu dạng thời gian thực – sẽ giúp các tổ chức vận hành hiệuquả hơn hoặc tạo lợi thế cạnh tranh so với các đối thủ Các ứng dụng của ML đ愃̀quá quen thuô ̣c với con người: xe tự hành của Google và Tesla, hệ thống tự tagkhuôn mặt trên Facebook, hệ thống gợi ý sản phẩm của Amazon, hệ thống gợi ýphim của Netflix…, chỉ là mô ̣t vài trong vô vàn những ứng dụng của trí tuệ nhântạo và cụ thể là ML
Nhằm vận dụng những kiến thức đ愃̀ học để áp dụng vào thực tế, trong bài tậplớn này chúng em đ愃̀ nghiên cứu ứng dụng của trí tuệ nhân tạo trong việc dự báothời tiết và thuật toán được sử dụng đó là thuật toán KNN- (K-NearestNeighbors) được viết bằng ngôn ngữ Python
Với sự hướng dẫn, động viên tận tình của cô Nguyễn Lan Ann, chúng em đ愃̀hiểu được cách thức hoạt động của thuật toán và hoàn thành bài báo cáo này Vìlượng kiến thức và trình độ chuyên môn có hạn nên trong tài liệu không tránhkhỏi những sai sót, nhóm sinh viên chúng em rất mong nhận được sự góp ý từ cô
và bạn đọc để đề tài của chúng em được hoàn thiện hơn
Nhóm chúng em xin chân thành cảm ơn
Trang 3MỤC LỤC
Lời mở đầu
Mục lục
Chương 1 Giới thiệu về đề tài
1.1 Tình hình nghiên cứu ở trong và ngoài nước
1.1.1 Tình hình nghiên cứu ở nước ngoài
1.1.2 Tình hình nghiên cứu tại Việt Nam
1.2 Tính cấp thiết của đề tài
1.3 Mục tiêu
1.4 Nội dung
1.5 Cách tiếp cận và phương pháp nghiên cứu
Chương 2 Cơ sở lý thuyết 10
2.1 Giới thiệu về học máy (Machine Learning) 10
2.2 Quy trình xây dựng mô hình machine learning 11
2.3 Các loại học máy 11
2.4 Ứng dụng của Machine Learning 12
Chương 3: Một số thuật toán cơ bản của Machine Learning 15
3.1 Thuật toán Random forest 15
3.1.1 Thuật toán ID3
3.1.2 Thuật toán C4.5
3.1.3 Tiêu chuẩn dừng
3.2 Thuật toán phân loại Bayes (Naive Bayes) 23
Trang 43.2.2 Phân lớp Bayes (Naive Bayes)
3.2.3 Khắc phục vấn đề xác suất điều kiện bằng zero
3.2.4 Ứng dụng
3.2.5 Ưu điểm và nhược điểm
3.3 Thuật toán SVM (Support Vector Machine) 27
3.3.1 Định nghĩa SVM
3.3.2 Margin trong SVM
3.4 Thuật toán KNN (K-Near Neighbors) 30
3.4.1 Bài toán đặt ra
3.4.2 Ý tưởng của KNN
3.4.3 Ưu nhược điểm
Chương 4 Ứng dụng K-Near Neighbors vào bài toán dự báo thời tiết 34
4.1 Thuật toán 34
4.1.1 Lý do chọn thuật toán K-Near Neighbors
4.1.2 Các bước thực hiện thuật toán K-Near Neighbors
4.2 Quy trình thực hiện 35
4.2.1 Thu thập dữ liệu
4.2.2 Cài đặt thuật toán
4.3 Kết quả 43
Kết luận 47
Kết quả đạt được 47
Hạn chế 47
Tài liệu tham khảo 48
Trang 6CHƯƠNG 1 GIỚI THIỆU VỀ ĐỀ TÀI
1.1 Tình hình nghiên cứu ở trong và ngoài nước
1.1.1 Tình hình nghiên cứu ở nước ngoài
Từ nhiều năm về trước vấn đề về thời tiết là điều vô cùng quan trọng và cấp thiết đối với mỗi cá nhân cũng như toàn x愃̀ hội Các nhà khoa học và công nghệ đ愃̀ đẩy mạnh công tác nghiên cứu ra các công nghệ dự báo thời tiết nhằm khai thác và phát huy tiềm năng công nghệ, kỹ thuật hiện có, đào tạo nguồn nhân lực, ứng dụng có hiệu quả để có thể tạo ra được những ứng dụng dự báo thời thiết chính xác nhất Trên thế giới cũng đ愃̀ phát minh ra nhiều ứng dụng dự báo thời tiết như Yahoo Weather, AccuWeather, Weather forecast, Dark Sky hay một số trang web dự báo thời tiết cập nhật từng thời điểm, địa điểm rõ ràng.
1.1.2 Tình hình nghiên cứu tại Việt Nam
Ông bà ta đ愃̀ biết đến ngành khoa học thần bí "Dự báo thời tiết" thông qua những kinh nghiệm bản thân, đưa ra những phán đoán tương lai.
- “Nào ai chài lưới ra khơi
Thấy mây đỏ ngọn thì bơi thuyền vào”
- “Chuồn chuồn bay thấp thì mưa Bay cao thì nắng, bay vừa thì râm”
Với yêu cầu cao trong các thông tin dự báo thời tiết của x愃̀ hội, Việt Nam đ愃̀ từng bước hiện đại hóa những công nghệ được đầu tư có trọng điểm, chuyên sâu giúp dự báo kịp thời, chính xác nhiệt độ, nắng, mưa, tốc độ gió,… Bên cạnh đó, nước ta đ愃̀ chủ động hợp tác với quốc tế để xây dựng nâng cấp các hệ thống dự báo, đạt được hiệu quả tốt nhất phục vụ cho đất nước.
1.2 Tính cấp thiết của đề tài
Dự báo thời tiết có một vai trò to lớn trong đời sống kinh tế, x愃̀ hội Dự báo đúng sẽ giúp con người đưa ra những quyết định đúng đắn, dự báo sai có thể sẽ là những hậu quả vô cùng khủng khiếp.
Trong những năm gần đây, vấn đề về thời tiết là điều mà ai cũng đang quan tâm, đặc biệt là các nhà nghiên cứu về khí hậu nước ta cũng như trên thế giới Cũng đ愃̀ có
Trang 7nhiều sản phẩm công nghệ ra đời để dự báo về thời tiết tuy nhiên sự đổi mới của công nghệ cùng với những phát triển về khoa học công nghệ thì ngày càng mong muốn nhiều sản phẩm ra đời để giúp dự báo được các thông tin về thời tiết chính xác nhất Trên thực tế, khi mà chúng ta không đưa ra được dự báo có tỷ lệ chính xác lớn nhất thì sẽ xảy ra nhiều rủi ro ảnh hưởng đến nhiều lĩnh vực như nông nghiệp, nuôi trồng thủy sản, cơ sở hạ tầng đặc biệt là sức khỏe của con người Từ thực tế đó, chúng ta cần tìm ra giải pháp và thiết kế xây dựng mô hình dự báo thời tiết để đưa các thông tin dự báo thời tiết chính xác nhất.
Với ý nghĩa đó, chúng em lựa chọn đề tài “Xây dựng hệ thống dự báo thời tiết bằng
thuật toán KNN” để tiết kiệm thời gian, công sức cho mọi người cũng như dễ dàng
theo dõi thời tiết.
- Làm quen với ngôn ngữ lập trình Python.
- Xây dựng được chương trình dự báo thời tiết đơn giản sử dụng thuật toán KNN.
1.4 Nội dung
Quyển báo cáo gồm 3 chương:
Chương 1: Giới thiệu về đề tài
Giới thiệu chung về đề tài, tìm hiểu về tình hình trong và ngoài nước về vấn đề dự báo thời tiết, tính cấp thiết của đề tài, từ đó đưa ra mục tiêu và phương pháp nghiên cứu
đề tài.
Chương 2: Cơ sở lý thuyết
Tìm hiểu về các thuật toán học máy cơ bản, từ đó chọn thuật toán phù hợp nhất với
đề tài thực nghiệm.
Trang 8 Chương 3: Ứng dụng thuật toán K-Near Neighbors (KNN) vào bài toán dựbáo thời tiết.
Chương này áp dụng thuật toán KNN để giải quyết bài toán dự báo thời tiết, thu thập dữ liệu thời tiết, xây dựng một chương trình đơn giản để xử lý dữ liệu và đưa ra
dự đoán về thời tiết.
1.5 Cách tiếp cận và phương pháp nghiên cứu
Thu thập dữ liệu: Thu thập dữ liệu về thời tiết trên trang web:
Môi trường thực nghiệm: Sử dụng IDE Visual Studio Code.
Phương pháp nghiên cứu: Thu thập, đánh giá, thí nghiệm/ thực nghiệm.
Trang 9CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1 Giới thiệu về học máy (Machine Learning)
Machine learning (máy học) là 1 nhánh con của trí tuệ nhân tạo (AI) và khoa
học máy tính Machine learning sử dụng data, thuật toán đầu vào để tự xử lý cácvấn đề và liên tục tối ưu để tạo ra những phương án xử lý mới, hiệu quả hơn;giống như cách thức tự học của n愃̀o bộ con người
Machine learning còn là một thành phần quan trọng của lĩnh vực khoa học dữliệu đang phát triển Thông qua việc sử dụng các phương pháp thống kê, cácthuật toán được đào tạo để đưa ra các phân loại hoặc dự đoán và khám phánhững thông tin chi tiết từ chính các dự án khai thác dữ liệu
Máy học là sự tự động của quy trình học và việc học thì tương đương vớiviệc xây dựng những luật dựa trên việc quan sát trạng thái trên cơ sở dữ liệu vànhững sự chuyển hoá của chúng Đây là lĩnh vực rộng lớn không chỉ bao gồmviệc học từ mẫu, mà còn học tăng cường, học với “thầy”,
Các thuật toán học lấy bộ dữ liệu và những thông tin quen thuộc của nó khinhập và trả về một kết quả câu nói hay một câu ví dụ, một khái niệm để diễn tảnhững kết quả học
Máy học kiểm tra những ví dụ trước đó và kiểm tra luôn cả những kết quảcủa chúng khi xuất và học làm cách nào để tái tạo lại những kết quả này và tạonên những sự tổng quát hóa cho những trường hợp mới
Nói chung, máy học sử dụng một tập hữu hạn dữ liệu được gọi là tập huấnluyện Tập này chứa những mẫu dữ liệu mà nó được viết bằng m愃̀ theo một cáchnào đó để máy có thể đọc và hiểu được Tuy nhiên, tập huấn luyện bao giờ cũnghữu hạn do đó không phải toàn bộ dữ liệu sẽ được học một cách chính xác
Một tiến trình máy học gồm 2 giai đoạn:
- Giai đoạn học (learning): hệ thống phân tích dữ liệu và nhận ra sự mối quan
Trang 10việc học có thể là: nhóm các đối tượng vào trong các lớp, tạo ra các luật, tiênđoán lớp cho các đối tượng mới.
- Giai đoạn thử nghiệm (testing): Mối quan hệ (các luật, lớp ) được tạo raphải được kiểm nghiệm lại bằng một số hàm tính toán thực thi trên một phần củatập dữ liệu huấn luyện hoặc trên một tập dữ liệu lớn
2.2 Quy trình xây dựng mô hình machine learning
Quy trình xây dựng mô hình machine learning gồm:
- Thu thập dữ liệu: Thu thập dữ liệu để mô hình học
- Chuẩn bị dữ liệu: Xử lý và đưa dữ liệu về định dạng tối ưu, tríchchọn đặc trưng hoặc giảm chiều dữ liệu
- Chọn mô hình : xác định kết quả bạn nhận được, sau khi khởi chạy một thuật toán học máy dựa trên dữ liệu nhận được
- Huấn luyện mô hình: Tại pha này, thuật toán machine learning thựchiện việc học thông qua các ví dụ đ愃̀ được thu thập và chuẩn bị từ haibước trên
- Đánh giá mô hình: Kiểm thử mô hình để đánh giá xem chất lượng của
mô hình tốt đến đâu
- Tinh chỉnh chỉnh tham số : Sau khi bạn đ愃̀ huấn luyện và đánh giáđược mô hình Machine Learning của mình, bạn có thể điều chỉnh lạitham số nếu cần để tăng độ chính xác cho hệ thống
2.3 Các loại học máy
Các mô hình học máy được chia thành ba loại chính:
* Máy học có giám sát
- Học có giám sát được hiểu là cách sử dụng các tập dữ liệu được gắn nh愃̀n
để huấn luyện thuật toán phân loại hoặc dự đoán kết quả một cách chính xác
Trang 11- Học tập có giám sát giúp các tổ chức giải quyết nhiều vấn đề trong thực tếtrên quy mô lớn Một số phương pháp được sử dụng trong học có giám sát baogồm mạng nơ-ron, mô hình phân lớp (Naive bayes), hồi quy tuyến tính, hồi quylogistic, rừng ngẫu nhiên (Random forest) và máy hỗ trợ vectơ (SVM - supportvector machine ).
* Học máy không giám sát
- Học không giám sát, còn được gọi là học máy không giám sát, sử dụng cácthuật toán học máy để phân tích và phân cụm các tập dữ liệu không được gắnnh愃̀n Các thuật toán này phát hiện ra các mẫu hoặc nhóm dữ liệu ẩn mà khôngcần sự can thiệp của con người
- Khả năng phát hiện ra những điểm tương đồng và khác biệt trong dữ liệucủa phương pháp này khiến nó trở nên lý tưởng cho việc phân tích dữ liệu khámphá, chiến lược bán chéo, phân khúc khách hàng cũng như nhận dạng hình ảnh
và mẫu
- Nó cũng được sử dụng để giảm số lượng các tính năng trong một mô hìnhthông qua quá trình giảm kích thước Phân tích thành phần chính (PCA -Principal component analysis) và phân tích giá trị đơn lẻ (SVD - Singular valuedecomposition) là hai cách tiếp cận phổ biến cho nhiệm vụ này
- Các thuật toán khác được sử dụng trong học tập không giám sát bao gồmmạng nơ-ron, phân cụm k-means và các phương pháp phân cụm theo xác suất
* Học tập bán giám sát
- Học tập bán giám sát là sự kết hợp giữa học tập có giám sát và không giámsát Trong quá trình đào tạo, nó sử dụng một tập dữ liệu có nh愃̀n nhỏ hơn học cógiám sát để hướng dẫn phân loại, trích xuất tính năng từ một tập dữ liệu lớn hơn,không được gắn nh愃̀n
- Học bán giám sát có thể giải quyết vấn đề trong trường hợp không có đủ dữliệu được gắn nh愃̀n cho thuật toán học có giám sát
2.4 Ứng dụng của Machine Learning
Ngày nay, Machine Learning đ愃̀ được ứng dụng rộng r愃̀i trong rất nhiềulĩnh vực Tuy nhiên, mỗi lĩnh vực thì hình thức sử dụng lại khác nhau cho nênnhiều người vẫn chưa có cái nhìn rõ sự hiện diện về phân nhánh này của AI
* Giải mã thị trường tài chính
Trang 12- Thị trường tài chính luôn biến động và nhiều rủi ro đặc biệt là sân chơichứng khoán Machine Learning không đảm bảo mọi cơ hội đầu tư đều chuẩnxác mà sẽ giúp mỗi quyết định đầu tư giảm thiểu được nhiều nhất các rủi ro này.Thông qua quá trình phân tích cặn kẽ, dự đoán nền kinh tế chung dẫn đến mỗilượt mua, bán là đúng lúc và phù hợp nhất với mức lợi nhuận, rủi ro mà nhà đầu
tư mong muốn
* Thay đổi cục diện ngành nông nghiệp
- Máy bay không người lái được dùng để bón phân đúng theo khu vực đượcxác định, hệ thống ghi nhận sức khỏe vật nuôi hay quản lý toàn bộ bằng thiết bị
số theo tiêu chuẩn quốc tế chính là những ứng dụng rõ nét của ngành nôngnghiệp Những công việc tay chân hay lo lắng muôn thuở “trúng mùa thì mấtgiá” của nhà nông đ愃̀ được giải quyết Nông nghiệp khoác lên mình bộ áo mới,sản xuất tối ưu, tối đa chất lượng sản phẩm và luôn cân bằng được cung cầu
* Nâng cao hiệu quả và cải thiện chất lượng dịch vụ ngành y tế
- Không quá xa lạ khi máy móc có thể tự phẫu thuật, hay những tổng đài tựđộng tư vấn sức khỏe cho những bệnh thông thường mà người bệnh không cònmất thời gian đến bệnh viện Ở các nước phát triển, người bệnh sẽ được tư vấn,sắp xếp lịch gặp bác sĩ, chăm sóc trong quá trình hồi phục nhờ ứng dụng củamachine learning
- Vì thế bác sĩ/đội ngũ y tế chỉ cần chẩn đoán trực tiếp trong những trườnghợp phức tạp giúp cho quá trình sử dụng dịch vụ y tế được đồng bộ
* Cơ quan nhà nước có thể quản lý trật tự xã hội và đảm bảo tình hình phát triển đất nước
Machine learning chính là lời giải cho những cơ quan nhà nước hay cácdoanh nghiệp còn có cấu trúc vận hành quá cồng kềnh Những công việc hànhchính lập lại được giải quyết bởi phân loại học tập giám sát hay dự đoán hành vix愃̀ hội sẽ được dự đoán bởi học tập không giám sát
Trang 13Thế nên, từng công việc cho đến cả tổ chức sẽ được tinh giản, những biếnchuyển trong tương lai được dự đoán trước giúp cho nhà nước có thời gian chuẩn
bị kế sách điều phối đất nước tốt hơn và phát triển bền vững hơn
Trước làn sóng mạnh mẽ này thì ngay cả người tiêu dùng cá nhân cũng nênhiểu và có góc nhìn toàn diện về machine learning Cao hơn bậc hiểu, những nhàquản lý ở đa lĩnh vực cần thẩm thấu cặn kẽ đến vận dụng được vào doanh nghiệpcủa mình Vì như vậy, nhà quản lý mới có thể hướng dẫn lại cho nhân sự ở cấpdưới, tổ chức vận hành tối ưu, sản phẩm đạt chuẩn tiêu dùng và trụ vững trên thịtrường trong dài hạn
Trang 14CHƯƠNG 3: MỘT SỐ THUẬT TOÁN CƠ BẢN CỦA MACHINE
LEARNING
3.1 Thuật toán Random forest
Random Forest là một thuật toán học máy phổ biến thuộc về kỹ thuật học cógiám sát Nó có thể được sử dụng cho cả vấn đề Phân loại và Hồi quy trong ML
Nó dựa trên khái niệm học tập theo nhóm, là một quá trình kết hợp nhiều bộphân loại để giải quyết một vấn đề phức tạp và để cải thiện hiệu suất của môhình
Như tên cho thấy, “Rừng ngẫu nhiên là một bộ phân loại chứa một số câyquyết định trên các tập con khác nhau của tập dữ liệu đ愃̀ cho và lấy giá trị trungbình để cải thiện độ chính xác dự đoán của tập dữ liệu đó.” Thay vì dựa vào mộtcây quyết định, rừng ngẫu nhiên lấy dự đoán từ mỗi cây và dựa trên đa số phiếu
dự đoán, và nó dự đoán kết quả cuối cùng Số lượng cây lớn hơn trong rừng dẫnđến độ chính xác cao hơn và ngăn ngừa vấn đề trang bị quá mức
Sơ đồ dưới đây giải thích hoạt động của thuật toán Rừng ngẫu nhiên:
Random Forest hoạt động trong hai giai đoạn đầu tiên là tạo ra khu rừng ngẫunhiên bằng cách kết hợp N cây quyết định, và thứ hai là đưa ra dự đoán cho mỗicây được tạo ra trong giai đoạn đầu tiên
- Quá trình làm việc có thể được giải thích trong các bước và sơ đồ dướiđây:
• Bước 1: Chọn điểm dữ liệu K ngẫu nhiên từ tập huấn luyện
• Bước 2: Xây dựng cây quyết định liên kết với các điểm dữ liệu đ愃̀chọn (Tập con)
• Bước 3: Chọn số N cho cây quyết định mà bạn muốn xây dựng
• Bước 4: Lặp lại Bước 1 & 2
Trang 15• Bước 5: Đối với các điểm dữ liệu mới, h愃̀y tìm các dự đoán của từngcây quyết định và gán các điểm dữ liệu mới cho danh mục giành được
đa số phiếu bầu
- Ưu điểm:
Random Forest có khả năng thực hiện cả hai nhiệm vụ Phân loại vàHồi quy
Nó có khả năng xử lý các tập dữ liệu lớn với kích thước cao
Nó nâng cao độ chính xác của mô hình và ngăn chặn vấn đề trang bịquá mức
- Nhược điểm của Rừng ngẫu nhiên
Mặc dù rừng ngẫu nhiên có thể được sử dụng cho cả nhiệm vụ phânloại và hồi quy, nó không phù hợp hơn cho các nhiệm vụ Hồi quy
- Các ứng dụng của Rừng ngẫu nhiên
Chủ yếu có bốn lĩnh vực mà Rừng ngẫu nhiên chủ yếu đượ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 tật vànguy cơ của bệnh có thể được xác định
Sử dụng đất: Chúng tôi có thể xác định các khu vực sử dụng đấttươ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
3.1.1 Thuật toán ID3
Giờ chúng ta tìm hiểu cách thức hoạt động của thuật toán cây quyết địnhthông qua thuật toán đơn giản ID3
Trang 16ID3 (J R Quinlan 1993) sử dụng phương pháp tham lam tìm kiếm từ trênxuống thông qua không gian của các nhánh có thể không có backtracking ID3
sử dụng Entropy và Information Gain để xây dựng một cây quyết định
Ta xét ví dụ 2:
Bạn muốn xem xét sự thành công của một bộ phim thông qua hai yếu tố: diễnviên chính của phim và thể loại phim:
Giả sử, bạn muốn xác định độ thành công của bộ phim chỉ trên 1 yếu tố, bạn
sẽ có hai cách thực hiện sau: qua diễn viên chính của phim và qua thể loại phim
Trang 17Qua sơ đồ, ta có thể thấy rõ ràng ràng, với phương pháp thứ nhất, ta phân loạiđược rõ ràng, trong khi phương pháp thứ hai, ta có một kết quả lộn xộn hơn Vàtương tự, cây quyết định sẽ thực hiện như trên khi thực hiện việc chọn các biến.
Có rất nhiều hệ số khác nhau mà phương pháp cây quyết định sử dụng đểphân chia Dưới đây, tôi sẽ đưa ra hai hệ số phổ biến là Information Gain và Gain Ratio (ngoài ra còn hệ số Gini)
Entropy trong Cây quyết định (Decision Tree)
Entropy là thuật ngữ thuộc Nhiệt động lực học, là thước đo của sự biến đổi,hỗn loạn hoặc ngẫu nhiên Năm 1948, Shannon đ愃̀ mở rộng khái niệm Entropysang lĩnh vực nghiên cứu, thống kê với công thức như sau:
Với một phân phối xác suất của một biến rời rạc x có thể nhận n giá trị khácnhau x1,x2,…,xn
Giả sử rằng xác suất để x nhận các giá trị này là pi=p(x=xi)
Ký hiệu phân phối này là p = (p1 ,p2 ,…,pn) Entropy của phân phối này được
Trang 18H(p)= – ∑n
n=1 pi log(pi)Giả sử bạn tung một đồng xu, entropy sẽ được tính như sau:
H = -[0.5 ln(0.5) + 0.5 ln(0.5)]
Hàm Entropy
Hình vẽ trên biểu diễn sự thay đổi của hàm entropy Ta có thể thấy rằng,entropy đạt tối đa khi xác suất xảy ra của hai lớp bằng nhau
o P tinh khiết: pi = 0 hoặc pi = 1
o P vẩn đục: pi = 0.5, khi đó hàm Entropy đạt đỉnh cao nhất
Information Gain trong Cây quyết định (Decision Tree)
Information Gain dựa trên sự giảm của hàm Entropy khi tập dữ liệu đượcphân chia trên một thuộc tính Để xây dựng một cây quyết định, ta phải tìm tất cảthuộc tính trả về Infomation gain cao nhất
Để xác định các nút trong mô hình cây quyết định, ta thực hiện tínhInfomation Gain tại mỗi nút theo trình tự sau:
Trang 19- Bước 1: Tính toán hệ số Entropy của biến mục tiêu S có N phần tử với
Nc phần tử thuộc lớp c cho trước:
H(S)= – ∑c
c=1 (Nc/N) log(Nc/N)
- Bước 2: Tính hàm số Entropy tại mỗi thuộc tính: với thuộc tính x, cácđiểm dữ liệu trong S được chia ra K child node S1, S2, …, SK với số điểm trongmỗi child node lần lượt là m1, m2 ,…, mK , ta có:
Hệ số Information Gain:
Information Gain = 0.68 – (3*0.63 + 2*0.69 + 2*0.69)/7 = 0.02
So sánh kết quả, ta thấy nếu chia theo phương pháp 1 thì ta được giá trị hệ sốInformation Gain lớn hơn gấp 4 lần so với phương pháp 2 Như vậy, giá trị thôngtin ta thu được theo phương pháp 1 cũng nhiều hơn phương pháp 2
3.1.2 Thuật toán C4.5
Thuật toán C4.5 là thuật toán cải tiến của ID3
Trang 20Trong thuật toán ID3, Information Gain được sử dụng làm độ đo Tuy nhiên,phương pháp này lại ưu tiên những thuộc tính có số lượng lớn các giá trị mà ítxét tới những giá trị nhỏ hơn Do vậy, để khắc phục nhược điểm trên, ta sử dụng
độ đo Gain Ratio (trong thuật toán C4.5) như sau:
Đầu tiên, ta chuẩn hoá information gain với trị thông tin phân tách (splitinformation):
Trong đó: Split Info được tính như sau:
Giả sử chúng ta phân chia biến thành n nút cón và Di đại diện cho số lượngbản ghi thuộc nút đó Do đó, hệ số Gain Ratio sẽ xem xét được xu hướng phânphối khi chia cây
Áp dụng cho ví dụ trên và với cách chia thứ nhất, ta có
Split Info = – ((4/7)*log 2 (4/7)) – ((3/7)*log 2 (3/7)) = 0.98
Gain Ratio = 0.09/0.98 = 0.092
3.1.3 Tiêu chuẩn dừng
Trong các thuật toán Decision tree, với phương pháp chia trên, ta sẽ chia m愃̀icác node nếu nó chưa tinh khiết Như vậy, ta sẽ thu được một tree mà mọi điểmtrong tập huấn luyện đều được dự đoán đúng (giả sử rằng không có hai inputgiống nhau nào cho output khác nhau) Khi đó, cây có thể sẽ rất phức tạp (nhiềunode) với nhiều leaf node chỉ có một vài điểm dữ liệu Như vậy, nhiều khảnăng overfitting sẽ xảy ra
Để tránh trường họp này, ta có thể dừng cây theo một số phương pháp sauđây:
Trang 21• Nếu node đó có entropy bằng 0, tức mọi điểm trong node đều thuộcmột class.
• Nếu node đó có số phần tử nhỏ hơn một ngưỡng nào đó Trong trườnghợp này, ta chấp nhận có một số điểm bị phân lớp sai để tránhoverfitting Class cho leaf node này có thể được xác định dựa trên classchiếm đa số trong node
• Nếu khoảng cách từ node đó đến root node đạt tới một giá trị nào đó
Việc hạn chế chiều sâu của tree này làm giảm độ phức tạp của tree và
phần nào giúp tránh overfitting
• Nếu tổng số leaf node vượt quá một ngưỡng nào đó
• Nếu việc phân chia node đó không làm giảm entropy quá nhiều(information gain nhỏ hơn một ngưỡng nào đó)
3.2 Thuật toán phân loại Bayes (Naive Bayes)
Bộ phân lớp Bayes là một giải thuật thuộc lớp giải thuật thống kê, nó có thể
dự đoán xác suất của một phần tử dữ liệu thuộc vào một lớp là bao nhiêu Phânlớp Bayes được dựa trên định lý Bayes (định lý được đặt theo tên tác giả của nó
là Thomas Bayes)
Thuật toán phân loại Naive Bayes là một nhóm các phân loại xác suất đơngiản dựa trên định lý Bayes giả định về việc độc lập giữa các thuộc tính Ngay cảkhi, các thuộc tính này có sự tương quan với nhau thì phương pháp này vẫn xemcác thuộc tính là độc lập với nhau
3.2.1 Định lý Bayes
Thuật toán phân loại Naive Bayes là một nhóm các phân loại xác suất đơngiản dựa trên định lý Bayes giả định về việc độc lập giữa các thuộc tính Ngay cảkhi, các thuộc tính này có sự tương quan với nhau thì phương pháp này vẫn xem