- 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 thứ liên lạc gần nhất trong tuần của c
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ậntì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 4CHƯƠ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ẽ được tí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):
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):
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)
Chưa xác định (Unknown)
Trang 61.2.1.2 Thuộc tính liên quan đến lần liên lạc gần nhất trong chiến dịch hiện tại:
Trang 7Tháng 7Tháng 8Tháng 9
c) Thứ trong tuần (Day of Week):
- Được định dạng “Categorical”
- Thuộc tính này nhằm xác định thứ liên lạc gần nhất trong tuần của các đối tượng được thực hiện khảo sát Trong đó, các thứ bao gồm:
Đơ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 đượcthự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
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’
1.3 Mục tiêu phân tích:
Từ bộ dữ liệu “Banking Marketing” ban đầu, ta sẽ có thể tiến hành dự đoán và phân loại xem liệu khách hàng sẽ đăng ký (‘yes’) hay không đăng ký (‘no’) gửi tiền lãi có kỳ hạn
CHƯƠNG II: NỘI DUNG
2.1 Tiền xử lý bộ dữ liệu:
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 21thuộc tính như sau (Hình 2.1.1.a,b):
Trang 10Hình Hình 2.1.1.b: Type và Role của các thuộc
tính
Đế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ừ
Feature => Skip.
Đối với những thuộc tính có “Type” là Categorical như contact, month, day of week thì ta không cần phải chuyển đổi “Role” của chúng từ Feature => Skip Bởi lẽ, khi tiến hành phân cụm phân cấp, chỉ những thuộc tính Numeric sẽ
được sử dụng để tính khoảng cách giữa các cụm
Kết quả ta thu được:
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 12Hình 2.1.2.b: Qúa trình thực hiện Preprocess
Để 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ệnthường xuyên Sau khi thực hiện, ta có kết quả như sau:
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 15Hình 2.2.1.c,d,e: Bảng Silhouette Plot cho 2 phân cụm
phân cấp
Nguyê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ị
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 có:
Hình 2.2.1.f: Phân tích k-Means cho bộ dữ liệu
Trong thuật toán k-Means, ta phân tích thử xem với bộ dữ liệu này ta nên lựa chọn phân ra làm bao nhiêu cụm là hợp lý nhất Và để đánh giá xem phương án nào là tối ưu nhất thì ta sẽ dựa vào giá trị Silhouette Cụ thể, ta có thể thấy nếu như
ta phân bộ dữ liệu này ra làm 2,3,4,5,6,7 cụm thì giá trị Silhouette trung bình của các phân cụm đó lần lượt sẽ là 0,296 , 0,154 , 0,161 , 0,171 , 0,171 và 0,181 Gía trị Silhouette trung bình càng lớn thì phương án phân cụm sẽ càng đáng tin cậy
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ó:
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ững khoảngnà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
“Data mining 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
ra sá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
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 2.2.2.b: Bảng dữ liệu excel khi đã phân cụm
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
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
- 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
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
Bằng việc đánh giá 3 phương pháp ở trên, ta sẽ sử dụng phương pháp Logistic Regression để tiến hành dự báo dữ liệu (Forecast Data) Ta có kết quả như sau:
Hình 2.2.4.a: Kết quả dự báo dữ liệu
Trang 25TÀI LIỆU
Hình 2.2.4.b: Kết quả chạy trên excel
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
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.