- Thuộc tính này nhằm xác định tình trạng tín dụng có bị vỡ nợ hay không của các đối tượng được thực hiện khảo sát... - Thuộc tính này nhằm xác định số ngày đã trôi qua kể từ lần liên hệ
Trang 1Đại học Kinh Tế TP.HCM
KHOA QUẢN TRỊ
⁂⁂⁂
BỘ MÔN KHOA HỌC DỮ LIỆU
ĐỀ TÀI: PHÂN TÍCH VÀ DỰ BÁO BỘ DỮ LIỆU “BANKING MARKETING”
Giảng viên hướng dẫn: Trương Việt Phương
Sinh viên thực hiện:
Lớp: KHDL_S2
TP.HCM - Năm 2021
Trang 2LỜI CẢM ƠN
Để hoàn thành tiểu luận này, em xin gửi lời cảm ơn chân thành đến:
Giảng viên bộ môn Khoa học dữ liệu - Thầy Trương Việt Phương đã giảng dạy tận tình, chi tiết để em có đủ kiến thức và vận dụng chúng vào bài tiểu luận này
Ban giám hiệu trường Đại học Kinh Tế Thành phố Hồ Chí Minh vì đã tạo điều kiện về
cơ sở vật chất với hệ thống thư viện hiện đại, đa dạng các loại sách, tài liệu thuận lợi cho việc tìm kiếm, nghiên cứu thông tin
Do chưa có nhiều kinh nghiệm làm để tài cũng như những hạn chế về kiến thức, trong bài tiểu luận chắc chắn sẽ không tránh khỏi những thiếu sót Rất mong nhận được sự nhận xét, ý kiến đóng góp, phê bình từ phía thầy để bài tiểu luận được hoàn thiện hơn
Lời cuối cùng, em xin kính chúc thầy nhiều sức khỏe, thành công và hạnh phúc
Trang 3MỤC LỤC
CHƯƠNG I: MỞ ĐẦU 1
1.1 Chọn bộ dữ liệu: 1
1.2 Mô tả bộ dữ liệu: 1
1.2.1 Biến đầu vào (Input Variables): 1
1.2.2 Biến đầu ra (Output Variable): 6
1.3 Mục tiêu phân tích: 6
CHƯƠNG II: NỘI DUNG 6
2.1 Tiền xử lý bộ dữ liệu: 6
2.1.1 “Role” của các thuộc tính: 6
2.1.2 “Missing Value” trong bộ dữ liệu: 8
2.2 Khai thác bộ dữ liệu: 10
2.2.1 Phân cụm dữ liệu: 10
2.2.2 Trích xuất dữ liệu: 15
2.2.3 Phân lớp dữ liệu: 17
2.2.4 Dự báo: 21
TÀI LIỆU THAM KHẢO 22
Trang 4
CHƯƠNG I: MỞ ĐẦU
1.1 Chọn bộ dữ liệu:
Dữ liệu “ Banking Marketing “ này liên quan đến các chiến dịch tiếp thị trực tiếp của một tổ chức ngân hàng tại Bồ Đào Nha Các chiến dịch tiếp thị này sẽ đượctính toán dựa trên các cuộc gọi điện thoại đã thực hiện Thông thường, với một khách hàng thì sẽ có rất nhiều liên hệ, để truy cập và tìm hiểu xem họ có đăng ký (‘yes’) hay không đăng ký (‘no’) sản phẩm của ngân hàng hay không – sản phẩm ở đây chính là việc đăng ký chính sách tiền gửi có kỳ hạn
1.2 Mô tả bộ dữ liệu:
1.2.1 Biến đầu vào (Input Variables):
1.2.1.1 Thuộc tính dữ liệu khách hàng (Bank Client Data):
Quản trị viên (Admin)
Công nhân phổ thông (Blue-collar)
Chủ doanh nghiệp (Entrepreneur)
Người giúp việc nhà (Housemaid)
Nhà quản lý (Management)
Tự do (Self-employed)
Dịch vụ (Services)
Học sinh (Student)
Kỹ thuật viên (Technician)
Đã nghỉ hưu (Retired)
Thất nghiệp (Unemployed)
Chưa xác định (Unknown)
Trang 5c) Tình trạng hôn nhân (Marital):
6 năm tiểu học (Basic.6y)
Tốt nghiệp Trung học
cơ sở (Basic.9y)
Tốt ngiệp Trung học phổ thông (High school)
Thất học (Illiterate)
Đào tạo nghiệp vụ (Professional Course)
Tốt nghiệp đại học (University Degree)
Chưa xác định (Unknown)
e) Tình trạng tín dụng bị vỡ nợ (Default):
- Được định dạng “Categorical”
- Thuộc tính này nhằm xác định tình trạng tín dụng có bị vỡ nợ hay không của các đối tượng được thực hiện khảo sát Trong đó, các tình trạng bao gồm:
Có (Yes)
Không (No)
Trang 6 Điện thoại di động (Cellular)
Điện thoại dây (Telephone)
Trang 7 Đơn vị của khoảng thời gian: Giây (s)
Thuộc tính này ảnh hưởng nhiều đến biến đầu ra ( Nếu ‘Duration’ mang giá trị là 0 thì biến đầu ra ‘y’=0) Khi cuộc gọi được thực hiện xong, ‘y’ sẽ được xác định
Thuộc tính này chỉ nên được đưa vào cho mục đích kiểm chuẩn Còn nếu như cho mục đích dự đoán thực tế thì thuộc tính này nên được loại bỏ
1.2.1.3 Các thuộc tính khác (Other Attributes):
Trang 8- Thuộc tính này nhằm xác định số ngày đã trôi qua kể từ lần liên hệ cuối được thực hiện trong chiến dịch trước của các đối tượng được thực hiện khảo sát.
Nếu thuộc tính này cho ra giá trị 999 nghĩa là đối tượng này chưa được liên hệ trước đây
Không tồn tại (Nonexistent)
1.2.1.4 Thuộc tính bối cảnh kinh tế, xã hội (Social and Economic Context Attributes):
a) Tỷ lệ thay đổi việc làm (Emp.var.rate):
- Được định dạng “Numeric”, giá trị này được chỉ báo hàng quý
- Thuộc tính này nhằm xác định tỷ lệ thay đổi việc làm của các đối tượng được thực hiện khảo sát
b) Chỉ số giá tiêu dùng (Cons.price.idx):
- Được định dạng “Numeric”, giá trị này được chỉ báo hàng tháng
- Thuộc tính này nhằm xác định chỉ số giá tiêu dùng của các đối tượng được thực hiện khảo sát
c) Chỉ số niềm tin người tiêu dùng (Cons.conf.idx):
- Được định dạng “Numeric”, giá trị này được chỉ báo hàng tháng
Trang 9- Thuộc tính này nhằm xác định chỉ số niềm tin tiêu dùng của các đối tượng được thực hiện khảo sát.
d) Lãi suất 3 tháng Euribor (Euribor3m):
- Được định dạng “Numeric”, giá trị này được chỉ báo hàng ngày
- Thuộc tính này nhằm xác định lãi suất 3 tháng Euribor của các đối tượng được thực hiện khảo sát
e) Số lượng nhân công (Nr.employed):
- Được định dạng “Numeric”, giá trị này được chỉ báo hàng quý
- Thuộc tính này nhằm xác định số lượng nhân công của các đối tượng được thực hiện khảo sát
1.2.2 Biến đầu ra (Output Variable):
- Biến ‘y’: Khách hàng có quyết định đăng ký gửi tiền lãi có kỳ hạn hay không?
- Nhị phân: ‘Yes’, ‘No’
2.1.1 “Role” của các thuộc tính:
Từ bộ dữ liệu “Banking Marketing” ban đầu, ta có được “Type” và “Role” của 21 thuộc tính như sau (Hình 2.1.1.a,b):
Trang 10Đến đây, ta thực hiện quá trình xử lý bằng cách điều chỉnh các thuộc tính sang
“Type” và “Role” sao cho hợp lý Cụ thể:
Vì ở đây ta thực hiện xử lý dữ liệu nhằm mục đích dự báo cho biến đầu ra là y, cho nên ta sẽ chuyển “Role” của thuộc tính y từ Feature => Target.
Những thuộc tính duration, campaign, pdays, previous không có yếu tố ảnh hưởng đến việc dự báo kết quả đầu ra y = có đồng ý đăng ký gửi tiền lãi có kỳ hạn
hay không, cho nên những thuộc tính này ta sẽ chuyển “Role” của chúng từ
Kết quả ta thu được:
Hình 2.1.1.a: Type và Role của các thuộc
tính Hình 2.1.1.b: Type và Role của các thuộc
tính
Trang 11Hình 2.1.1.c: Kết quả xử lý “Role” của các biến thuộc tính
2.1.2 “Missing Value” trong bộ dữ liệu:
Hình 2.1.2.a: Chuỗi thực hiện tiền xử lý dữ liệu trên Orange
Trang 12Để xử lý các mẫu có “Missing Value”, ta tiến hành thực hiện Preprocess, chọn
Impute Missing Values, sau đó chọn Average/Most frequent nhằm mục đích
điền những mẫu này bằng các giá trị trung bình hoặc các giá trị có tần số xuất hiện thường xuyên Sau khi thực hiện, ta có kết quả như sau:
Hình 2.1.2.b: Qúa trình thực hiện Preprocess
Hình 2.1.2.c: Kết quả tiền xử lý dữ liệu
Trang 13Kết quả thu được ta tiến hành lưu giữ ở định dạng Excel, để từ đó ta tiếp tục lấy dữ liệu kết quả này tiến hành phân cụm và phân lớp.
2.2 Khai thác bộ dữ liệu:
2.2.1 Phân cụm dữ liệu:
Sau khi xử lý xong và định dạng ở excel, ta tiếp tục phân cụm dữ liệu từ dữ liệu đã được tiền xử lý trước đó, cụ thể:
Hình 2.2.1.a: Chuỗi thực hiện quá trình phân cụm trên Orange
2.2.1.1 Phân cụm phân cấp (Hierarchical Clustering):
Ta tiến hành phân cụm phân cấp dựa vào thuật toán Hierarchical Clustering
Sau khi chạy dữ liệu, ta có:
Trang 14Hình 2.2.1.b: Kết quả phân cụm phân cấp trên Orange
Ở đây, tính liên kết giữa các đối tượng (Linkage), ta sẽ sử dụng phương pháp tính toán khoảng cách trung bình (Average) Kết quả cho thấy được ta nên chia
toàn bộ các mẫu trong bộ dữ liệu ra làm 2 phân cụm
Trang 15Nguyên tắc: Gía trị Silhouette nằm ở trong khoảng từ -1 đến 1, nếu như giá trị này càng lớn (tức càng về gần 1) thì kết quả phân cụm sẽ càng tốt (càng đáng tin cậy).
Ở đây ta có thể thấy khi phân ra là 2 cụm, với cụm 1 (màu xanh) các giá trị
Hình 2.2.1.c,d,e: Bảng Silhouette Plot cho 2 phân cụm
phân cấp
Trang 16cụm thứ 2 (màu đỏ) thì giá trị này sẽ chạy trong khoảng từ 0,45 cho đến 0,75
Những khoảng này đều nằm ở trong khoảng dương và dần về gần giá trị 1, vì vậy kết quả phân cụm như thế này là đáng tin cậy
2.2.1.2 Phân cụm phân hoạch (Partitioning Clustering):
Ta tiến hành phân cụm phân hoạch dựa vào thuật toán K-means Sau khi chạy dữ liệu, ta
Vì vậy ta sẽ lựa chọn phương án phân ra làm 2 cụm
Đồng thời phân tích kỹ hơn về giá trị Silhouette của từng cụm của phương án chia 2 cụm này, ta có:
Hình 2.2.1.f: Phân tích k-Means cho bộ dữ liệu
Trang 18Ở đây ta có thể thấy khi phân ra là 2 cụm, với cụm 1 (màu xanh) các giá trị Silhouette của các mẫu sẽ nằm ở trong khoảng từ 0,7 cho đến 0,85 Còn đối với cụm thứ 2 (màu đỏ) thì giá trị này sẽ chạy trong khoảng từ 0,45 cho đến 0,7 Nhữngkhoảng này đều nằm ở trong khoảng dương (trừ ở cụm thứ 2 có một mẫu có giá trị âm) và dần về gần giá trị 1, vì vậy kết quả phân cụm như thế này là đáng tin cậy.
Đồng thời, tham khảo dựa trên kinh nghiệm của các tác giả trong tài liệu “Datamining and Predictive analytics” của nhà xuất bản Wiley:
Nếu điểm trung bình Silhouette từ 0,5 trở lên chứng tỏ rằng những cụm được phân rasát với thực tế
Nếu điểm trung bình Silhouette từ 0,25 đến 0,5 chứng tỏ rằng cần thêm kiến thức chuyên môn, kinh nghiệm để dánh giá thêm khả năng phân cụm có trong thực tế
Nếu điểm trung bình Silhouette dưới 0,25 thì không nên tin tưởng cụm và cần phải đi tìm nhiều bằng chứng khác
Khi phân tích đến đây, có thể thấy người thực hiện bộ dữ liệu này cần phải có thêm nhiều chuyên môn cũng như kinh nghiệm hơn nữa để giúp cho chất lượng của bộ
dữ liệu này được bảo đảm, có độ tin cậy và thực tế cao hơn
2.2.2 Trích xuất dữ liệu:
Sau khi đã tiến hành phân cụm, ta bắt đầu tiến hành trích xuất dữ liệu ra bảng dưới định dạng excel để tiến hành phân lớp Với mỗi đối tượng được phân cụm dựatrên 2 phương pháp phân cấp và phân hoạch này, ta đều sử dụng công thức của Euclidean để tính toán khoảng cách những điểm gần trung tâm nhất Vì vậy khi
trích xuất dữ liệu ra bảng Data Table, ta sẽ đưa 2 đầu vào phân cụm này vào để
chạy ra kết quả, cụ thể ta có:
Trang 19Hình 2.2.2.a: Trích xuất dữ liệu đã phân cụm
Sau đó lưu ở định dạng excel để ta tiến hành chọn 1 trong 2 cụm, tiếp tục tiến
hành thực hiện phân lớp dữ liệu 1 trong 2 cụm đó, cụ thể hơn ta sẽ lựa chọn cụm 2
Hình 2.2.2.b: Bảng dữ liệu excel khi đã phân cụm
Trang 202.2.3 Phân lớp dữ liệu:
Sau khi tiến hành trích xuất dữ liệu ra làm 2 cụm C1 và C2, ta sử dụng dữ liệu
mẫu C2 để tiến hành bắt đầu phân lớp dữ liệu
Hình 2.2.3.a: Chuỗi quá trình thực hiện phân lớp trên Orange
Ở đây ta sẽ thực hiện quá trình phân lớp dựa trên 3 phương pháp: Logistic Regression, SVM và Tree Chúng ta sẽ đánh giá xem trong 3 phương pháp này, đâu là phương pháp tốt nhất để phân lớp dữ liệu bằng việc thông qua Text and Score Ta có bảng sau đây:
Trang 21Hình 2.2.3.b: Bảng đánh giá Text and Score
Ở đây ta sẽ chia nhỏ dữ liệu ra làm 5 phần (Number of folds: 5) để tiến hành kiểm tra.
a) Chỉ số AUC:
- Nguyên tắc : Gía trị này là một số dương ≤ 1 Nếu giá trị này càng lớn thì
mô hình phân lớp ấy sẽ càng tốt
- Ta có thể thấy chỉ số AUC của 3 phương pháp Logistic Regression, SVM
Trang 22- Ta có thể thấy chỉ số CA của 3 phương pháp Logistic Regression, SVM và Tree lần lượt là 0,789; 0,738 và 0,754.
c) Chỉ số Precision:
- Chỉ số độ chính xác (Precision) cho biết trong số m mẫu được phân vào lớp
i (ở trong trường hợp này là 5 lớp) thì có tỷ lệ bao nhiêu mẫu có đúng.
- Ta có thể thấy chỉ số Precision của 3 phương pháp Logistic Regression, SVM và Tree lần lượt là 0,765; 0,727 và 0,746.
- Là chỉ số giá trị trung bình điều hòa của 2 độ đo Precision và Recall
- Ta có thể thấy chỉ số F1 của 3 phương pháp Logistic Regression, SVM và Tree lần lượt là 0,764; 0,732 và 0,749.
Chỉ số F1 chỉ thường được sử dụng cho phân lớp đa lớp hoặc phân lớp đa nhãn
Các chỉ số Precision và Recall thường được sử dụng cho phân lớp nhị phân
f) Ma trận nhầm lẫn (Confusion Matrix):
Ở đây ta sẽ xem xét xác suất dự đoán chính xác với thực tế của 3 phương pháp
Logistic Regression, SVM và Tree Nếu phương pháp nào có xác suất phần tram
dự đoán chính xác với thực tế (No-No; Yes-Yes) lớn hơn thì phương án ấy sẽ tối ưuhơn Ta có:
Trang 23Hình 2.2.3.c,d,e: Ma trận nhầm lẫn của 3 phương pháp Logistic
Regression, SVM và Tree
Trang 24 Kết luận: Qua việc phân tích các chỉ số trong Text and Score, đồng thời dựa vào
ma trận nhầm lẫn (Confusion Matrix), ta có thể rút ra được phương pháp Logistic Regression là phương pháp tối ưu nhất.
2.2.4 Dự báo:
2.2.4.1 Trích dữ liệu dự báo:
Từ bộ dữ liệu Clustering 2, ta tiến hành lấy 10% dữ liệu từ bộ dữ liệu phân lớp
để thực hiện dự báo (như trên hình 2.2.3.a) Ta sẽ có được file Forecast Data
Trang 25TÀI LIỆU
THAM KHẢO
Daniel T Larose (March 2015) Data Mining and Predictive Analytics (2rd edition),
James, G., Witten, D., Hastie, T., & Tibshirani, R (2013) An introduction to statistical
learning (Vol 112) New York: Springer.
Kaufman, L., & Rousseeuw, P J (1990) Partitioning around medoids (program pam)
Finding groups in data: an introduction to cluster analysis, 68-125
Hình 2.2.4.b: Kết quả chạy trên excel
Trang 26Tibshirani, R., Walther, G., & Hastie, T (2001) Estimating the number of clusters in a
data set via the gap statistic Journal of the Royal Statistical Society: Series B
(Statistical Methodology), 63(2), 411-423
S Moro, P Cortez and P Rita (June 2014) A Data-Driven Approach to Predict the
Success of Bank Telemarketing.