Chương 4: Triển khai thực nghiệm
4.2. Mô hình ứng dụng
4.2.1. Quá trình Phân cụm dữ liệu huấn luyện
Toàn bộ quá trình thực hiện thử nghiệm được thực hiện trên nền tảng Spark, với một cụm Spark gồm 1 nút (node) chính (Master) và 100 nút (node) phụ (Slaves). Cấu hình tại mỗi nút:
Hệ điều hành: Ubuntu 12.04.4 và Mỗi nút thực thi được cấu hình một CPU Pentium (R) Dual-Core 3,20GHz và bộ nhớ Ram 8GB. Tất cả các nút được kết nối bằng mạng Gigabit tốc độ cao và được cấu hình với Hadoop 2.5.0 và Spark 2.0.2. Thuật toán và giải thuật được thực hiện xây dựng trên nền tảng Scala 2.10.4. Sử dụng Zeppelin để tạo viết code, script và lấy thuộc tính, tăng tính linh hoạt trong quá trình xây dựng, sử dụng và tái sử dụng dữ liệu.
Luận văn thạc sĩ Công nghệ thông tin
64 a. Phân nhóm/cụm khách hàng
Trong quá trình thực hiện phân nhóm khách hàng sử dụng KMeans, sử dụng độ đo DaviesBouldin để đánh giá số cụm phù hợp nhất, với số cụm tối thiểu là 4 (do nhóm khách hàng cơ bản ban đầu cần đánh giá nằm ở 4 phân khúc khách hàng). Với E là số cụm tối ưu.
E = evalclusters(X,'kmeans','DaviesBouldin','klist',[1:12])
Các thuộc tính sẽ căn cứ theo kinh nghiệm để lựa chọn ra các thuộc tính cho lần đầu tiên khi phân cụm, sau khi có thuộc tính lần đầu tiên; ta sử dụng thuộc tính được xếp hạng từ các cụm chạy mô hình rừng ngẫu nhiên để đánh giá.
Căn cứ theo đánh giá khi sử dụng độ đo Davies – Bouldin (DB), thực hiện thử nghiệm lần lượt với số cụm và sử dụng độ đo DB đã nêu ở chương 3 ta có bảng sau:
K 2 3 4 5 6 7 8 9 10 11 12
Davies–Bouldin 0.63 0.74 0.89 0.91 0.88 0.94 1.00 0.99 0.88 1.09 1.09
Bảng 4-3: Giá trị DaviesBouldin
Sau khi sử dụng độ đo DaviesBouldin đánh giá với các giá trị thuộc tính dữ liệu đầu vào, thử nghiệm lần lượt từng số cụm, kết quả số cụm phù hợp nhất ứng dụng giải thuật K-Means là 10. Với việc đánh giá số lượng cụm và số lượng dữ liệu cần đánh giá – là số bản ghi của KH phát triển mới trong tháng tại mỗi cụm được chia như sau:
Cụm 0 1 2 3 4 5 6 7 8 9
Số lượng thuê bao rời mạng
34876 1201 2107 1769 517 101 2337 4947 704 416
SLTB đang sử dụng dịch vụ
2583267 32302 82032 61519 11711 1725 106359 281188 20002 21584
Bảng 4-4: Kết quả phân cụm b. Đánh giá kết quả phân cụm:
Luận văn thạc sĩ Công nghệ thông tin
65
Việc đánh giá kết quả phân cụm sẽ căn cứ theo các thuộc tính đã sử dụng để phâm cụm, sau đó hỗ trợ đưa ra các đặc điểm chung giữa các cụm để có các chính sách gắn tương ứng với các cụm. Đánh giá ngẫu nhiên các thuộc tính có tại mỗi cụm bằng cách so sánh các tâm cụm và độ tuổi trung bình, ta tạm chia độ tuổi ra làm 2 nhóm KH.
Nhóm KH dưới 40 tuổi:
Giá trị trung bình các
thuộc tính ngẫu nhiên: Cluster_0 Cluster_1 Cluster_2 Cluster_3 Cluster_9
usage_day_n 3.48 0.35 5.33 4.03 4.57
non_usage_day_n 1.18 0.62 0.35 1.43 0.97
usage_night_n 2.59 6.34 4.3 1.25 7.15
no_prepaid_payment 6.49 2.67 2.03 3.38 1.08
avg_amt_prepaid_payment 7,799.01 1.38 1.99 5,141.49 7,015.60
no_month_last_prepaid_payment 15.04 0.74 0.38 13.23 20.13
amt_last_prepaid_paymnet 60,003.98 65,645.89 76,525.54 120,106.92 134,622.28
reserve_prepaid_charge 60,268.09 65,782.48 76,731.32 118,093.22 133,608.60
no_month_prom_last_payment 5.01 4.74 5.65 3.13 6.02
reserve_days_to_block 1.10 0.01 0.01 7.91 1.10
no_days_to_churn 47.27 45.61 52.92 57.87 62.27
no_report_cskh_n 63.28 32.23 24.72 35.44 73.28
no_call_cskh_n 34.98 0.17 0.68 1.65 25.68
flag_change_province 0.96 0.04 0.41 0.02 0.05
flag_change_techonology 0.39 0.21 0.14 0.08 0.07
flag_change_ftth_product 0.05 0.01 0.01 0.05 0.05
flag_change_th_product 0.02 0.04 0.04 0.01 0.02
flag_fmc_product 0.01 0.00 0.00 0.01 0.01
flag_churn_order 0.74 0.28 0.21 0.75 0.77
no_modem_active 2.36 1.47 1.54 4.92 1.24
age 28.50 29.24 36.40 32.70 32.90
SL bản ghi 2618143 33503 84139 63288 22000
Nhóm KH có độ tuổi trên 40 tuổi
Luận văn thạc sĩ Công nghệ thông tin
66
Giá trị trung bình các
thuộc tính ngẫu nhiên: Cluster_4 Cluster_5 Cluster_6 Cluster_7 Cluster_8
usage_day_n 2.63 3.44 3.05 3.18 2.71
non_usage_day_n
1.20 0.82 1.56 0.71 1.91
non_usage_day_n
1,527.45 7,954.27 1.29 1,401.84 5.12
no_prepaid_payment
5,938.54 23,788.83 224.35 2,727.05 14.33
avg_amt_prepaid_payment
270.19 159.32 261.83 74.32 98.01
no_month_last_prepaid_payment
8.38 2.47 6.20 2.01 6.34
amt_last_prepaid_paymnet
68,504.44 69,128.46 69,802.66 12,822.42 72,465.80
reserve_prepaid_charge
68,600.89 69,144.72 69,938.38 1.02 72,878.50
no_month_prom_last_payment
44,698.14 46,532.31 43,894.30 0.00 48,446.43
reserve_days_to_block
16 47 10 70 10
no_days_to_churn
55.65 90.13 95.63 124.22 55.84
no_report_cskh_n
5,834.13 23,586.71 258.35 2,670.96 0.65
no_call_cskh_n 1,680.95 14,147.57 0.06 1,435.56 0.98
no_staff_n 3,695.27 4,495.25 3,643.28 690.90 4,300.80
no_reason_n 40,672.46 38,309.58 35,767.14 8,197.68 46,575.51
flag_change_province
4,908.36 10,200.93 12,944.46 1,555.15 18.07
flag_change_techonology
14,360.23 11,546.19 12,296.76 1,418.13 14,332.91
flag_change_ftth_product
0.25 0.05 0.05 0.02 0.03
flag_change_th_product
0.24 0.04 0.04 0.04 0.07
flag_fmc_product
0.03 0.01 0.01 0.01 0.01
flag_churn_order 0.02 0.54 0.75 0.32 0.70
no_modem_active
6,221.33 12,953.91 16,688.80 1,952.86 3.24
age 44.50 54.80 58.60 46.70 42.50
SL bản ghi 12228 1826 108696 286135 20706
Bảng 4-5: Phân nhóm khách hàng trên 40 tuổi và dưới 40 tuổi
Các thuộc tính trong Bảng 4-5: Phân nhóm khách hàng trên 40 tuổi và dưới 40 tuổi là kết quả các thuộc tính đến hiện tại khi đưa vào đánh giá phân
Luận văn thạc sĩ Công nghệ thông tin
67
cụm và thực hiện lặp lại nhiều lần mô hình ứng dụng kết hợp giữa K-Means và rừng ngẫu nhiên xử lý song song
Các cụm cơ bản cho thấy nhóm hành vi phân bổ theo độ tuổi và phân nhóm theo hành vi người dùng. Đánh giá thêm về số tháng đóng trước và đánh giá sự liên quan đến hành vi đóng trước của KH theo từng tháng.