Nó xác định cáccụm dựa trên sự gần nhau của các điểm dữ liệu, và cụm được định nghĩa bởiviệc có ít nhất một số lượng tối thiểu các điểm nằm trong khoảng cách cố địnhtừ một điểm tham chiế
Trang 1TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CUỐI KỲ
MÔN KHAI THÁC DỮ LIỆU KHÁM PHÁ TRI THỨC
Lớp : 20050301 Khoá : 24
THÀNH PHỐ HỒ CHÍ MINH, NĂM 2023
Trang 2TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CUỐI KỲ
MÔN KHAI THÁC DỮ LIỆU KHÁM PHÁ TRI THỨC
Lớp : 20050301 Khoá : 24
THÀNH PHỐ HỒ CHÍ MINH, NĂM 2023
Trang 3LỜI CẢM ƠN
Em là Lâm Quốc Huy thay mặt mọi người viết lên những dòng tri ân này Những lờinói cao đẹp xin gửi đến Thầy đã giúp đỡ chúng em nói riêng và khoa CNTT nói chung trongsuốt quá trình học tập và làm bài, Thầy đã giúp đỡ rất nhiều trong công tác định hình về gócnhìn thực tế của bài báo cáo về đề tài Những khía cạnh và công việc thực tế mà có lẽ chúng
em sẽ không nêu ra được nếu không có đầy đủ sự trải nghiệm và thấu hiểu quy trình vận hànhcủa Thầy Đồng thời, chúng em cũng muốn gửi lời cảm ơn chân thành đến tập thể khoaCNTT và toàn thể cán bộ công nhân viên chức trường Đại Học Tôn Đức Thắng Những sựcống hiến đóng góp thầm lặng của những con người anh hùng không tên, bỏ đi lợi ích củamình góp phần tạo nên giá trị to lớn của cả một thể hoàn chỉnh Xin chân thành cảm ơn tất cả
Trang 4ĐỒ ÁN ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG
Tôi xin cam đoan đây là sản phẩm đồ án của riêng tôi và được sự hướng dẫn của
PhD.Hoàng Anh Các nội dung nghiên cứu, kết quả trong đề tài này là trung thực và chưa
công bố dưới bất kỳ hình thức nào trước đây Những số liệu trong các bảng biểu phục vụ choviệc phân tích, nhận xét, đánh giá được chính tác giả thu thập từ các nguồn khác nhau có ghi
rõ trong phần tài liệu tham khảo
Ngoài ra, trong đồ án còn sử dụng một số nhận xét, đánh giá cũng như số liệu của cáctác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích nguồn gốc
Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm về nội dung đồ án của mình Trường đại học Tôn Đức Thắng không liên quan đến những vi phạm
tác quyền, bản quyền do tôi gây ra trong quá trình thực hiện
TP Hồ Chí Minh, ngày 10 tháng 10 năm 2023
Tác giả
Lâm Quốc Huy Lê Nguyễn Tấn Thi
Ngô Quang Thuận Nguyễn Lê Quốc Trung
Huỳnh Anh Tuấn
Trang 5PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊNPhần xác nhận của GV hướng dẫn
_ _ _ _ _ _
Tp Hồ Chí Minh, ngày tháng năm
Phần đánh giá của GV chấm bài
_ _ _ _ _ _ _
Tp Hồ Chí Minh, ngày tháng năm
Trang 6MỤC LỤC
1 Bảng phân công công việc
2 Tìm hiểu/ phân tích vấn đề, Liệt kê các câu hỏi
3 Thu thập dữ liệu
4 Tiền xử lý dữ liệu
5 Phân tích/ tìm hiểu thuật toán phù hợp
6 Phân tích/ đánh giá kết quả
7 Sử dụng tri thức
Trang 7STT THÔNG TIN CÔNG VIỆC THỜI GIAN
1 LÂM QUỐC HUY – 52000216
Soạn slide, viết báo cáo,thuyết trình, quản lý tiến độhoạt động nhóm Trình bày/
phân tích/ Báo cáo kết quả
20h00 15/11/2023
-2 LÊ NGUYỄN TẤN THI - 52000806
Tìm hiểu/ phân tích vấn đềLiệt kê các câu hỏi , Thuthập dữ liệu Databases, Tiền
xử lý dữ liệu DataWarehouse Data Integration
20h00 –20/10/2023
3 NGÔ QUANG THUẬN - 51900567 Các thông số mô tả dữ liệu
Sử dụng công cụ Tiền xử lý
dữ liệuTrực quan hóa dữ liệuHuấn luyện mô hìnhTrình bày/ trực quan hóa kếtquả đạt đượcLựa chọn chỉ số/ độ đo đánh
giáTrình bày/ phân tích/ Báocáo kết quảHướng ứng dụng kết quả đạt
được
20h00 –10/11/2023
4 NGUYỄN LÊ QUỐC TRUNG -52100860
5 HUỲNH ANH TUẤN - 52000291 Phân tích/ tìm hiểu thuật toánphù hợp.Phân tích/ đánh giá
kết quả.Sử dụng tri thức 29/10/2023
CHƯƠNG 1 : PHÂN CÔNG CÔNG VIỆC
CHƯƠNG 2 : TÌM HIỂU / PHÂN TÍCH VẤN ĐỀ; LIỆT KÊ
1 GIỚI THIỆU :
DBSCAN (Density-Based Spatial Clustering of Applications with Noise)
là một thuật toán phân cụm dựa trên mật độ được giới thiệu vào năm 1996 bởiMartin Ester, Hans-Peter Kriegel, Jörg Sander và Xiaowei Xu DBSCAN đã trởthành một trong những phương pháp phân cụm quan trọng trong lĩnh vực họcmáy và khai thác dữ liệu Thuật toán này giúp xác định các cụm dữ liệu dựatrên sự gần nhau của các điểm và cũng có khả năng phát hiện các điểm nhiễu
2 NGUYÊN TẮC HOẠT ĐỘNG :
Trang 8DBSCAN hoạt động dựa trên nguyên tắc của mật độ Nó xác định cáccụm dựa trên sự gần nhau của các điểm dữ liệu, và cụm được định nghĩa bởiviệc có ít nhất một số lượng tối thiểu các điểm nằm trong khoảng cách cố định
từ một điểm tham chiếu Dưới đây là quy trình hoạt động cụ thể của DBSCAN:
Chọn một điểm ngẫu nhiên từ tập dữ liệu làm điểm tham chiếu ban đầu
● Tìm tất cả các điểm có thể đạt được từ điểm tham chiếu theo khoảng cách epsilon (bán kính) và có ít nhất min_samples điểm trong khoảng cách này.
● Nếu điểm tham chiếu là một điểm lõi (có đủ số lượng điểm trong bán kính epsilon), thì tạo một cụm mới và thêm tất cả các điểm này vào cụm Nếu điểm không phải là điểm lõi, đánh dấu nó như là một điểm biên hoặc nhiễu.
● Lặp lại quy trình cho tất cả các điểm trong cụm vừa tạo ra.
● Khi không còn điểm nào khả thi để thêm vào cụm, chuyển sang chọn một điểm mới từ tập dữ liệu chưa được gán cụm và lặp lại quy trình.
● Kết thúc quá trình khi tất cả các điểm đã được gán vào các cụm hoặc đánh dấu là điểm nhiễu.
3 ĐẶC ĐIỂM CỦA DBSCAN :
Trang 9● Phát hiện nhiễu: Một trong những điểm mạnh của DBSCAN là khả
năng phát hiện các điểm nhiễu (outliers) trong dữ liệu Các điểm nhiễu lànhững điểm không thuộc vào bất kỳ cụm nào và có thể là những dữ liệukhông hợp lý
○ Ví dụ :
■ Trong một tập dữ liệu về thời gian giao thông hàng ngày,nếu có một điểm dữ liệu đại diện cho một sự cố giao thôngbất thường hoặc tai nạn, DBSCAN có thể phát hiện điểmnày là một điểm nhiễu, bởi vì nó không thuộc vào bất kỳcụm hàng ngày nào
■ Trong dữ liệu về giá trị giao dịch tài chính, nếu xuất hiệnmột giao dịch không hợp lý hoặc gian lận, DBSCAN cóthể xác định giao dịch này là một điểm nhiễu
● Không cần xác định số lượng cụm trước: DBSCAN không yêu cầu bạn
phải xác định số lượng cụm trước Nó có khả năng xác định số cụm dựatrên dữ liệu và tham số epsilon và min_samples
○ Ví dụ:
■ Trong việc phân loại vùng địa lý dựa trên dữ liệu dân số,không có sẵn thông tin về số lượng vùng cần phân loại.DBSCAN có thể xác định số lượng vùng dựa trên dữ liệu
và các tham số epsilon và min_samples mà bạn cung cấp
● Xử lý cụm có hình dạng và kích thước khác nhau: DBSCAN có khả
năng xử lý các cụm có hình dạng và kích thước khác nhau một cách hiệuquả, do đó, nó là lựa chọn phù hợp cho nhiều tình huống thực tế
○ Ví dụ :
■ Trong việc phân cụm hình dạng của các đám mây điểmảnh từ máy quay không người lái, DBSCAN có thể xử lýcụm có hình dạng và kích thước khác nhau, bao gồm cảcụm hình tròn, hình bản đồ và cụm không đều
Trang 10● Phân biệt cụm và biên: DBSCAN phân biệt giữa các điểm thuộc vào
cụm và các điểm biên Điểm biên là các điểm nằm cạnh các cụm nhưngkhông đủ gần để được coi là thuộc vào cụm
○ Ví dụ:
■ Trong việc phân cụm dữ liệu khách hàng trực tuyến,DBSCAN có thể xác định rõ ràng điểm dữ liệu thuộc vàomột cụm chứa các khách hàng trung thành, trong khi cáckhách hàng biên là những người mua sắm một lần vàkhông thường xuyên
● Độ phức tạp thời gian và không gian tương đối thấp: So với một số
thuật toán phân cụm khác, DBSCAN có độ phức tạp thời gian và khônggian tương đối thấp
○ Ví dụ:
■ Trong ứng dụng thời gian thực như việc theo dõi cácphương tiện giao thông trên một mạng đô thị lớn, việc sửdụng DBSCAN có thể giúp xác định các cụm xe và điểmbiên một cách hiệu quả với độ phức tạp thời gian và khônggian thấp, cho phép theo dõi gần thời gian thực
4 NHƯỢC ĐIỂM CỦA DBSCAN :
● Đặt tham số epsilon và min_samples khó khăn: Để đạt được kết quả
tốt, bạn cần đặt các tham số epsilon và min_samples sao cho phù hợp với
dữ liệu Điều này có thể đòi hỏi nhiều thử nghiệm và tinh chỉnh
● Khó xử lý dữ liệu có mật độ biến đổi lớn: DBSCAN không phù hợp với
dữ liệu có mật độ biến đổi lớn trong các cụm Trong trường hợp này, cáccụm có thể bị nối lại hoặc không được phân cụm đúng cách
5 LIỆT KÊ CÁC CÂU HỎI LIÊN QUAN ĐẾN THUẬT TOÁN DBSCAN :
Trang 115.1 DBSCAN là gì và nó được sử dụng để làm gì trong lĩnh vực học máy và khai thác dữ liệu?
5.2 Nguyên tắc hoạt động của DBSCAN là gì? Làm thế nào nó phân cụm dữ liệu dựa trên mật độ?
5.3 Tham số epsilon trong DBSCAN đại diện cho điều gì và làm thế nào để chọn giá trị thích hợp cho nó?
5.4 Tham số min_samples trong DBSCAN đại diện cho điều gì và làm thế nào để chọn giá trị thích hợp cho nó?
5.5 Làm thế nào DBSCAN phát hiện các điểm nhiễu trong dữ liệu? Tại sao việc phát hiện nhiễu quan trọng?
5.6 DBSCAN có yêu cầu xác định số lượng cụm trước khi chạy thuật toán không? Nếu không, thì làm thế nào để nó xác định số lượng cụm? 5.7 Làm thế nào DBSCAN xử lý các cụm có hình dạng và kích thước khác nhau trong dữ liệu?
5.8 Tham số epsilon và min_samples ảnh hưởng như thế nào đến kết quả phân cụm của DBSCAN?
5.9 Làm thế nào để phân biệt giữa các điểm thuộc vào cụm và các điểm biên trong kết quả của DBSCAN?
5.10 DBSCAN có độ phức tạp thời gian và không gian như thế nào và tại sao
nó được coi là hiệu quả trong việc xử lý dữ liệu lớn?
5.11 Làm thế nào để tùy chỉnh DBSCAN cho các tình huống dữ liệu cụ thể hoặc tối ưu hóa hiệu suất của nó?
5.12 DBSCAN có những ưu điểm và hạn chế gì so với các thuật toán phân cụm khác?
5.13 Có những ứng dụng cụ thể nào của DBSCAN trong thực tế, và làm thế nào nó giúp giải quyết các vấn đề cụ thể trong những ứng dụng đó? 5.14 Trong trường hợp dữ liệu lớn hoặc phức tạp, làm thế nào để tối ưu hóa việc sử dụng DBSCAN?
Trang 125.15 Làm thế nào để chọn giá trị tối ưu cho tham số epsilon khi bạn không biết trước về cấu trúc của dữ liệu?
5.16 Tham số epsilon và min_samples có thể được điều chỉnh trong quá trình chạy DBSCAN hoặc chúng cần phải được xác định trước?
5.17 Làm thế nào để kiểm tra tính nhạy cảm của kết quả của DBSCAN đối với thay đổi của tham số epsilon?
5.18 Có các biến thể của DBSCAN như OPTICS (Ordering Points To Identify the Clustering Structure) và HDBSCAN (Hierarchical DBSCAN) Làm thế nào chúng khác biệt và khi nào bạn nên sử dụng chúng?
5.19 DBSCAN thường hoạt động tốt trên dữ liệu dạng hình non-đều và có hình dạng phức tạp Tuy nhiên, có những tình huống nào mà DBSCAN không phù hợp và bạn nên xem xét các thuật toán phân cụm khác? 5.20 Làm thế nào để tối ưu hóa hiệu suất của DBSCAN trong các trường hợp
dữ liệu lớn với số lượng điểm cực lớn?
5.21 Có các thư viện và framework phổ biến nào hỗ trợ triển khai DBSCAN trong các ngôn ngữ lập trình như Python hoặc R?
5.22 Trong việc sử dụng DBSCAN cho các ứng dụng thực tế, bạn cần lưu ý các vấn đề về bảo mật và quyền riêng tư Làm thế nào để giải quyết những vấn đề này khi áp dụng DBSCAN cho dữ liệu nhạy cảm?
6 KẾT LUẬN
● DBSCAN là một thuật toán phân cụm dựa trên mật độ mạnh mẽ và linhhoạt Nó có khả năng xác định số lượng cụm tự động, phát hiện điểmnhiễu và xử lý các cụm có hình dạng và kích thước khác nhau Mặc dù
có một số hạn chế và cần tinh chỉnh tham số, DBSCAN vẫn là một công
cụ quan trọng trong việc phân cụm và khai thác dữ liệu
Trang 137 ỨNG DỤNG THỰC TẾ :
Phát hiện Giao thông và Phân tích Đô thị: DBSCAN có thể được sử dụng đểphân tích dữ liệu giao thông, giúp xác định các khu vực tắc nghẽn hoặc cácđiểm nóng giao thông trong một thành phố
Thu Thập Dữ liệu
Nguồn Dữ liệu: Dữ liệu có thể được thu thập từ nhiều nguồn như
cảm biến giao thông, camera an ninh, GPS xe cộ, và dữ liệu từứng dụng di động
Loại Dữ liệu: Dữ liệu bao gồm thông tin về vị trí (tọa độ GPS),
thời gian (thời điểm cụ thể trong ngày), và có thể bao gồm cả tốc
độ xe cộ
Xử lý Dữ liệu
Làm sạch Dữ liệu: Loại bỏ nhiễu và dữ liệu không chính xác.
Chuẩn hóa Dữ liệu: Đồng bộ hóa định dạng và quy mô của dữ
liệu từ các nguồn khác nhau
Phân loại Điểm Dữ liệu:
Core Points: Điểm có ít nhất MinPts điểm hàngxóm trong phạm vi ε
Border Points: Điểm không đủ MinPts nhưng nằmgần Core Point
Noise Points: Điểm không phải Core Point hoặcBorder Point
Trang 14 Tạo Cụm: Từ mỗi Core Point, thuật toán mở rộng
cụm bằng cách thêm tất cả các điểm hàng xóm đủđiều kiện
Phân Tích và Diễn Giải
Xác định Các Điểm Nóng Giao Thông: Các cụm
lớn, chặt chẽ có thể chỉ ra các khu vực tắc nghẽnhoặc điểm nóng giao thông
Phân Tích Theo Thời Gian và Không Gian: So
sánh các cụm theo thời gian khác nhau trong ngàyhoặc các ngày khác nhau trong tuần để hiểu môhình giao thông
Ứng Dụng Thực Tiễn
Cải Thiện Quy Hoạch Đô Thị: Sử dụng thông tin
về các điểm nóng giao thông để cải thiện hệ thốngđường xá và quy hoạch giao thông
Hỗ trợ Quyết Định: Cung cấp dữ liệu cho quyết
định về đặt biển báo, đèn giao thông, hoặc thay đổichính sách giao thông
Cảnh báo và Hướng Dẫn Người Lái: Cảnh báo về
tắc nghẽn và hướng dẫn người lái xe tìm lộ trìnhthay thế
Trang 15Biểu đồ trên minh họa cách DBSCAN được áp dụng để phân loại dữ liệu giaothông:
Các điểm lớn biểu thị các Core Points (điểm lõi), nơi có ít nhất MinPtsđiểm hàng xóm trong phạm vi ε
Các điểm nhỏ đại diện cho các Border Points (điểm biên), không đủMinPts nhưng nằm gần Core Point
Các điểm màu đen là Noise Points (điểm nhiễu), không phải là CorePoint hoặc Border Point
Các cụm khác nhau được mô tả bằng các màu sắc khác nhau Cụ thể, mỗi cụm
có thể biểu thị một khu vực tắc nghẽn hoặc điểm nóng giao thông trong thànhphố, giúp trong việc phân tích và quy hoạch giao thông đô thị
CHƯƠNG 3: THU NHẬP DỮ LIỆU
1 Đặc tả dữ liệu :
a Nguồn : Kaggle
Trang 16b Tên dữ liệu : marketing_campaign.csv
c Ý nghĩa từng cột dữ liệu :
● ID: Một số nguyên đại diện cho ID duy nhất của mỗi khách hàng.
● Year_Birth: Một số nguyên biểu thị năm sinh của khách hàng.
● Education: Chuỗi biểu thị trình độ học vấn của khách hàng, có thể là
một trong các giá trị: 'PhD', 'Master', 'Graduation', '2n Cycle', 'Basic'
● Marital_Status: Chuỗi biểu thị tình trạng hôn nhân của khách hàng, có
thể là một trong các giá trị: 'Single', 'Together', 'Married', 'Divorced','Widow', 'Alone'
● Income: Một số nguyên biểu thị thu nhập của khách hàng.
● Kidhome: Một số nguyên biểu thị số trẻ em trong gia đình của khách
● Recency: Một số nguyên biểu thị số ngày kể từ lần mua hàng gần nhất
của khách hàng đến ngày cuối cùng trong tập dữ liệu
● MntWines: Một số nguyên biểu thị số tiền chi tiêu trên rượu vang.
● MntFruits: Một số nguyên biểu thị số tiền chi tiêu trên hoa quả.
● MntMeatProducts: Một số nguyên biểu thị số tiền chi tiêu trên sản
Trang 17● NumDealsPurchases: Một số nguyên biểu thị số lần mua hàng trong các
giao dịch khuyến mãi
● NumWebPurchases: Một số nguyên biểu thị số lần mua hàng trực
tuyến qua trang web
● NumCatalogPurchases: Một số nguyên biểu thị số lần mua hàng thông
qua việc đặt hàng từ các catalog
● NumStorePurchases: Một số nguyên biểu thị số lần mua hàng tại cửa
hàng
● NumWebVisitsMonth: Một số nguyên biểu thị số lượt truy cập trang
web trong một tháng
● AcceptedCmp3, AcceptedCmp4 AcceptedCmp5 AcceptedCmp1, , ,
AcceptedCmp2: Các số nguyên biểu thị việc chấp nhận các chiến dịch
tiếp thị 3, 4, 5, 1, 2 tương ứng
● Complain: Một số nguyên biểu thị xem khách hàng có khiếu nại hay
không (1 nếu có, 0 nếu không)
● Z_CostContact: Một số nguyên biểu thị chi phí liên lạc (cố định).
● Z_Revenue: Một số nguyên biểu thị doanh thu liên lạc (cố định).
● Response: Một số nguyên biểu thị phản ứng của khách hàng (1 nếu có, 0
nếu không)
CHƯƠNG 4: TIỀN XỬ LÝ DỮ LIỆU
1 Kiểm tra dữ liệu NaN
a Code :
fdata.isna( )
b Kết Qủa:
Trang 182 Kiểm tra dữ liệu rỗng :
Trang 194 Loại bỏ tất cả các dòng có xuất hiện bất cứ NaN :
a Code :
fdata.dropna(inplace=True, axis=0, how="any")fdata.isna().any()
b Kết quả :
Trang 205 Chuẩn hóa dữ liệu (ví dụ: chuyển đổi đơn vị thu nhập) :
a Code :
fdata[ 'Income' ] = fdata[ 'Income' ] * 1000 # Chuyển đổi thu nhập thành đơn vị VND
b Kết quả :
Trang 216 Xử lý dữ liệu dạng văn bản (ví dụ: mã hóa trình độ học vấn) :
Trang 227 Trực quan hoá biểu đồ dữ liệu :