Để giải quyết bài toán được đưa ra, dữ liệu của bài toán được lưu trữ vào Hadoop, sử dụng Spark và MLLib để phân tích dữ liệu.
Quy trình xử lý dữ liệu :
Loại bỏ thuê bao có số tin nhắn <=3 và có
Số cuộc gọi bằng 0
Khôngphát sinh dịch vụ data
Xử lý các giá trị nhiễu : Thực hiện các kĩ thuật xử lý nhiễu để đồng bộ các
giá trị nhiễu, vượt ngưỡng.
Thực hiện phân khúc khách hàng
Thực hiện load dữ liệu vào Hadoop :
[root@cloudera-master bin]# hadoop fs –put
/home/haint/tmp/PWC_TRATRUOC_PHANKHUCT2T6.txt /tmp/input/
Sau khi load thành công, ta có thể kiểm tra lại dữ liệu file vừa thực hiện load:
Hình 3.6: Kiểm tra dữ liệu nạp vào hadoop
Sử dụng MLLib, xây dựng chương trình bằng Java để thực hiện phân khúc
Hình 3.7: Cách thực hiện coding bài toán phân khúc dùng spark trong cloudera
Kết quả thu được sau khi thực hiện phân khúc:
Tỷ lệ phân khúc khách hàng theo số lượng thuê bao :
Hình 3.9: Kết quả phân khúc theo biểu đồ 1
Tỷ lệ theo doanh thu VAS :
Hình 3.11: Kết quả phân khúc theo biểu đồ 3
Tỷ lệ doanh thu SMS out :
BƯỚC XỬ LÝ CLOUDERA IBM
Load dữ liệu MSC, GGSN, SGSN
Hadoop fs –put
Squoop Datastage
Lưu trữ dữ liệu Hadoop Netezza
Truy vấn dữ liệu Hive
Spark SQL Aginity
Khai phá dữ liệu Java core
Spark MLlib SPSS
Report Java web Cognos
Bảng 3.1: Bảng so sánh các thành phần giải pháp Cloudera và giải pháp IBM
Như vậy, về cơ bản các thành phần trong kiến trúc triển khai của giải pháp Cloudera là tương đương với các thành phần triển khai của giải pháp IBM hiện tại, tuy nhiên với đặc điểm là giải pháp opensource và hoàn toàn miễn phí nên có việc triển khai hệ thống Cloudera sẽ có phần khó khăn hơn khi triển khai hệ thống của IBM (cần tự thực hiện xử lý thuật toán bằng code, thiếu giao diện trực quan để cấu hình ...)