1. Trang chủ
  2. » Luận Văn - Báo Cáo

Ứng dụng thuật toán k means clustering để dự đoán chất lượng của rượu vang đỏ và điểm rating của mì ramen

24 62 2

Đ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

Định dạng
Số trang 24
Dung lượng 2,33 MB

Nội dung

MỤC LỤC 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 (SemiSupervised Learning) 5 1.3. Ứng dụng của học máy: 6 CHƯƠNG 2 THUẬT TOÁN KMEANS CLUSTERING TRONG BÀI TOÁN PHÂN CỤM 7 2.1 Tổng quan về thuật toán KMeans Clustering 7 2.2. Thuật toán KMeans 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 KMeans Clustering: 9 2.2.4. Tóm tắt thuật toán: 10 CHƯƠNG 3 ỨNG DỤNG THUẬT TOÁN KMEANS CLUSTERING 11 3.1. Dữ liệu wine_red_quality: 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 3.2. Dữ liệu ramen_rating: 15 3.2.1. Phát biểu bài toán: 15 3.1.2. Yêu cầu: 15 3.1.3. Bộ dữ liệu: 16 3.1.4. Tiến hành phân cụm: 16 TÀI LIỆU THAM KHẢO 22 LỜI MỞ ĐẦU Công nghệ ngày càng phổ biến và không ai có thể phủ nhận được tầm quan 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ật toá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ều mố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ức tạp hơn đồng thời đưa ra những kết quả một cách nhanh và chính xác hơ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ại cho chúng ta khiến machine learning ngày càng được chú trọng và quan tâm nhiều hơn. Vì vậy chúng em đã chọn đề tài ”Ứng dụng thuật toán KMeans Clustering để dự đoán chất lượng của rượu vang đỏ và điểm rating của mì ramen”để làm báo cáo. Chúng 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 Đại họ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ói riê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ô Phạm Thị Kim Dung đã 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.

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: ỨNG DỤNG THUẬT TOÁN PHÂN CỤM KMEANS CLUSTERING ĐỂ DỰ ĐOÁN CHẤT LƯỢNG CỦA RƯỢU VANG ĐỎ VÀ RATING CỦA MÌ RAMEN Giảng viên hướng dẫn : PHẠM THỊ KIM DUNG tháng 12 2020 Ngành : CÔNG NGHỆ THÔNG TIN Chuyên ngành : THƯƠNG MẠI ĐIỆN TỬ Lớp : D13HTTMDT1 Khóa : 2018-2023 Hà Nội, năm MỤC LỤC CHƯƠNG TỔNG QUAN VỀ HỌC MÁY .2 1.1 Khái niệm học máy: 1.2 Phân nhóm thuật tốn học máy 1.2.1 Học có giám sát (Supervised Learning) 1.2.2 Học phi giám sát (Unsupervised Learning)-UL 1.2.3 Học tăng cường (reinforcement learning) 1.2.4 Học bán giám sát (Semi-Supervised Learning) 1.3 Ứng dụng học máy: CHƯƠNG THUẬT TOÁN K-MEANS CLUSTERING TRONG BÀI TOÁN PHÂN CỤM 2.1 Tổng quan thuật toán K-Means Clustering 2.2 Thuật toán K-Means Clustering: 2.2.1 Mơ hình tốn học: 2.2.2 Độ xác thuật toán: 2.2.3 Nghiệm thuật toán K-Means Clustering: 2.2.4 Tóm tắt thuật toán: 10 CHƯƠNG ỨNG DỤNG THUẬT TOÁN K-MEANS CLUSTERING 11 3.1 Dữ liệu wine_red_quality: 11 3.1.1 Phát biểu toán: 11 3.1.2 Yêu cầu: 11 3.1.3 Bộ liệu: 11 3.1.4 Tiến hành phân cụm .12 3.2 Dữ liệu ramen_rating: 15 3.2.1 Phát biểu toán: 15 3.1.2 Yêu cầu: 15 3.1.3 Bộ liệu: .16 3.1.4 Tiến hành phân cụm: 16 TÀI LIỆU THAM KHẢO 22 LỜI MỞ ĐẦU Công nghệ ngày phổ biến khơng phủ nhận tầm quan trọng hiệu mà đem lại cho sống Bất kỳ lĩnh vực nào, góp mặt trí tuệ nhân tạo giúp người làm việc hồn thành tốt cơng việc Và gần đây, thuật ngữ “machine learning” nhiều người quan tâm.Thay phải code phần mềm với cách thức thủ công theo hướng dẫn cụ thể nhằm hoàn thành nhiệm vụ đề máy tự “học hỏi” cách sử dụng lượng lớn liệu thuật toán cho phép thực tác vụ Đây lĩnh vực khoa học không mới, cho thấy lĩnh vực trí tuệ nhân tạo ngày phát triển tiến xa tương lai Đồng thời, thời điểm xem lĩnh vực “nóng” dành nhiều mối quan tâm để phát triển cách mạnh mẽ, bùng nổ Hiện nay, việc quan tâm machine learning ngày tăng lên nhờ có machine learning giúp gia tăng dung lượng lưu trữ loại liệu sẵn, việc xử lý tính tốn có chi phí thấp hiệu nhiều Những điều hiểu thực tự động, nhanh chóng để tạo mơ hình cho phép phân tích liệu có quy mơ lớn phức tạp đồng thời đưa kết cách nhanh xác Chính hiệu cơng việc lợi ích vượt bậc mà đem lại cho khiến machine learning ngày trọng quan tâm nhiều Vì chúng em chọn đề tài ”Ứng dụng thuật toán K-Means Clustering để dự đoán chất lượng rượu vang đỏ điểm rating mì ramen”để làm báo cáo Chúng em xin chân thành gửi lời cảm ơn tới thầy cô giáo Trường Đại học Điện Lực nói chung thầy giáo Khoa Cơng nghệ thơng tin nói riêng tận tình giảng dạy, truyền đạt cho chúng em kiến thức kinh nghiệm quý báu suốt trình học Đặc biệt, em gửi lời cảm ơn đến Cơ Phạm Thị Kim Dung tận tình theo sát giúp đỡ, trực tiếp bảo, hướng dẫn suốt trình nghiên cứu học tập chúng em CHƯƠNG TỔNG QUAN VỀ HỌC MÁY 1.1 Khái niệm học máy: Học máy (Machine learning) lĩnh vực Trí tuệ nhân tạo(Artificial Intelligence) sử dụng thuật tốn cho phép máy tính học từ liệu để thực công việc thay lập trình cách rõ ràng, cung cấp cho hệ thống khả tự động học hỏi cải thiện hiệu suất, độ xác dựa kinh nghiệm từ liệu đầu vào Học máy tập trung vào việc phát triển phần mềm, chương trình máy tính truy cập vào liệu tận dụng nguồn liệu để tự học Học máy đòi hỏi đánh giá người việc tìm hiểu liệu sở lựa chọn kĩ thuật phù hợp để phân tích liệu Đồng thời, trước sử dụng, liệu phải sạch, khơng có sai lệch khơng có liệu giả Các mơ hình học máy u cầu lượng liệu đủ lớn để "huấn luyện" đánh giá mơ hình Trước đây, thuật tốn học máy thiếu quyền truy cập vào lượng lớn liệu cần thiết để mơ hình hóa mối quan hệ liệu Sự tăng trưởng liệu lớn (big data) cung cấp thuật toán học máy với đủ liệu để cải thiện độ xác mơ hình dự đốn 1.2 Phân nhóm thuật tố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 liệu gán nhãn từ trước để suy luận quan hệ đầu vào đầu Các liệu gọi liệu huấn luyện chúng cặp đầu vào-đầu Học có giám sát xem xét tập huấn luyện để từ đưa dự đốn đầu cho đầu vào chưa gặp Ví dụ dự đốn giá nhà, phân loại email Các mơ mạng Nơ-ron, SVM, CNN,… Hình 1 Mơ hình học có giám sát Supervised Learning Là tht 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 đươc gọi data, label tức liệu, nhãn Supervised Learning Là nhóm phổ biến 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 liệu chưa gán nhãn từ trước để suy luận Phương pháp thường sử dụng để tìm cấu trúc tập liệu Tuy nhiên lại khơng có phương pháp đánh giá cấu trúc tìm hay sai Ví dụ phân cụm liệu, triết xuất thành phần chất K-mean Ứng dụng phổ biến học khơng giám sát gom cụm (cluster) Hình Mơ hình học khơng giám sát Trong thuật tốn này, liệu đầu hay nhãn mà có liệu đầu vào Thuật tốn Học không giám sát dựa vào cấu trúc liệu để thực cơng việc đó, ví dụ phân nhóm giảm số chiều liệu để thuận tiện việc lưu trữ tính tốn Một cách tốn học, Học khơng giám sát có liệu vào X mà khơng biết nhãn Y tương ứng Sự khác học có giám sát học khơng giám sát: Hình 1.3: Sự khác biệt mơ hình SL UL Học có giám sát: Là cách huấn luyện mơ hình liệu học có đầu vào đầu tương ứng đầu vào Mơ hình huấn luyện cách giảm thiểu sai số lỗi (loss) dự đốn vịng lặp huấn luyện Sau q trình huấn luyện mơ hình có khả đưa dự đoán đầu với đầu vào gặp (khơng có liệu học) Nếu không gian đầu biểu diễn dứới dạng rời rạc, ta gọi tốn phân loại (classification) Nếu không gian đầu biểu diễn dạng liên tục, ta gọi tốn hồi quy (regression) Học không giám sát: Là cách huấn luyện mơ hình liệu học bao gồm đầu vào mà khơng có đầu Mơ hình huấn luyện cách để tìm cấu trúc mối quan hệ đầu vào Một phương pháp học không giám sát quan trọng phân cụm (clustering): Tạo cụm khác với cụm biểu diễn đặc trưng liệu phân đầu vào vào cụm theo đặc trưng đầu vào Các phương pháp học khơng giám sát khác kể đến như: phát điểm bấ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 tác tử mơi trường hành động cho lấy phần thưởng nhiều Khác với học có giám sát khơng có cặp liệu gán nhãn trước làm đầu vào khơng có đánh giá hành động hay sai 1.2.4 Học bán giám sát (Semi-Supervised Learning) Các tốn có lượng lớn liệu X phần chúng gán nhãn gọi Semi-Supervised Learning Những toán thuộc nhóm nằm hai nhóm nêu bên Một ví dụ điển hình nhóm có phần ảnh văn gán nhãn (ví dụ ảnh người, động vật văn khoa học, trị) phần lớn ảnh/văn khác chưa gán nhãn thu thập từ internet Thực tế cho thấy nhiều tốn Machine Learning thuộc vào nhóm việc thu thập liệu có nhãn tốn nhiều thời gian có chi phí cao Rất nhiều loại liệu chí cần phải có chun gia gán nhãn (ảnh y học chẳng hạn) Ngược lại, liệu chưa có nhãn thu thập với chi phí thấp từ internet 1.3 Ứng dụng học máy: Nhiều hoạt động hàng ngày trợ giúp thuật toán machine learning, bao gồm:  Trong y tế: xác định bệnh lý người bệnh dựa liệu lịch sử bệnh nhân có bệnh lý có đặc điểm chữa khỏi trước đây, hay xác định loại thuốc phù hợp  Trong lĩnh vực ngân hàng: xác định khả khách hàng chậm trả khoản vay rủi ro tín dụng nợ xấu dựa phân tích Credit score; xác định xem liệu giao dịch có hành vi phạm tội, lừa đảo hay không  Trong giáo dục: phân loại học sinh theo hoàn cảnh, học lực để xem xem cần hỗ trợ cho học sinh ví dụ hồn cảnh sống khó khăn 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ựa liệu từ website, social media  Trong kinh tế nói chung: giúp dự báo kiện kinh tế tương lai, dự báo tình hình thời tiết nơng nghiệp, xác định xu hướng thị trường chứng khốn để lên kế hoạch đầu tư thích hợp CHƯƠNG THUẬT TOÁN K-MEANS CLUSTERING TRONG BÀI TOÁN PHÂN CỤM 2.1 Tổng quan thuật toán K-Means Clustering Với thuật tốn K-Means Clustering, khơng biết nhãn (label) điểm liệu Mục đích làm thể để phân liệu thành cụm (cluster) khác cho liệu cụm có tính chất giống Ý tưởng đơn giản cluster (cụm) tập hợp điểm gần khơng gian (khơng gian có nhiều chiều trường hợp thơng tin điểm liệu lớn) Hình bên ví dụ cụm liệu (từ tơi viết gọn cluster) Hình 2.1: Bài tốn với clusters Giả sử cluster có điểm đại diện (center) màu vàng Và điểm xung quanh center thuộc vào nhóm với center Một cách đơn giản nhất, xét điểm bất kỳ, ta xét xem điểm gần với center thuộc nhóm với center 2.2 Thuật tốn K-Means Clustering: 2.2.1 Mơ hình tốn học: Ta gọi điểm vị trí trung bình tất điểm liệu cụm trung tâm cụm Như vậy, có K cụm có K trung tâm cụm trung tâm cụm nằm gần điểm liệu cụm tương ứng trung tâm cụm khác Trong hình đây, K = ta có trung tâm cụm điểm màu vàng Hình 2.2: Mơ hình liệu phân cụm Để phân cụm liệu K-Means Clustering, trước hết ta chọn K số cụm để phân chia chọn ngẫu nhiên K số m liệu ban đầu làm trung tâm cụm μ1, μ2, …, μK Sau đó, với điểm liệu x(i) ta gán cho cụm c(i) cụm có trung tâm cụm gần Khi tất điểm liệu gán cụm, bước tính tốn lại vị trí trung tâm cụm trung bình tọa độ điểm liệu cụm với k1, k2, …, kn số liệu thuộc cụm thứ k Các bước lặp lại vị trí trung tâm cụm khơng đổi sau bước lặp 2.2.2 Độ xác thuật toán: Hàm mát thuật toán K-Means Clustering đặc trưng cho độ xác lớn khoảng cách từ điểm liệu tới trung tâm cụm lớn 2.2.3 Nghiệm thuật toán K-Means Clustering: Trong bước thuật toán, thực chất bước gán điểm liệu trung tâm cụm gần bước thay đổi trung tâm cụm vị trí trung bình điểm liệu cụm nhằm mục đích giảm hàm mát Thuật tốn kết thúc vị trí trung tâm cụm khơng đổi sau bước lặp Khi hàm mát đạt giá trị nhỏ 10 Khi K nhỏ so với m, thuật toán dễ đến kết chưa phải tối ưu Điều 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 tốn nhiều lần chọn phương án có giá trị hàm mát nhỏ 2.2.4 Tóm tắt thuật tốn: Đầu vào: Dữ liệu XX số lượng cluster cần tìm KK Đầu ra: Các center MM label vector cho điểm liệu YY Chọn KK điểm làm center ban đầu Phân điểm liệu vào cluster có center gần Nếu việc gán liệu vào cluster bước khơng thay đổi so với vịng lặp trước ta dừng thuật tốn Cập nhật center cho cluster cách lấy trung bình cộng tất các điểm liệu gán vào cluster sau bước Quay lại bước 11 CHƯƠNG ỨNG DỤNG THUẬT TOÁN K-MEANS CLUSTERING 3.1 Dữ liệu wine_red_quality: 3.1.1 Phát biểu toán: Bài toán phân loại chất lượng rượu vang đỏ đưa tập dự liệu thông số mẫu rượu vang đỏ để phân loại chất lượng chúng - Giá trị input: Thơng tin, đặc tính mẫu rượu - Giá trị output: tên cụm chúng phân vào 3.1.2 Yêu cầu: - Lấy liệu mơ tả đặc tính rượu - Trích chọn đặc trưng từ tập liệu lấy - Xử lý, làm liệu - Tiến hành phân cụm - Dữ liệu hóa đồ thị 3.1.3 Bộ liệu: Nguồn: https://www.kaggle.com/uciml/red-wine-quality-cortez-et-al-2009 Bộ liệu bao gồm đặc trưng nồng độ thành phần ảnh hưởng đển chất lượng rượu, bao gồm: - fixed acidity: độ acid cố định - volatile acidity: độ acid dễ bay - citric acid: nồng độ citric acid – dùng để thêm độ tươi hương vị cho rượu vang - residual sugar: lượng đường dư lại sau dừng lên men, thường lớn gr/liter - chlorides: độ mặn rượu - free sulfur dioxide: lượng chất SO2 tồn trạng thái cân phân tử SO2 bisulfite ion, ngăn cản vi sinh vật oxi hóa rượu 12 - total sulfur dioxide: số lượng dạng S02 tự ràng buộc; nồng độ thấp, SO2 phát rượu vang, nồng độ SO2 tự 50 ppm, SO2 trở nên rõ ràng mũi mùi vị rượu - density: tỉ trọng nước - pH: thước đo tính axit bazo thang điểm -14 - sulphates: chất phụ gia rượu vang góp phần vào mức khí sulfur dioxide (S02), hoạt động chất chống vi khuẩn chất chống oxy hóa - alcohol: nồng độ cồn - quality: chất lượng (là kết số mẫu rượu đánh giá dựa vị giác người thử rượu, nhiên tốn phân cụm khơng cần đến đặc trưng này) Hình 3.1: Dữ liệu cụ thể 3.1.4 Tiến hành phân cụm IMPORT THƯ VIỆN: import pandas as pd import numpy as np from sklearn.cluster import KMeans import matplotlib.pyplot as plt 13 from sklearn.decomposition import PCA ĐỌC FILE DỮ LIỆU CSV: df = pd.read_csv('winequality-red.csv') BỎ NHỮNG DỮ LIỆU BỊ LẶP df = df.drop_duplicates() CHUẨN HÓA DỮ LIỆU (MAX-MIN NORMALIZE): def max_min_normalize(column): maxx = max(column) minn = min(column) normalized_column = [] for value in column: normalized_value = (value - minn)/(maxx - minn) normalized_column.append(normalized_value) return normalized_column for column in df.columns: try: df[column] = max_min_normalize(df[column]) except ZeroDivisionError: df[column] = TẠO MODEL PHÂN CỤM DỮ LIỆU VÀ BIỂU DIỄN DỮ LIỆU: df = PCA(2).fit_transform(df) clr = KMeans(n_clusters = 10,init = 'k-means++',random_state = 6) clr.fit(df) labels = clr.predict(df) centroid_labels = clr.predict(clr.cluster_centers_) predicted_df = pd.DataFrame(data = df,columns = ['PCA1','PCA2']) predicted_df['Cluster'] = labels centroid_df = pd.DataFrame(data = clr.cluster_centers_,columns = ['PCA1','PCA2']) centroid_df['Cluster'] = centroid_labels plt.scatter(predicted_df['PCA1'],predicted_df['PCA2'],c = labels,alpha = 0.5) plt.scatter(centroid_df['PCA1'],centroid_df['PCA2'],marker = 'D',s = 100,c = centroid_lab els) plt.show() 14 Hình 3.2: Hình ảnh liệu sau phân cụm đồ thị 3.2 Dữ liệu ramen_rating: 3.2.1 Phát biểu toán: Bài toán phân loại chất lượng mì ramen dựa liệu có thông tin cho ảnh hưởng đển điểm rating - Giá trị input: Thơng tin cụ thể sản phẩm mì ramen - Giá trị output: tên cụm chúng phân vào 3.1.2 Yêu cầu: - Lấy liệu mì ramen - Trích chọn đặc trưng từ tập liệu lấy - Xử lý, làm liệu - Tiến hành phân cụm - Dữ liệu hóa đồ thị 15 3.1.3 Bộ liệu: Nguồn: https://www.kaggle.com/residentmario/ramen-ratings Bộ liệu bao gồm đặc trưng thơng tin mì ramen: - Review: số thứ tự review - Brand: Hãng sản xuất mì ramen - Variety: Mơ tả chung mì ramen - Style: Kiểu phục vụ (được đựng bát, khay, …) - Country: quốc gia mà bán - Star: Số mà đạt - Top Ten: Điểm rating thang điểm 10 mì (tuy nhiên tốn phân cụm nên đặc trưng bị lược bỏ) Hình 3.4: Dữ liệu cụ thể 3.1.4 Tiến hành phân cụm: IMPORT THƯ VIỆN import pandas as pd import numpy as np from sklearn.cluster import KMeans import matplotlib.pyplot as plt from sklearn.decomposition import PCA ĐỌC FILE DỮ LIỆU CSV 16 rating = pd.read_csv('ramen-ratings.csv') LÀM SẠCH DỮ LIỆU - Bỏ đặc trưng không ảnh hưởng đến kết - Bỏ mẫu liệu bị lặp lại hai lần - Bỏ liệu có giá trị NaN cột NaN rating = rating.drop(['Review #','Top Ten'],axis = 1) rating = rating.drop_duplicates() rating = rating.drop(rating[rating['Style'].isna()].index) - Đặc trưng Stars có giá trị ‘Unrated’ giá trị Stars có ảnh hưởng lớn đến kết phân cụm nên thay bỏ, gán cho liệu giá trị trung bình Stars tồn liệu def tinh_trung_binh_star(column): total = for value in column: total += float(value) average = total/len(column) return average star_average = tinh_trung_binh_star(rating['Stars'].drop(rating[rating['Stars'] == 'Unrate d'].index)) rating['Stars'] = rating['Stars'].apply(lambda x: star_average if x == 'Unrated' else x) rating['Stars'] = rating['Stars'].astype(float) BIẾN NHỮNG ĐẶC TRƯNG PHÂN LOẠI VỀ DẠNG SỐ rating = pd.get_dummies(rating,columns = ['Brand','Variety','Style','Country']) CHUẨN HÓA DỮ LIỆU (CHUẨN HÓA MAX-MIN): def max_min_normalize(column): maxx = max(column) minn = min(column) normalized_column = [] for value in column: normalized_value = (value - minn)/(maxx - minn) normalized_column.append(normalized_value) return normalized_column for column in rating.columns: try: rating[column] = max_min_normalize(rating[column]) except ZeroDivisionError: 17 rating[column] = TIẾN HÀNH PHÂN CỤM VÀ BIỂU DIỄN DỮ LIỆU ĐƯỢC PHÂN CỤM (2D): rating = PCA(2).fit_transform(rating) df = pd.DataFrame(data = rating,columns = ['PCA1','PCA2']) print(' -Du lieu sau normalize -\n',df.head(),'\n') #Tao model clr = KMeans(n_clusters = 10,init = 'k-means++',random_state = 6) clr.fit(rating) cluster_predicted = clr.predict(rating) df['Cluster'] = cluster_predicted print(' -Ket qua phan cum -\n',df.head(),'\n') print(' -Centroid -\n',clr.cluster_centers_,'\n') centroid_labels = clr.predict(clr.cluster_centers_) centroid_df = pd.DataFrame(data = clr.cluster_centers_,columns = ['PCA1','PCA2']) centroid_df['Cluster'] = centroid_labels print(' -Ket qua phan cum cho centroid -\n',centroid_df,'\n') plt.scatter(df['PCA1'],df['PCA2'],c = cluster_predicted,s = 10) plt.scatter(centroid_df['PCA1'],centroid_df['PCA2'],marker = 'D',s = 100,c = centroid_lab els) plt.title('K-means Clustering 2D') plt.show() 18 Hình 3.5: Hình ảnh liệu sau phân cụm đồ thị 2D TIẾN HÀNH PHÂN CỤM VÀ BIỂU DIỄN DỮ LIỆU ĐƯỢC PHÂN CỤM (3D): rating = PCA(3).fit_transform(rating) df = pd.DataFrame(data = rating,columns = ['PCA1','PCA2','PCA3']) print(' -Du lieu sau normalize -\n',df.head(),'\n') #Tao model clr = KMeans(n_clusters = 10,init = 'k-means++',random_state = 6) clr.fit(rating) cluster_predicted = clr.predict(rating) df['Cluster'] = cluster_predicted print(' -Ket qua phan cum -\n',df.head(),'\n') print(' -Centroid -\n',clr.cluster_centers_,'\n') centroid_labels = clr.predict(clr.cluster_centers_) centroid_df = pd.DataFrame(data = clr.cluster_centers_,columns = ['PCA1','PCA2','PCA3' ]) centroid_df['Cluster'] = centroid_labels print(' -Ket qua phan cum cho centroid -\n',centroid_df,'\n') 19 #Data Visualize ax = plt.axes(projection = '3d') ax.scatter3D(df['PCA1'],df['PCA2'],df['PCA3'],c = cluster_predicted) ax.scatter3D(centroid_df['PCA1'],centroid_df['PCA2'],centroid_df['PCA3'],marker = 'D',s = 50,c = centroid_labels) plt.title('Kmean Clustering 3D') plt.show() Hình 3.6: Hình ảnh liệu sau phân cụm đồ thị 3D 20 TÀI LIỆU THAM KHẢO [1] Trang web: machinelearningcoban.com 21 ... ngày trọng quan tâm nhiều Vì chúng em chọn đề tài ? ?Ứng dụng thuật toán K- Means Clustering để dự đoán chất lượng rượu vang đỏ điểm rating mì ramen? ? ?để làm báo cáo Chúng em xin chân thành gửi lời cảm... trường chứng khoán để lên k? ?? hoạch đầu tư thích hợp CHƯƠNG THUẬT TOÁN K- MEANS CLUSTERING TRONG BÀI TOÁN PHÂN CỤM 2.1 Tổng quan thuật toán K- Means Clustering Với thuật toán K- Means Clustering, ... CHƯƠNG ỨNG DỤNG THUẬT TOÁN K- MEANS CLUSTERING 3.1 Dữ liệu wine_red_quality: 3.1.1 Phát biểu toán: Bài toán phân loại chất lượng rượu vang đỏ đưa tập dự liệu thông số mẫu rượu vang đỏ để phân loại chất

Ngày đăng: 20/08/2021, 15:59

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w