CHƯƠNG 1: TỔNG QUAN VỀ HỌC MÁY1.1 Khái niệm về học máy Học máy Machine learning là một lĩnh vực con của Trí tuệ nhân tạoArtificial Intelligence sử dụng các thuật toán cho phép máy tính
Trang 1Chữ ký Điểm TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN NHẬP MÔN HỌC MÁY
ĐỀ T&I:
THUẬT TOÁN K-MEAN VỀ PHÂN CỤM HỌC SINH Sinh viên thực hiện : NGUYỄN ĐỨC HUY
Giảng viên hướng dẫn : NGUYỄN THỊ HỒNG KHÁNH
Hà Nội, tháng 5 năm 2023
Trang 2Họ và tên sinh viên
Trang 3MỤC LỤC
LỜI MỞ ĐẦU 1
CHƯƠNG 1: TỔNG QUAN VỀ HỌC MÁY 2
1.1 Khái niệm về học máy 2
1.2 Phân nhóm các thuật toán học máy 2
1.2.1 Học có giám sát (Supervised Learning) 2
1.2.2 Học phi giám sát (Unsupervised Learning)-UL 3
1.2.3 Học tăng cường (reinforcement learning) 5
1.2.4 Học bán giám sát (Semi-Supervised Learning) 5
1.3 Ứng dụng của học máy 6
CHƯƠNG 2: THUẬT TOÁN K-MEANS CLUSTERING TRONG BÀI TOÁN PHÂN CỤM 7
2.1 Tổng quan về thuật toán K-Means Clustering 7
2.2 Thuật toán K-Means Clustering 8
2.2.1 Mô hình toán học 8
2.2.2 Độ chính xác của thuật toán 9
2.2.3 Nghiệm của thuật toán K-Means Clustering 9
2.2.4 Tóm tắt thuật toán 9
CHƯƠNG 3: CÀI ĐẶT THỬ NGHIỆM THUẬT TOÁN 11
3.1 Dữ liệu 11
3.1.1 Phát biểu bài toán 11
3.1.2 Yêu cầu 11
3.1.3 Bộ dữ liệu 11
3.1.4 Tiến hành phân cụm 12
KẾT LUẬN 18
TÀI LIỆU THAM KHẢO 19
Trang 4LỜI MỞ ĐẦU
Công nghệ ngày nay càng phổ biến và không ai có thể phủ nhận được tầmquan trọng và những hiệu quả mà nó đem lại cho cuộc sống chúng ta Bất kỳtrong lĩnh vực nào, sự góp mặt của trí tuệ nhân tạo sẽ giúp con người làm việc
và hoàn thành tốt công việc hơn Và gần đây, một thuật ngữ “machine learning”rất được nhiều người quan tâm Thay vì phải code phần mềm với cách thức thủcông theo một bộ hướng dẫn cụ thể nhằm hoàn thành một nhiệm vụ đề ra thìmáy sẽ tự “học hỏi” bằng cách sử dụng một lượng lớn dữ liệu cùng những thuậttoán cho phép nó thực hiện các tác vụ
Đây là một lĩnh vực khoa học tuy không mới, nhưng cho thấy lĩnh vực trítuệ nhân tạo đang ngày càng phát triển và có thể tiến xa hơn trong tương lai.Đồng thời, thời điểm này nó được xem là một lĩnh vực “nóng” và dành rất nhiềumối quan tâm để phát triển nó một cách mạnh mẽ, bùng nổ hơn
Hiện nay, việc quan tâm machine learning càng ngày càng tăng lên là vìnhờ có machine learning giúp gia tăng dung lượng lưu trữ các loại dữ liệu sẵn,việc xử lý tính toán có chi phí thấp và hiệu quả hơn rất nhiều
Những điều trên được hiểu là nó có thể thực hiện tự động, nhanh chóng đểtạo ra những mô hình cho phép phân tích các dữ liệu có quy mô lớn hơn và phứctạp hơn đồng thời đưa ra những kết quả một cách nhanh chóng và chính xáchơn Chính sự hiệu quả trong công việc và các lợi ích vượt bậc mà nó đem lạicho chúng ta khiến machine learning ngày càng được chú trọng và quan tâmnhiều hơn Vì vậy em đã chọn đề tài “sử dụng thuật toán học máy phân cụm kmean để phân cụm học sinh” để làm báo cáo
Em xin chân thành gửi lời cảm ơn tới các thầy cô giáo trong Trường Đạihọc Điện Lực nói chung và các thầy cô giáo trong Khoa Công nghệ thông tin nóiriêng đã tận tình giảng dạy, truyền đạt cho chúng em những kiến thức cũng nhưkinh nghiệm quý báu trong suốt quá trình học Đặc biệt, em gửi lời cảm ơn đến
cô Nguyễn Thị Hồng Khánh đã tận tình, theo sát giúp đỡ, trực tiếp chỉ bảo,hướng dẫn trong suốt quá trình nghiên cứu và học tập của chúng em
Trang 5CHƯƠNG 1: TỔNG QUAN VỀ HỌC MÁY
1.1 Khái niệm về học máy
Học máy (Machine learning) là một lĩnh vực con của Trí tuệ nhân tạo(Artificial Intelligence) sử dụng các thuật toán cho phép máy tính có thể học từ
dữ liệu để thực hiện các công việc thay vì được lập trình một cách rõ ràng, cungcấp cho hệ thống khả năng tự động học hỏi và cải thiện hiệu suất, độ chính xácdựa trên những kinh nghiệm từ dữ liệu đầu vào Học máy tập trung vào việcphát triển các phần mềm, chương trình máy tính có thể truy cập vào dữ liệu vàtận dụng nguồn dữ liệu đó để tự học
Học máy vẫn đòi hỏi sự đánh giá của con người trong việc tìm hiểu dữliệu cơ sở và lựa chọn các kĩ thuật phù hợp để phân tích dữ liệu Đồng thời,trước khi sử dụng, dữ liệu phải sạch, không có sai lệch và không có dữ liệugiả
Các mô hình học máy yêu cầu lượng dữ liệu đủ lớn để "huấn luyện" vàđánh giá mô hình Trước đây, các thuật toán học máy thiếu quyền truy cập vàomột lượng lớn dữ liệu cần thiết để mô hình hóa các mối quan hệ giữa các dữliệu Sự tăng trưởng trong dữ liệu lớn (big data) đã cung cấp các thuật toán họcmáy với đủ dữ liệu để cải thiện độ chính xác của mô hình và dự đoán
1.2 Phân nhóm các thuật toán học máy
1.2.1 Học có giám sát (Supervised Learning)
Là phương pháp sử dụng những dữ liệu đã được gán nhãn từ trước để suyluận ra quan hệ giữa đầu vào và đầu ra Các dữ liệu này được gọi là dữ liệu huấnluyện và chúng là cặp các đầu vào-đầu ra Học có giám sát sẽ xem xét các tậphuấn luyện này để từ đó có thể đưa ra dự đoán đầu ra cho 1 đầu vào mới chưagặp bao giờ Ví dụ dự đoán giá nhà, phân loại email Các mô hình như mạngNơ-ron, SVM, CNN,
Trang 6Hình 1.1 Mô hình học có giám sát
Supervised Learning là thuật toán dự đoán đầu ra (outcome) của một dữliệu mới (new input) dựa trên cặp (input, outcome) đã biết từ trước Cặp dữliệu này còn đươc gọi là data, label tức dữ liệu, nhãn Supervised Learning lànhóm phổ biến nhất trong các thuật toán Machine learning
1.2.2 Học phi giám sát (Unsupervised Learning)-UL
Khác với học có giám sát, học phi giám sát sử dụng những dữ liệu chưađược gán nhãn từ trước để suy luận Phương pháp này thường được sử dụng
để tìm cấu trúc của tập dữ liệu Tuy nhiên lại không có phương pháp đánh giáđược cấu trúc tìm ra được là đúng hay sai Ví dụ như phân cụm dữ liệu, triếtxuất thành phần chính của một chất nào đó K-mean ứng dụng phổ biến nhấtcủa học không giám sát là gom cụm (cluster)
Trang 7Hình 1.2 Mô hình học không giám sát
Trong thuật toán này, chúng ta không biết được dữ liệu đầu ra hay nhãn
mà chỉ có dữ liệu đầu vào Thuật toán Học không giám sát dựa vào cấu trúccủa dữ liệu để thực hiện một công việc nào đó, ví dụ như phân nhóm hoặcgiảm số chiều của dữ liệu để thuận tiện trong việc lưu trữ và tính toán Một cách toán học, học không giám sát là khi chúng ta chỉ có dữ liệu vào
X mà không biến nhãn Y tương ứng
Sự khác nhau giữa học có giám sát và học không giám sát:
Hình 1.3 Sự khác biệt giữa 2 mô hình SL và UL
Học máy có giám sát: Là cách huấn luyện một mô hình trong đó dữ liệuhọc có đầu vào và đầu ra tương ứng đầu vào đó Mô hình được huấn luyện bằngcách giảm thiểu sai số lỗi (loss) của các dự đoán tại các vòng lặp huấn luyện
Trang 8Sau quá trình huấn luyện mô hình sẽ có khả năng đưa ra dự đoán về đầu ra vớimột đầu vào mới gặp (không có trong dữ liệu) Nếu không gian đầu ra được biểudiễn dưới dạng rời rạc, ta gọi đó là bài toán phân loại (classification) Nếu khônggian đầu ra được biểu diễn dưới dạng liên tục, ta gọi đó là bài toán hồi quy(regression).
Học không giám sát: Là cách huấn luyện một mô hình trong đó dữ liệuhọc chỉ bao gồm đầu vào mà không có đầu ra Mô hình sẽ được huấn luyệncách để tìm cấu trúc hoặc mối quan hệ giữa các đầu vào Một trong nhữngphương pháp học không giám sát quan trọng nhất là phân cụm (clustering):tạo các cụm khác nhau với mỗi cụm biểu diễn một đặc trưng nào đó của dữliệu và phân các đầu vào mới vào các cụm theo các đặc trưng của đầu vào đó.Các phương pháp học không giám sát khác có thể kể đến như: phát hiện điểmbất thường (anomaly detection), Singular-value decomposition,
1.2.3 Học tăng cường (reinforcement learning)
Phương pháp học tăng cường tập trung vào việc làm sao để cho 1 tác tửtrong môi trường có thế hành động sao cho lấy được phần thưởng nhiều nhất
có thể Khác với học có giám sát nó không có cặp dữ liệu gán nhãn trước làmđầu vào và cũng không có đánh giá các hành động là đúng hay sai
1.2.4 Học bán giám sát (Semi-Supervised Learning)
Các bài toán khi chúng ta có một lượng lớn dữ liệu X nhưng chỉ mộtphần trong chúng được gán nhãn được gọi là Semi-Supervised Learning.Những bài toán thuộc nhóm này nằm giữa hai nhóm được nêu bên trên Một ví
dụ điển hình của nhóm này là chỉ có một phần ảnh hoặc văn bản được gánnhãn (ví dụ bức ảnh về người, động vật hoặc các văn bản khoa học, chính trị)
và phần lớn các bức ảnh/văn bản khác chưa được gán nhãn được thu thập từinternet
Thực tế cho thấy rất nhiều các bài toán Machine Learning thuộc vàonhóm này vì việc thu thập dữ liệu có nhãn tốn rất nhiều thời gian và có chi phícao Rất nhiều loại dữ liệu thậm chí cần phải có chuyên gia mới gán nhãn
Trang 9được (ảnh y học chẳng hạn) Ngược lại, dữ liệu chưa có nhãn có thể được thuthập với chi phí thấp từ internet.
Trong lĩnh vực ngân hàng: xác định khả năng khách hàng chậm trả cáckhoản vay hoặc rủi ro tín dụng do nợ xấu dựa trên phân tích Creditscore; xác định xem liệu các giao dịch có hành vi phạm tội, lừa đảo haykhông
Trong giáo dục: phân loại các học sinh theo hoàn cảnh, học lực để xemxem cần hỗ trợ gì cho những học sinh ví dụ như hoàn cảnh sống khókhăn nhưng học lực lại tốt
Trong thương mại điện tử: phân loại khách hàng theo sở thích cụ thể để
hỗ trợ personalized marketing hay xây dựng hệ thống khuyến nghị, dựatrên dữ liệu từ website, social media
Trong kinh tế nói chung: giúp dự báo các sự kiện kinh tế trong tươnglai, dự báo tình hình thời tiết trong nông nghiệp, xác định xu hướng thịtrường chứng khoán để lên kế hoạch đầu tư thích hợp
Trang 10CHƯƠNG 2: THUẬT TOÁN K-MEANS CLUSTERING TRONG B&I
TOÁN PHÂN CỤM 2.1 Tổng quan về thuật toán K-Means Clustering
Với thuật toán K-Means Clustering, chúng ta không biết nhãn (label)của từng điểm dữ liệu Mục đích là làm thế nào để phân dữ liệu thành cáccụm (cluster) khác nhau sao cho dữ liệu trong cùng một cụm có tính chấtgiống nhau Ý tưởng đơn giản nhất về cluster (cụm) là tập hợp các điểm ởgần nhau trong một không gian nào đó (không gian này có thể có rất nhiềuchiều trong trường hợp thông tin về một điểm dữ liệu là rất lớn) Hình bêndưới là một ví dụ về 3 cụm dữ liệu
Hình 2.1 Bài toán với 3 clusters
Giả sử mỗi cluster có một điểm đại diện (center) màu vàng Và nhữngđiểm xung quanh mỗi center thuộc vào cùng nhóm với center đó Một cách đơngiản nhất, xét một điểm bất kỳ, ta xét xem điểm đó gần với center nào nhất thì
nó thuộc về cùng nhóm với center đó
Trang 112.2 Thuật toán K-Means Clustering
2.2.1 Mô hình toán học
Ta gọi điểm tại vị trí trung bình của tất cả các điểm dữ liệu trong mộtcụm là trung tâm cụm Như vậy, nếu có K cụm thì sẽ có K trung tâm cụm vàmỗi trung tâm cụm sẽ nằm gần các điểm dữ liệu trong cụm tương ứng hơn cáctrung tâm cụm khác Trong hình dưới đây, K = 3 và ta có 3 trung tâm cụm làcác điểm màu vàng
Hình 2.2 Mô hình dữ liệu được phân cụm
Để phân cụm dữ liệu bằng K-Means Clustering, trước hết ta chọn K là
số cụm để phân chia và chọn ngẫu nhiên K trong số m dữ liệu ban đầu làmtrung tâm cụm μ1, μ2, …, μK Sau đó, với điểm dữ liệu x(i) ta sẽ gán nó chocụm c(i) là cụm có trung tâm cụm gần nó nhất
Khi tất cả các điểm dữ liệu đã được gán về các cụm, bước tiếp theo là tính toánlại vị trí các trung tâm cụm bằng trung bình tọa độ các điểm dữ liệu trong cụmđó
Trang 12với k1, k2, …, kn là chỉ số các dữ liệu thuộc cụm thứ k Các bước trên đượclặp lạicho tới khi vị trí các trung tâm cụm không đổi sau một bước lặp nào đó.
2.2.2 Độ chính xác của thuật toán
Hàm mất mát của thuật toán K-Means Clustering đặc trưng cho độchính xác của nó sẽ càng lớn khi khoảng cách từ mỗi điểm dữ liệu tới trungtâm cụm càng lớn
2.2.3 Nghiệm của thuật toán K-Means Clustering
Trong các bước của thuật toán, thực chất bước gán các điểm dữ liệu vềtrung tâm cụm gần nhất và bước thay đổi trung tâm cụm về vị trí trung bìnhcủa các điểm dữ liệu trong cụm đều nhằm mục đích giảm hàm mất mát Thuậttoán kết thúc khi vị trí các trung tâm cụm không đổi sau một bước lặp nào đó.Khi đó hàm mất mát đạt giá trị nhỏ nhất
Khi K càng nhỏ so với m, thuật toán càng dễ đi đến kết quả chưa phải tối
ưu Điều này phụ thuộc vào cách chọn K trung tâm cụm ban đầu Để khắc phụcđiều này, ta cần lặp lại thuật toán nhiều lần và chọn phương án có giá trị hàmmất mát nhỏ nhất
2.2.4 Tóm tắt thuật toán
Đầu vào: Dữ liệu XX và số lượng cluster cần tìm KK
Đầu ra: Các center MM và label vector cho từng điểm dữ liệu YY
- Chọn K điểm bất kỳ làm các center ban đầu
- Phân mỗi điểm dữ liệu vào cluster có center gần nó nhất
Trang 13- Nếu việc gán dữ liệu vào từng cluster ở bước 2 không thay đổi so vớivòng lặp trước nó thì ta dừng thuật toán.
- Cập nhật center cho từng cluster bằng cách lấy trung bình cộng của tất cáccác điểm dữ liệu đã được gán vào cluster đó sau bước 2
- Quay lại bước 2
Trang 14CHƯƠNG 3: C&I ĐẶT THỬ NGHIỆM THUẬT TOÁN
3.1 Dữ liệu
3.1.1 Phát biểu bài toán
Bài toán phân cụm thành phố đưa ra các tập dữ liệu là các thông tin điểm sốcủa học sinh
- Giá trị input: Đểm số
- Giá trị output: Các cụm được chia
3.1.2 Yêu cầu
- Lấy dữ liệu mô tả lấy điểm học sinh
- Trích chọn đặc trưng từ tập dữ liệu lấy được
- Xử lý, làm sạch dữ liệu
- Tiến hành phân cụm
- Dữ liệu hóa đồ thị
3.1.3 Bộ dữ liệu
Trang 15Hình 3.1 Dữ liệu cụ thể
3.1.4 Tiến hành phân cụm
Import các thư viện cần thiết
Tiến hành đọc dữ liệu từ file excel và lưu vào dataframe
Trang 16Tiến hành lưu dữ liệu dataframe vào không gian 2 chiều, sau đó sử dụng thuật toán Kmeans để phân loại dữ liệu theo số cụm mong muốn, tiến hành tìm các tâm cụm
Tiến hành tương tự với không gian 3 chiều
Trang 17Hàm xử lí
Trang 19Hình 3.2 Hình ảnh dữ liệu trước khi phân cụm
Trang 20Hình 3.3 Hình ảnh dữ liệu sau khi phân cụm
Trang 21KẾT LUẬN
Trong quá trình thực hiện báo cáo của môn nhập môn học máy, chúng em
đã được biết thêm về các chương trình ứng dụng, các thuật toán và nắm bắtđược phần nào kiến thức về học máy
Từ đó chúng em cố gắng áp dụng các kiến thức đã học vào làm báo cáo để hoànthiện đề tài của mình Trong báo cáo của chúng em đã sử dụng thuật toán phâncụm K-Means Clustering để phân cụm học sinh Dù đã rất cố gắng để bài báocáo hoàn thiện tốt nhất, song vì thời gian có hạn và tầm hiểu biết còn rất hạn hẹpnên bài báo cáo của chúng em không tránh khỏi còn nhiều thiếu sót Em rất hyvọng có sự góp ý của thầy cô, để báo cáo của chúng em được hoàn thiện hơnnữa !
Em xin chân thành cảm ơn
Trang 22T&I LIỆU THAM KHẢO
1 https://www.w3schools.com/python/python_ml_k-mea