Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 29 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
29
Dung lượng
3,41 MB
Nội dung
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: PHÂN CỤM DỮ LIỆU BÀI HÁT SỬ DỤNG THUẬT TOÁN KMEAN Sinh viên thực : PHẠM VĂN HẢI Giảng viên hướng dẫn : Ngành : CÔNG NGHỆ THÔNG TIN Chuyên ngành : CÔNG NGHỆ PHẦN MỀM Lớp : D14CNPM3 Khóa : D14 Hà Nội, tháng 05 năm 2023 PHIẾU CHẤM ĐIỂM ST T Họ tên sinh viên Nội dung thực Phạm Văn Hải Code dự án Điểm Chữ ký Phiếu chấm điểm giảng viên Giảng viên chấm điểm Chữ ký Ghi Giảng viên chấm 1: Giảng viên chấm 2: MỤC LỤC LỜI CẢM ƠN LỜI MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN VỀ NHẬP MÔN HỌC MÁY 1.1 Tổng quan 1.2 Các thuật toán học máy .3 1.3 Các ứng dụng học máy 1.4 Một số toán ứng dụng học máy CHƯƠNG 2: TỔNG QUAN VỀ PCA, KMEAN 2.1 Tổng quan PCA .8 2.1.1 Giới thiệu .8 2.1.2 Các bước thuật toán PCA 2.1.3 Ưu nhược điểm PCA .10 2.2 Thuật toán KMEAN 11 2.2.1 Các bước thuật toán KMEAN Clustering .11 2.2.2 Sự hội tụ thuật toán Kmean Clustering 13 2.2.3 Phương pháp ELBOW lựa chọn số cụm 14 2.2.4.Hạn chế Kmean 16 CHƯƠNG 3: ỨNG DỤNG THUẬT TOÁN VÀO BÀI TOÁN 18 3.1 Mơ tả tốn .18 3.2 Dữ liệu thực nghiệm 17 3.3 Môi trường thực nghiệm .18 3.4 Kết thực nghiệm 18 3.5 Đánh giá kết thực nghiệm 19 KẾT LUẬN 20 DANH MỤC TÀI LIỆU THAM KHẢO 21 LỜI CẢM ƠN Thực tế khơng có thành cơng mà khơng gắn liền với học tập thực hành Kèm theo hỗ trợ, giúp đỡ từ giảng viên hướng dẫn tìm tịi, học hỏi thân Trong suốt trình học tập giảng đường Đại học đến nay, em nhận nhiều quan tâm, giúp đỡ thầy cơ, gia đình bạn bè Với lòng biết ơn sâu sắc nhất, em xin gửi đến thầy cô Khoa Công Nghệ Thông Tin - trường Đại Học Điện Lực truyền đạt vốn kiến thức quý báu cho chúng em suốt thời gian học tập trường Và đặc biệt, kỳ này, em tiếp cận với môn học hữu ích sinh viên ngành Cơng Nghệ Thơng Tin Đó mơn: “Học máy nâng cao” Chúng em xin chân thành cảm ơn thầy Phạm Đức Hồng tận tâm hướng dẫn chúng em qua buổi học lớp buổi nói chuyện, thảo luận môn học Trong thời gian học tập thực hành hướng dẫn thầy, em khơng thu nhiều kiến thức bổ ích, mà cịn truyền say mê thích thú môn “ Học máy nâng cao” Nếu khơng có lời hướng dẫn, dạy bảo thầy chúng em nghĩ báo cáo khó hoàn thành Mặc dù cố gắng hoàn thiện báo cáo với tất nỗ lực Tuy nhiên, thời gian có hạn mà lại bước vào thực tế, vốn kiến thức hạn chế, nhiều bỡ ngỡ, nên báo cáo dự án “Gợi ý hát sử dụng phương pháp giảm chiều PCA thuật toán Kmean” chắn khơng thể tránh khỏi thiếu sót Chúng em mong nhận quan tâm, thông cảm đóng góp q báu thầy bạn để báo cáo hoàn thiện Chúng em xin trân trọng cảm ơn quý thầy giáo! LỜI MỞ ĐẦU Phân tích liệu công việc thân quen với sống thường ngày Rất nhiều công ty đến trường học sử dụng để phân tích xác báo cáo, số liệu dơn vị Những liệu mang thông tin nhiều ngành nghề nhiều kiểu liệu khác nhau, đặc biệt lĩnh vực giải trí Trong thời gian gần đây, Việt Nam tích cực phát triển ứng dụng giải trí, vậy, vấn đề đặt phải có phương pháp tổ chức sở liệu tốt với kỹ thuật tìm kiếm, tra cứu thơng tin hiệu quả, có độ xác cao hiệu tốt Hiện nay, công nghệ sử dụng rộng rãi phạm vi rộng khắp tồn giới ích lợi mang lại không nhỏ Bản báo cáo chúng em xin trình bày đề tài: “Gợi ý hát sử dụng phương pháp giảm chiều PCA thuật toán Kmean” CHƯƠNG 1: TỔNG QUAN VỀ HỌC MÁY NÂNG CAO 1.1 Tổng quan: Học máy (Machine Learning) ngành khoa học nghiên cứu thuật toán cho phép máy tính học khái niệm (concept) Có phương pháp học máy - Phương pháp quy nạp: Máy học / phân biệt khái niệm dựa liệu thu thập trước Phương pháp cho phép tận dụng nguồn liệu nhiều sẵn có - Phương pháp suy diễn: Máy học / phân biệt khái niệm dựa vào luật Phương pháp cho phép tận dụng kiến thức chuyên ngành để hỗ trợ máy tính Hiện nay, thuật tốn học máy dựa phương pháp Các ngành khoa học liên quan: - Lý thuyết thống kê: kết xác suất thống kê tiền đề cho nhiều phương pháp học máy Đặc biệt, lý thuyết thống kê cho phép ước lượng sai số phương pháp học máy - Các phương pháp tính: thuật tốn học máy thường sử dụng tính tốn số thực / số nguyên liệu lớn Trong , tốn như: tối ưu có / khơng ràng buộc, giải phương trình tuyến tính vv sử dụng phổ biến - Khoa học máy tinh: sở đánh giá thuật toán, đồng thời đánh giá thời gian chạy, nhớ thuật toán học máy 1.2 Các thuật toán học máy 1.2.1 Phân loại dựa phương thức học Theo phương thức học, thuật toán Machine Learning thường chia làm nhóm: Supervised learning, Unsupervised learning, Semi-supervised learning Reinforcement learning Có số cách phân nhóm khơng có Semi-supervised learning Reinforcement learning - Supervised Learning (Học có giám sát): Supervied Learning thuật tốn dự đoán đầu (outcome) liệu (new input) dựa cặp (input, outcome) biết từ trước Cặp liệu gọi (data, label), tức (dữ liệu, nhãn) Supervised learning nhóm phổ biến thuật toán Machine Learning Thuật toán chia làm loại: Classification(Phân loại) Regression(Hồi quy) - Unsupervised Learning (Học không giám sát): Được chia làm loại: Clustering(Phân nhóm) Association - Semi-Supervised Learning (Học bán giám sát): Các toán có lượng lớn liệu XX phần chúng gán nhãn gọi Semi-Supervised Learning Những tốn thuộc nhóm nằm hai nhóm nêu bên - Reinforcement Learning (Học củng cố): Reinforcement Learning toán giúp cho hệ thống tự động xác định hành vi dựa hồn cảnh để đạt lợi ích cao (maximizing the performance) Hiện tại, Reinforcement learning chủ yếu áp dụng vào Lý Thuyết Trò Chơi (Game Theory), thuật toán cần xác định nước để đạt điểm số cao 1.2.2 Phân nhóm dựa chức - Thuật toán Regression: o Linear Regression o Logistic Regression o Stepwise Regression - Thuật toán Classification o Linear Classifier o SVM(Support Vector Machine) o Kernel SVM o SRC (Sparse Representation-based classification) - Thuật toán dựa Instance o K-láng giềng gần nhất(KNN) o Learning Vector Quantization(LVQ) - Thuật toán Regularization o Ridge Regression o Least Absolute Shrinkage and Selection Operator (LASSO) o Least-Angle Regression (LARS) - Thuật toán Bayesian o Naive Bayes o Gaussian Naive Bayes - Thuật toán Clustering o K-mean o K-median o Exceptation Maximization (EM) - Thuật toán mạng nơ ron o Perceptron o Softmax Regression o Multi-Layer Regression o Back-Propagation - Thuật toán Dimensionality Reduction o Principal Component Analysis (PCA) o Linear Discriminant Analysis (LDA) - Thuật toán Ensemble o Boosting o AdaBoost o Random Forest 1.3 Các ứng dụng học máy Ứng dụng: Học máy có ứng dụng rộng khắp ngành khoa học / sản xuất, đặc biệt ngành cần phân tích khối lượng liệu khổng lồ Một số ứng dụng thường thấy • Xử lý ngôn ngữ tự nhiên (Natural Language Processing): xử lý văn bản, giao tiếp người – máy… • Nhận dạng (Pattern Recognition): nhận dạng tiếng nói, chữ viết tay, vân tay, thị giác máy (Computer Vision)… • Tìm kiếm (Search Engine) • Chẩn đốn y tế: phân tích ảnh X - quang , hệ chuyên gia chẩn đoán tự động • Tin sinh học phân loại chuỗi gene, q trình hình thành gene / protein • Vật lý: phân tích ảnh thiên văn , tác động hạt… • Phát gian lận tài (financial fraud): gian lận thẻ tỉn dụng • Phân tích thị trường chứng khốn (stock market analysis) • Chơi trị chơi: tự động chơi cờ , hành động nhân ảo… • Rôbốt: tổng hợp nhiều ngành khoa học, học máy tạo nên hệ thần kinh / não người máy Nhược điểm: - Các biến độc lập trở nên khó hiểu hơn(các đặc trưng không dễ đọc dễ hiểu đặc trưng ban đầu) - Chuẩn hóa liệu trước sử dụng PCA - Mất thông tin 2.2 Tổng quan Kmean: 2.2.1 Các bước thuật toán k-Means Clustering Trong thuật toán k-Means cụm liệu đặc trưng tâm (centroid) tâm điểm đại diện cho cụm có giá trị trung bình tồn quan sát nằm cụm Chúng ta dựa vào khoảng cách từ quan sát tới tâm để xác định nhãn cho chúng trùng thuộc tâm gần Ban đầu thuật toán khởi tạo ngẫu nhiên số lượng xác định trước tâm cụm Sau tiến hành xác định nhãn cho điểm liệu tiếp tục cập nhật lại tâm cụm Thuật toán dừng toàn điểm liệu phân cụm số lượt cập nhật tâm chạm ngưỡng Cụ thể bước thuật tốn k-Means tóm tắt sau: 1.- Khởi tạo ngẫu nhiên k tâm cụm μ1,μ2,…,μk 2.- Lặp lại trình cập nhật tâm cụm dừng: a Xác định nhãn cho điểm liệu ci dựa vào khoảng cách tới tâm cụm: b Tính tốn lại tâm cho cụm theo trung bình tồn điểm liệu cụm: 11 Trong cơng thức 2.a ‖x‖22 bình phương norm chuẩn bậc 2, kí hiệu L2, norm chuẩn bậc độ đo khoảng cách thường sử dụng machine learning Trong công thức 2.b sử dụng hàm 1(.), hàm có giá trị trả nhãn điểm liệu ci dự báo thuộc cụm j, trái lại trả giá trị Như tử số vế phải công thức 2.b tổng khoảng cách tồn điểm liệu nằm cụm j mẫu số số lượng điểm liệu thuộc cụm j μj vị trí tâm cụm j mà ta dự báo thời điểm Trong thuật tốn tham số mà cần lựa chọn số lượng cụm k Thời điểm ban đầu ta khởi tạo k điểm liệu cách ngẫu nhiên sau gán tâm giá trị k điểm liệu Các bước vòng lặp bước thực chất là: a Gán nhãn cho điểm liệu với nhãn tâm cụm gần b Dịch chuyển tâm cụm μj tới trung bình điểm liệu mà phân j Bên ta xây dựng class KMean từ đầu để phân cụm liệu Hàm quan trọng fit() có tác dụng huấn luyện theo vịng lặp thuật toán KMean() Hàm get_labels() sử dụng để phân điểm liệu nhãn cụm Trong get_centroids() sử dụng để xác định tâm cụm dựa nhãn Hàm should_stop() có tác dụng kiểm tra điều kiện dừng vòng lặp Ở 12 dừng số lượng vòng lặp vượt max_iteration centroids ngừng thay đổi 2.2.2 Sự hội tụ thuật toán k-Means clustering: Liệu thuật tốn k-Means ln hội tụ? Điều hợp lý, chứng minh thông qua xét hàm biến dạng (distortion function) dạng MSE: Trong c=(c1,c2,…,cn) véc tơ nhãn toàn quan sát báo từ thuật tốn phân cụm 1(ci=j)μj tâm cụm mà quan sát xi phân bổ Như hàm biến dạng thực tế đo lường khoảng cách từ toàn điểm liệu đến tâm cụm Theo bước qui trình thuật tốn k-Means bước 2.a tính khoảng cách từ điểm liệu đến toàn tâm cụm nhằm cập nhật lại nhãn Như giá trị ‖xi−1(ci=j)μj‖22 giảm sau bước Tiếp theo sang bước thứ 2.b cập nhật lại tâm cụm cho khoảng cách chúng tới điểm liệu nhỏ Vị trí nghiệm phương trình đạo hàm bậc nhất: 13 Dòng thứ suy dòng thứ theo công thức đạo hàm ‖x−w‖22 Dịng thứ suy dịng thứ nhãn ci=j 1(ci=j)=1 Trường hợp nhãn ci≠j khoảng cách gán không ảnh hưởng tới tới hàm biến dạng Như đạo hàm bậc khi: Như tâm cụm trung bình tồn quan sát phân cụm tổng khoảng cách quan sát tới thâm cụm mà thuộc nhỏ Điều có nghĩa hàm biến dạng ln giảm sau vòng lặp Mặt khác hàm biến dạng bị chặn nên chuỗi hội tụ Tức sau hữu hạn bước thuật toán k-Means dừng 14 2.2.3 Phương pháp Elbow lựa chọn số cụm: Trong thuật tốn k-Means cần phải xác định trước số cụm Câu hỏi đặt đâu số lượng cụm cần phân chia tốt liệu cụ thể? Phương pháp Elbow cách giúp ta lựa chọn số lượng cụm phù hợp dựa vào đồ thị trực quan hố cách nhìn vào suy giảm hàm biến dạng lựa chọn điểm khuỷ tay (elbow point) Để tìm hiểu phương pháp Elbow, bên thử nghiệm vẽ biểu đồ hàm biến dạng cách điều chỉnh số lượng cụm thuật tốn k-Means Hình 2: Đồ thị hàm biến dạng thuật toán k-Means Trục tung giá trị hàm biến dạng trục hoành giá trị số lượng cụm cần phân chia thuật tốn k-Means Điểm khuỷ tay điểm mà tốc độ suy giảm hàm biến dạng thay đổi nhiều Tức kể từ sau vị trí gia tăng thêm số lượng cụm khơng 15 giúp hàm biến dạng giảm đáng kể Nếu thuật tốn phân chia theo số lượng cụm vị trí đạt tính chất phân cụm cách tổng quát mà không gặp tượng vị khớp (overfitting) Trong hình ta thấy vị trí điểm khuỷ tay k=2 số lượng cụm lớn tốc độ suy giảm hàm biến dạng dường không đáng kể so với trước Phương pháp Elbow phương pháp thường sử dụng để lựa chọn số lượng cụm phân chia hợp lý dựa biểu đồ, nhiên có số trường hợp khơng dễ dàng phát vị trí Elbow, đặc biệt liệu mà qui luật phân cụm không thực dễ dàng phát Nhưng nhìn chung phương pháp Elbow phương pháp tốt ứng dụng việc tìm kiếm số lượng cụm cần phân chia 2.2.4 Hạn chế Kmeam: Thuật tốn k-Means có số hạn chế là: Chúng ta cần phải xác định trước số cụm cho thuật tốn: Vì liệu chưa gán nhãn nên dường khơng có thơng tin số lượng cụm hợp lý Chúng ta thực phương pháp thử sai (try and error) xác định số cụm thông qua phương pháp chẳng hạn Elbow Vị trí tâm cụm bị phụ thuộc vào điểm khởi tạo ban đầu chúng: Những vị trí khởi tạo khác dẫn tới cách phân cụm khác nhau, thuật tốn có thiết lập số cụm Đối với liệu có hình dạng phức tạp cân thuật tốn khơng hội tụ qui luật phân chia tổng quát Chẳng hạn liệu có dạng đường viền hình trịn bao ngồi hình trịn bên nó; liệu 16 hình trơn ốc; liệu có phân phối dẹt; liệu bị cân phân phối cụm Thuật toán nhạy cảm với outliers: Khi xuất outliers thường khiến cho tâm cụm bị chệch dự báo cụm khơng cịn chuẩn xác Chính cần phải loại bỏ outliers trước huấn luyện thuật toán Thuật toán nhạy cảm với độ lớn đơn vị biến: Khi áp dụng thuật toán biến có khác biệt mặt đơn vị khoảng cách chủ yếu bị ảnh hưởng biến có đơn vị lớn khiến cho kết phân cụm bị chệch Chính cần phải chuẩn hoá biến để loại bỏ khác biệt đơn vị trước đưa vào huấn luyện mô hình Thuật tốn k-Means u cầu phải tính khoảng cách từ điểm tới toàn tâm cụm để tìm tâm cụm gần Như cần phải load toàn liệu lên RAM, liệu kích thước lớn vượt khả lưu trữ RAM Khi cần phải huấn luyện thuật tốn theo phương pháp online learning Kĩ thuật giới thiệu bên 2.2.5 Online Kmeans Clustering: Dữ liệu công ty công nghệ chẳng hạn Facebook, Google, Amazon,… thường có đặc điểm liệu lớn đòi hỏi phải cập nhật online Chính khơng thể huấn luyện lần tồn liệu làm gây lãng phí chi phí lưu trữ, chi phí tính tốn khơng đảm bảo tính realtime Khi phương pháp online learning giải pháp tối ưu thường sử dụng để huấn luyện mơ hình Theo phương pháp này, lựa chọn ngẫu nhiên điểm liệu thực cập nhật lại tâm cụm theo Gradient Descent Cách huấn luyện mô hình điểm liệu cịn gọi 17 Stochastic Gradient Descent Trường hợp khác cập nhật nghiệm theo Gradient Descent, đầu vào batch gồm nhiều điểm liệu gọi Mini-Batch Gradient Descent Phương pháp online learning vừa đảm bảo tính realtime tiết kiệm chi phí tính tốn nên thường áp dụng thực tiễn cho nhiều thuật toán khác machine learning, không riêng k-Means Đối với thuật tốn k-Means tìm cách tối thiểu hoá hàm biến dạng theo gradient descent Tức hệ thống xuất điểm liệu xi xác định cụm mà điểm liệu thuộc về, chẳng hạn μj, sau cập nhật lại tâm cụm theo công thức gradient: Trong α hệ số học tập (learning rate), thường xác định giá trị nhỏ chẳng hạn từ 0.001 đến 0.03 18 CHƯƠNG 3: ỨNG DỤNG THUẬT TỐN VÀO BÀI TỐN 3.1 Mơ tả tốn Hiện nay, cơng ty giải trí đại hóa hệ thống thơng tin mình, với việc cho mắt đường app, ứng dụng truy cập để nghe nhạc Tuy nhiên, việc trực đường dây cần có người quản lí Để giảm bớt gánh nặng nhân sự, cơng ty bắt đầu áp dụng trí tuệ nhân tạo vào ứng dụng mình, tiết kiệm thời gian cho người dùng giảm chi phí lao động Chính vậy, nhóm chúng em xây dựng mơ hình máy học, giúp gợi ý hát 3.2 Dữ liệu thực nghiệm Dữ liệu thực nghiệm Diabetes Dataset Mục tiêu gợi ý hát người dùng nhập chữ có liên quan tới Bộ liệu tải trang https://www.kaggle.com/code/vatsalmavani/music-recommendation-system-usingspotifydataset? fbclid=IwAR2FOLPLS1b45Sdg8tlVWntD8G326WNAew7kfOMnWn4ob_jd9KH za-VDVbY 19 Thống kê liệu thực nghiệm: Tổng số trường liệu Số nghẹ sĩ Năm mắt 34088 1921-2020 Tiền xử lý liệu: Dữ liệu hoàn tồn thuộc kiểu số, nhiên lại có thuộc tính số thực thuộc tính số nguyên Để áp dụng thuật tốn học máy, cần chuẩn hóa liệu StandarScaler Tuy nhiên, liệu có giá trị Những giá trị báo hiệu liệu bị trống Vì trước áp dụng StandarScaler cần điền giá trị giá trị trung bình thuộc tính 3.3 Mơi trường thực nghiệm Sử dụng tảng Colab Google https://colab.research.google.com/ Sử dụng ngơn ngữ lập trình Python 20 3.4 Kết thực nghiệm Sử dụng phương pháp học máy Kmean, trường hợp có khơng sử dụng phương pháp giảm chiều liệu PCA Dữ liệu chia thành 80% huấn luyện 20% test Sử dụng độ đo Percision, Recall F1-Score Độ đo Percision: TP/(TP+FP) Độ đo Recall: TP/(TP+FN) Độ đo F1-Score: 2/([1/Percision]+[1/Recall]) 21 22 Bảng đánh giá kết phương pháp Phương pháp Percision Recall 0.7368 0.8842 KMEAN khơng PCA 0.7250 0.4915 KMEAN có 0.6975 0.8737 PCA 0.6571 0.3898 3.5 Đánh giá kết thực nghiệm F1-Score 0.8038 0.5859 0.7757 0.4894 Nhãn 1 Như ta thấy bảng trên, việc sử dụng PCA vào tập dự liệu có nhiều thuộc tính(19 thuộc tính tập liệu hát) thuộc tính liên quan nhiều đến kết đầu ra, phương pháp PCA tỏ thiếu xác áp dụng vào thuật toán học máy Việc sử dụng PCA tập liệu nhìn chung cho kết thiếu xác so với việc khơng sử dụng PCA Ta thấy KMEAN thuật toán học máy cho kết xác dựa điểm F1-Score 23 KẾT LUẬN Như vậy, nhóm chúng em thành công việc chứng minh phương pháp giảm chiều PCA không tốt tập liệu có q thuộc tính, thuộc tính ảnh hưởng nhiều tới kết đầu Việc làm giảm số thuộc tính trường hợp thực khơng ổn Vì khơng nên sử dụng PCA trường hợp Qua việc thực nghiên cứu đề tài “Gợi ý hát sử dụng phương pháp giảm chiều PCA thuật tốn KMEAN”, nhóm chúng em biết thêm nhiều kiến thức thuật toán bước đầu nắm bắt ứng dụng môn học Học máy nâng cao Bên cạnh đó, việc làm nghiên cứu giúp chúng em đồn kết hơn, rèn luyện cho chúng em kỹ làm việc nhóm Trong q trình thực đề tài có nhiều ý tưởng hay độc đáo Nhưng kiến thức chúng em hạn hẹp thời gian không cho phép nên chúng em chưa thể thực ý tưởng Tuy nhiên chúng em cố gắng để xây dựng chương trình hồn chỉnh đẹp để đưa tới Thầy/Cô Trong trình xây dựng chương trình nhóm chúng em khó tránh khỏi sai xót cịn tồn Vì chúng em mong nhận lời góp ý chỉnh sửa từ Thầy/Cơ để hồn thành chương trình cách hoàn chỉnh Chúng em lần xin cảm ơn thầy giáo Phạm Đức Hồng tận tình giảng dạy hướng dẫn chúng em làm sản phẩm kết thúc học phần môn học Học máy nâng cao, thầy giúp đỡ chúng em trình nghiên cứu đề tài chia sẻ tài liệu hay kỹ lập trình cần thiết 24 DANH MỤC TÀI LIỆU THAM KHẢO [1] Slide giảng dạy thầy Phạm Đức Hồng [2] https://vietnix.vn/machine-learning-la-gi/ [3].https://phamdinhkhanh.github.io/deepai-book/ch_ml/KMeans.html [4] https://machinelearningcoban.com/2017/06/15/pca/ 25