Nhóm cũng đã thử biểu diễn biểu diễn dữ liệu dưới dạng 2 chiều với 2 features hay 3 chiều với 3 features thì kết quả ra được cũng khá là tốt khi các điểm dữ liệu dường như không nằm một
Trang 1TIỂU LUẬN Môn học: Khoa Học Dữ Liệu
Giảng viên: Trương Việt Phương
Mã lớp học phần: 22C1INF50905916 Khóa – Lớp: K46- FNC07
Thành Viên: Phạm Lê Thanh Ngân- 31201022664
Nguyễn Thanh Việt- 31201026014 Nguyễn Như Quang Lâm- 31201022348 Phan Quốc Minh- 31201022446
Lê Minh Thư- 31201020972
TP Hồ Chí Minh, ngày 16 tháng 12 năm 2022
Trang 2MỤC LỤC
1 Chọn bộ dữ liệu cần phân tích, mô tả bộ dữ liệu, mục tiêu phân tích 3
a Giới thiệu về bộ dữ liệu 3
b Mô tả về dữ liệu 3
2 Tiền xử lý dữ liệu 5
3 Khai thác dữ liệu 8
Tiến hành phân cụm 8
Tiến hành dự báo 15
4 Kết luận 22
Trang 31 Chọn bộ dữ liệu cần phân tích, mô tả bộ dữ liệu, mục tiêu phân tích.
a Giới thiệu về bộ dữ liệu Ngày nay, dữ liệu được xem như là mỏ vàng trong thời đại số khi từ đó các doanh nghiệp có thể tạo thêm được rất nhiều doanh thu Nguồn doanh thu này có thể đến từ việc khai phá dữ liệu giúp doanh nghiệp hiểu người dùng hơn
và đưa ra những chiến lược kinh doanh hoặc đáp ứng được chính xác nhu cầu
và thị hiếu của người dùng Đối với lĩnh vực tài chính ngân hàng - tài chính thì việc phân loại nhóm khách hàng dựa trên đặc tính và hành vi cũng có thể giúp các ngân hàng đưa vào mô hình tính điểm tín dụng nhằm đưa ra các hạn mức chính xác nhất để có thể tối ưu được việc cho vay đáp ứng người dùng và giảm thiểu tối đa rủi ro.
Vì dữ liệu liên quan đến tài chính người dùng rất khó để tiếp cận nên nhóm đã sử dụng bộ dữ liệu có sẵn và được đăng tải trên trang web Kaggle Dữ liệu chưa thông tin về khách hàng sử dụng thẻ tín dụng Thông tin có thể sử dụng cho nhiều mục đích khác nhau như nhận dạng độ trung thành của người dùng, phân loại khách hàng, phân chia nhóm để chạy marketing và các mục tiêu khác.
b Mô tả về dữ liệu
Dữ liệu sẽ có 660 quan sát tương ứng cho từng khách hàng sử dụng thẻ
và 7 đặc tính mô tả hành vi người dùng, trong đó bao gồm 2 đặc tính là số thứ
tự và mã định danh cho từng khách hàng và 5 đặc tính khác mô tả hành vi dưới dạng số Mô tả cho các cột thể hiện cho từng đặc trưng của người dùng được khai thác trong bộ dữ liệu bao gồm:
- Sl_No: Số thứ tự của chủ sở hữu credit card.
- Customer Key: Mã định danh của chủ sở hữu credit card.
- AvgCreditLimit: Hạn mức thẻ tín dụng trung bình cho khách hàng
- TotalCreditCards: Tổng số thẻ tín dụng mà khách hàng sở hữu
- Totalvisitsbank: Tổng số lượt đến ngân hàng của khách hàng
- Totalvisitsonline: Tổng số lượt truy cập trực tuyến của Khách hàng Ngân hàng
- Totalcallsmade: Tổng số cuộc gọi được thực hiện bởi khách hàng đến ngân hàng
Thống kê mô tả cả mô hình:
Trang 4- Thêm vào đó thì dữ liệu được làm việc khá sạch khi mà dữ liệu không
có missing values Ngoài ra, bộ dữ liệu cũng không có các biến danh mục.
- Một đặc điểm khác của bộ dữ liệu vừa là nhược điểm cũng là ưu điểm
đó là việc số lượng đặc tính khá ít với chỉ 5 đặc tính Điều này sẽ giúp cho mô hình học nhanh hơn, tuy nhiên vì quá ít nên đôi khi sẽ làm cho
mô hình không chính xác hoặc không tạo ra nhiều kiến thức mới trong quá trình và kết quả học của mô hình và đôi khi cũng không phân cụm tốt.
- Dù rằng các dữ liệu khá sạch nhưng vẫn có sự khác biệt giá trị giữa các biến là rất lớn nếu so biến Avg_Credit_Limit và các biến khác.
Nhóm cũng đã thử biểu diễn biểu diễn dữ liệu dưới dạng 2 chiều với 2 features hay 3 chiều với 3 features thì kết quả ra được cũng khá là tốt khi các điểm dữ liệu dường như không nằm một cách ngẫu nhiên mà hơi tập trung theo từng cụm.
Trang 62 Tiền xử lý dữ liệu Như đã được đề cập về ưu và nhược điểm ở phần trên thì nhóm có đề xuất một số các phương án để xử lý dữ liệu như sau để có thể chạy có được kết quả tốt nhất:
- Đối với các đặc tính mang tính định danh người dùng, không có ý nghĩa đối với mô hình thì nhóm sẽ loại bỏ ra khỏi việc chạy dữ liệu Đôi khi việc đưa những dữ liệu này có thể đem lại những kết quả bất ngờ khi ban đầu nhóm đưa tất cả dữ liệu và đặc tính và mã định danh vào mô hình t-nse thì phân cụm ra được 4 cụm, sau đó bỏ ra thì chỉ còn 3 cụm.
Dù tạo ra được những cụm mới, tuy nhiên đối với ý nghĩa thực tế và trực quan thì điều này là hoàn toàn không đúng.
- Giá trị tuyệt đối giữa các đặc tính của bộ dữ liệu hiện đang chênh lệch khá là nhiều khi mà một số biến giá trị chỉ khoảng từ 0 đến 1 hoặc 5 thì
có biến lại dao động giá trị từ 3000 - 200.000 Đây được xem là một khoảng chênh lệch rất lớn Nhóm đặt ra giả thuyết là sẽ có sự khác biệt khi chạy mô hình giữa việc không chuẩn hoá dữ liệu và đã chuẩn hoá dữ liệu Về việc chuẩn hoá dữ liệu, nhóm đề xuất việc chuẩn hoá với trung bình bằng 0 và độ lệch chuẩn bằng 1 Lý do cho việc nhóm chọn phương pháp này là vì khi đó phần lớn dữ liệu sẽ chỉ nằm trong khoảng -2 đến 2, các giá trị đặc biệt sẽ nằm ngoài vùng này Một phần nữa là việc sử dụng chuẩn hoá dữ liệu như thế này sẽ tránh việc bộ dữ liệu sẽ nằm quá gần 0 nếu trong trường hợp trong một đặc tính nào đó có một dữ liệu nằm quá xa các điểm dữ liệu còn lại.
Kết quả của bộ dữ liệu sau khi nhóm thực hiện chuẩn hoá dữ liệu được trình bày dưới bảng sau:
Có thể thấy dù rằng đã chuẩn hoá nhưng các biến vẫn có độ phân tán khá lớn Tuy nhiên sự chênh lệch giá trị giữa các biến cũng đã giảm thiểu một cách đáng kể.
- Ngoài việc xử lý dữ liệu như trên thì nhóm cũng muốn kết hợp phương pháp giảm số chiều là Principal Components Analysis (PCA) vào trong việc xử lý dữ liệu để có thể giảm được số chiều mà mất ít thông tin nhất trong mô hình nhằm thử xem khi giảm số chiều thì sự tách biệt giữa các điểm dữ liệu có tăng lên và tăng được tốc độ tính toán hay không Dù
Trang 7rằng bộ dữ liệu là khá ít các biến đầu vào khi chỉ với 5 đặc tính được đưa vào và 660 điểm dữ liệu nhưng nếu số lượng đặc tính tăng lên thì gần như việc sử dụng PCA sẽ giảm được một lượng dữ liệu đáng kể, từ
đó sẽ giảm được thời gian xử lý.
Thông qua kết quả chạy được khi xử dụng PCA thì nhóm chọn chạy phân cụm với 2 bộ dữ liệu là chọn số components bằng 2.
Trang 8Tổng hợp lại nhóm sẽ thực hiện phân cụm cho bộ dữ liệu theo 3 loại xử
lý dữ liệu như sau:
+ Chọn các biến sẽ đưa vào mô hình -> chạy phân cụm + Chọn các biến sẽ đưa vào mô hình -> chuẩn hoá dữ liệu -> chạy phân cụm.
+ Chọn các biến sẽ đưa vào mô hình -> chuẩn hoá dữ liệu -> giảm số chiều và chọn 2 components -> chạy phân cụm.
3 Khai thác dữ liệu.
a Tiến hành phân cụm Trong nội dung bài tiểu luận này, nhóm chọn thuật toán K-Means để tiến hành phân cụm Trong 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ác cụm (cluster) khác nhau sao cho dữ liệu trong cùng một cụm có tính chất giống nhau (2) Thuật toán này có một vài hạn chế, trong đó việc không không thể xác định được số k - tức là số cụm của bộ dữ liệu là bao nhiêu, vì vậy nhóm sẽ dựa vào hệ số Silhouette để xác định được số cụm của hệ Hệ số Silhouette của kmeans là thước đo mức độ giống nhau của một điểm dữ liệu trong cụm (sự gắn kết) so với các cụm khác (sự phân tách) Hệ số được tính toán như sau:
Chọn một loạt các giá trị của k (giả sử từ 1 đến 10).
Vẽ hệ số Silhouette cho từng giá trị của K.
Phương trình tính toán hệ số Silhouette cho một điểm dữ liệu cụ thể:
Trong đó:
S(i) là hệ số Silhouette của điểm dữ liệu i.
a(i) là khoảng cách trung bình giữa i và tất cả các điểm dữ liệu khác trong cụm mà i thuộc về.
b(i) là khoảng cách trung bình từ i đến tất cả các cụm mà i không thuộc về.
Và sau đó hệ số Silhouette của từng cụm sẽ được tính bằng trung bình Silhouette của từng cụm.
Thông thường dựa vào thông tin từ hệ số Silhouette theo từng dữ liệu có thể xem xét và đánh giá độ phân tán hay tập của cụm và việc các cụm có nằm chồng lấn lên nhau hay không Tuy nhiên đối với phần mềm Orange thì việc tính toán hệ số Silhouette cho từng điểm dữ liệu chỉ giới hạn đối với các bộ dữ liệu dưới 5000 quan sát còn từ 5000 dòng dữ liệu trở lên thì thuật toán sẽ bỏ qua việc tính toán Silhouette cho từng điểm dữ liệu mà tính cho toàn bộ cụm.
Vì vậy để xét mô hình cho ra kết quả chỉ số Silhouette cho từng hệ số k xác
Trang 9định thì giá trị k nào có hệ số Silhouette cao nhất thì ta sẽ chọn số cụm tương ứng trong mô hình đó.
Đối với chọn vị trí đầu tiên của trung tâm cụm thì nhóm sẽ sử dụng KMeans++ Phương pháp này là mô hình sẽ chỉ định trọng tâm đầu tiên cho vị trí của một điểm dữ liệu được chọn ngẫu nhiên, sau đó chọn các trọng tâm tiếp theo từ các điểm dữ liệu còn lại dựa trên trên một xác suất tỷ lệ với bình phương khoảng cách từ tâm hiện tại gần nhất của một điểm nhất định Hiệu ứng này giúp đẩy các trọng tâm càng xa nhau càng tốt, bao phủ càng nhiều không gian dữ liệu bị chiếm dụng càng tốt từ quá trình khởi tạo.
Như đã đề cập ở phần trước thì nhóm sẽ chạy K-means cho 3 loại xử lý.
- Đối với việc chạy k-Means cho dữ liệu chỉ bỏ đi missing values thì ta có kết quả như hình bên dưới Nhóm cho chạy số lượng cụm từ 2 đến 5 Có thể thấy giá trị tốt nhất là ở k = 3 với giá trị là 0.516 Dựa vào kết quả nhận được ở giá trị Silhouette và biểu đồ trực quan hoá dữ liệu, đối với giá trị k = 3 thì các dữ liệu rất ít nằm lên nhau và có một sự phân bố nằm chung nhóm với nhau một cách rõ ràng.
Trang 10Trang 11
- Trong bộ dữ liệu được xử lý là chuẩn hoá thì nhóm nhận thấy kết quả ra
là hoàn toàn giống với bộ dữ liệu không chuẩn hoá Tuy rằng giá trị Silhouette là giống nhau, tuy nhiên khi ta biểu diễn ra Silhouette thì kết quả cho ra tốt hơn nhiều hơn nhiều khi chưa chuẩn hóa dữ liệu, không xảy ra trường hợp điểm Silhouette âm Khi trực quan hoá dữ liệu cũng
có thể thấy được sự phân chia cụm là rõ rệt và không có điểm dữ liệu của nhóm này chồng lên nhóm khác.
Trang 12Trang 13
- Đối với bộ dữ liệu sau khi chuẩn hoá có xử dụng thêm giảm số chiều với
số components = 2 thì mô hình vẫn cho ra k = 3, tuy không có sự thay đổi về sự phân cụm tuy nhiên lại tốt hơn nhiều khi hệ số Silhouette cho
ra cao hơn nhiều khi không giảm số chiều dữ liệu Dựa trên số điểm này cho thấy khi giảm số chiều thì việc phân chia cụm là rõ ràng, tốt hơn khi
mà các cụm có sự tách rời và tập trung cao hơn khi không giảm số chiều Các điểm dữ liệu đã phân ra và hội tụ theo trung tâm của từng cụm một cách rõ ràng hơn.
Trang 14Trang 15
- Bổ sung thêm khi chạy bộ dữ liệu với thuật toán t-NSE Ngoài ra, bên cạnh việc phân cụm bằng K-Means hay giảm số chiều theo phương pháp tuyến tính như PCA thì nhóm cũng đã thử sử dụng phương pháp giảm số chiều phi tuyến tính là t-NSE một phương pháp được sử dụng chính để trực quan hoá dữ liệu nhằm xem thử khi phân ra số cụm thì có khác biệt gì với việc dùng PCA hay đơn thuần dùng k-Means hay không thì nhóm nhận được kết quả cũng khá tương tự với các mô hình khác.
b Tiến hành dự báo Mục tiêu của phần tiến hành dự báo là dựa trên kết quả phân cụm thì khi mà chúng ta truyền vào một dữ liệu cho mô hình phân lớp thì mô hình có phân lớp được dữ liệu mô hình phân ra đúng lớp mà phần mô hình k-means đã đưa ra hay không Để làm rõ hơn ý tưởng thì nếu điểm dữ liệu mới được đưa vào thuộc cụm A, nhưng mô hình phân lớp lại cho ra kết quả là B thì việc phân cụm
là chưa tốt và ngược lại.
Quy trình sẽ bao gồm đưa bộ dữ liệu đã được dán nhãn sau khi phân cụm Sau
đó, dựa trên bộ dữ liệu đã cho ta tách ra làm tập train và test với tỉ lệ 90% và 10% tương ứng Trong đó, nhãn của bộ dữ liệu là phần đầu ra của mô hình k- means Tiếp đến mô hình phân lớp được nhóm chọn trong bài tiểu luận là mô hình Logistic Regression - một trong những mô hình cổ điển trong bài toán phân lớp Sau đó, kết quả sẽ được xem xét tính chính xác khi phân lớp theo Precision và Recall scores để đánh giá Bên cạnh đó, nhóm cũng sẽ đưa thêm phần thời gian chạy tính toán vào để xem ưu thế của từng loại xử lý dữ liệu.
Trang 16Precision = True Positive
True Positive + False Positive
Recall = True Positive
True Positive + False Negative
Tham số và phương pháp tính của Logistic regression:
a Kết quả cho bộ dữ liệu không chuẩn hoá Dựa vào các kết quả chạy được đính kèm ta có thể thấy được độ chính xác của
mô hình là khá cao khi cả Precision và Recall đều đạt ở mức 0.996 Ở cách xử
lý này thì có một ưu điểm là chỉ cần thêm dữ liệu vào mà không phải thông qua nhiều bước xử lý dữ liệu.
Trang 17Với kết quả chạy kết quả cao khi chạy mô hình như vậy thì có thể thấy được việc phân cụm là vô cùng tốt dù đang sử dụng dữ liệu thô Qua đó, có thể hình dung được được các biến có sự đóng góp khá lớn trong mô hình Dưới đây
là bảng kết quả khi nhóm sử dụng phương pháp để đo độ ảnh hưởng của các biến lên mô hình Nhìn chung thì có 4 trên 5 biến là có sự ảnh hưởng khá nhiều như biến Total_Credit_Cards, Total_visits_bank, Total_calls_made, Total_visits_online trong khi đó biến Avg_Credit_Limit lại có sự ảnh hưởng thấp nhất và chỉ số cũng thấp hơn nhiều nếu so với các biến còn lại.
Trang 18b Kết quả cho bộ dữ liệu được chuẩn hoá Khác với việc cho ra cùng kết quả ở hệ số Silhouette như ở phần mô hình k- means Mô hình phân lớp cho ra kết quả tốt hơn hẳn khi đạt mức 0.998, một con số rất cao Điều này cho thấy khi chuẩn hoá dữ liệu thì việc phân lớp tốt hơn dựa trên những đặc tính dữ liệu Từ đó việc phân cụm cho ra kết quả rõ ràng hơn Một mặt khác là khi chuẩn hoá dữ liệu thì việc chạy mô hình phân lớp cũng như là tính toán độ chính xác nhanh hơn một cách đáng kể.
Trang 19Đối với việc xem xét các yếu tố ảnh hưởng đến mô hình phân lớp như thế nào thì nhóm nhận thấy nếu so với bộ dữ liệu với cách xử lý trước thì thứ tự của các biến ảnh hưởng là không khác tuy nhiên nếu so về giá trị của các biến ảnh hưởng thì ta thấy được mức độ ảnh hưởng các biến có sự tăng nhẹ, khá giống như kết quả của việc chạy mô hình phân lớp khi so bộ dữ liệu với 2 cách khác nhau.
Trang 20c Kết quả cho bộ dữ liệu được chuẩn hoá PCA = 2
Mô hình cho ra kết quả cũng rất tốt khi đạt mức 0.994, tuy nhiên lại thấp hơn khi so với với mô hình chạy dữ liệu không giảm số chiều Điều này có thể do nhiều nguyên nhân khác nhau Bên cạnh đó, vì khi chạy mô hình phân lớp cũng như là test và tính độ chính xác, mô hình chỉ cần chạy 2 biến PC1 và PC2 nên tốc độ nhanh một cách đáng kể nếu so với 2 mô hình còn lại.
Trang 21Khác với 2 cách xử lý trên dù có chuẩn hoá thì cũng không thay đổi số chiều của dữ liệu, tuy nhiên khi sử dụng PCA thì mô hình lại giảm số chiều của
dữ liệu từ đó sẽ mất đi việc làm rõ là biến nào có ảnh hưởng như thế nào đến
mô hình Chỉ có thể thấy được khi phân tích thì chỉ số PCA1 là có ảnh hưởng lớn nhất và PCA2 là có sự ảnh hưởng thấp nhất đến mô hình.
Trang 224 Kết luận Nhóm không chọn sử dụng quá nhiều mô hình để so sánh sự tốt hay xấu của mô hình mà nhóm muốn tập trung vào sự ảnh hưởng của việc xử lý dữ liệu lên kết quả nên nhóm đã chia bộ dữ liệu theo nhiều phương pháp xử lý khác nhau.
Bộ dữ liệu này gần như là đã được xử lý rất tốt trước khi được đăng tải lên internet do đó việc phân chia cụm cũng như là chạy phân lớp gần như không gặp khó khăn và đạt độ chính xác gần 100% Qua cũng giúp cho chúng
ta thấy được tầm quan trọng của việc xử lý dữ liệu đầu vào là quan trọng như thế nào Theo thống kê từ các diễn đàn và các bài báo khoa học thì trong việc phân tích và chạy mô hình thì các nhà khoa học dữ liệu phải dành ra đến 80% thời gian để xử lý dữ liệu và chỉ 20% thời gian là dành cho việc xây dựng và chạy mô hình Có một thuật ngữ mà mọi người hay sử dụng đó là “garbage in garbage out” có nghĩa là nếu đầu vào đã không sử dụng được thì các giá trị đầu
ra cũng không có giá trị.
Điểm đặc biệt của bài luận này mà nhóm cảm thấy khá hứng thú đó là
dù rằng việc sử dụng thêm giảm số chiều dữ liệu bằng thuật toán PCA đã giúp các dữ liệu tách rời và tập trung vào trung tâm của mỗi cụm hơn thông qua hệ
số Silhouette là cao nhất trong 3 cách xử lý và chạy thuật toán k-Means và khi trực quan hoá dữ liệu nhưng khi chạy phân cụm để kiểm tra lại thì độ chính xác lại thấp hơn khi chưa giảm số chiều và xử lý dù thấp hơn chỉ rơi vào 0,2-0,4% Tuy nhiên đây cũng là một điểm đáng lưu ý.
Cũng thông qua việc phân tích ta có thể thấy được các biến mang tính hành vi của người dùng như số lượng thẻ mà người dùng nắm giữ, số lượng