CHƯƠNG 1 - TỔNG QUAN VỀ BÀI TOÁN PHÂN LOẠI HÀNH VI SỬ DỤNG DỊCH VỤ VIỄN THÔNG 1.1 Giới thiệu bài toán Các ứng dụng của phân tích số liệu trong lĩnh vực viễn thông, dữ liệu lớn là một cơ hội chuyển đổi ngành viễn thông sang hướng hoạt động hiệu quả hơn nhờ gia tăng mức độ hài lòng của khách hàng, tăng doanh thu nhờ tăng sản lượng và loại hình dịch vụ cung cấp, cắt giảm chi phí vận hành, giảm thiểu thiệt hại. Trong khuôn khổ luận văn tập trung vào các kỹ thuật xử lý dữ liệu lớn và các thuật toán phân lớp dữ liệu bao gồm: Phân loại tuyến tính, Hồi quy logistic, Phân loại Naïve Bayes, Rừng ngẫu nhiên (RF). Ứng dụng thuật toán học máy trong lĩnh vực kinh doanh viễn thông sử dụng dữ liệu lịch sử của tập khách hàng để xây dựng các mô hình có khả năng phân loại, dự đoán nhu cầu sử dụng của khách hàng. Tập kết quả đó sẽ được dùng để hỗ trợ các đơn vị kinh doanh truyền thống đưa ra quyết định trong các chiến dịch kinh doanh của doanh nghiệp.2 Tổng quan quy trình phân tích dữ liệu 1.1 Tổng quan - Sự kiện bắt đầu: Kinh doanh gửi PYC thực hiện dự án.
- Sự kiện kết thúc: Triển khai theo dõi kết quả và hành vi sau tác động. - Đầu vào: Tài liệu đánh giá phạm vi mục tiêu của chương trình ứng dụng kinh doanh dựa trên phân tích dữ liệu. - Đầu ra: Bảng dữ liệu sau quá trình mô hình dự đoán Chương trình kinh doanh tác động đến khách hàng cuối dựa trên phân tích dữ liệu. Báo cáo kết quả đánh giá chương trình.
Triển khai mở rộng và xây dựng các chiến dịch định kỳ 4 1.2 Quy trình triển khai bài toán phân tích dữ liệu Bảng 1.1: Quy trình triển khai bài toán phân tích dữ liệu Hoạt động chính Các nội dung quan trọng Đơn vị kinh doanh: đưa ra yêu cầu bài toán, mô tả rõ 1. Đưa ra yêu cầu bài toán hiện trạng và mục tiêu đầu ra mong muốn về cả doanh thu và tỷ lệ take up rate. Đơn vị kinh doanh: Đặt ra mục tiêu đầu ra mong muốn về cả doanh thu và tỷ lệ take up rate. Xác định yêu cầu, phạm Xác định các KPI và con số để đánh giá mô hình dự vi và các KPI mục tiêu cần đoán trong bài toán phân tích.
đạt Xác định các KPI về kết quả triển khai của campaign ứng dụng phân tích dữ liệu. Hypothesis testing Làm sạch dữ liệu, Khám phá dữ liệu, tìm hiểu và chuẩn 3.Phân tích mô tả bị dữ liệu (Descriptive analytics) Kế hoạch phân tích Phân tích và chứng minh giả thiết TT PTDL đưa ra danh sách đặc trưng liên quan đến dữ 4.Xây dựng đặc trưng dữ liệu. liệu (feature engineering) TTSP sử dụng kết quả trực quan hóa và kinh nghiệm về mặt kinh doanh giúp đóng vai trò tư vấn 5.Xây dựng model dự TT PTDL xây dựng mô hình dự đoán theo các đặc đoán phù hợp với chương trưng dữ liệu đã thống nhất. 5 Hoạt động chính Các nội dung quan trọng trình (Predictive analystics) 6.Trực quan hóa kết quả, TT PTDL trực quan hóa đặc tính của các thuê bao thuyết phục với đơn vị ra được dự đoán.
yêu cầu Thuyết phục đơn vị kinh doanh về kết quả đầu ra Lựa chọn sản phẩm, offer phù hợp với đặc tính từng 7.Xây dựng kịch bản nhóm thuê bao truyền thông Xây dựng kịch bản tác động, nội dung tin nhắn, thời điểm, trigger tác động. Phối hợp với các đơn vị P.QLDT, TTSP, TKCS để khai báo campaign tác động đến khách hàng cuối.Triển khai và theo dõi Chia tập tác động thành 2 tập Target Group – để tác kết quả động và Control Group - để và theo dõi Xây dựng Dashboard để theo dõi các chỉ số KPI và diễn biến hành vi thuê bao sau tác động 9.Báo cáo kết quả Báo cáo kết quả chương trình tới BTGĐ 10.Triển khai mở rộng, Nếu kết quả chương trình tốt, triển khai mở rộng và định kỳ đựng thành luồng định kỳ hàng ngày/hàng tháng 6 1.3 Lưu đồ quy trình thực hiện dự án ứng dụng phân tích dữ liệu Hình 1.1: Lưu đồ quy trình thực hiện dự án ứng dụng phân tích dữ liệu 1.3 Xử lý dữ liệu phân tán với Spark 1.1 Giới thiệu Apache Spark là một khung làm việc mã nguồn mở tính toán phân tán được phát triển sơ khởi vào năm 2009 bởi AMPLab tại đại học California. Sau này, Spark đã được trao cho Apache Software Foundation vào năm 2013 và được phát triển cho đến nay. Nó cho phép xây dựng các mô hình dự đoán nhanh chóng với việc tính toán được thực hiện trên một nhóm các máy tính, có có thể tính toán cùng lúc trên toàn bộ tập dữ liệu mà không cần phải trích xuất mẫu tính toán thử nghiệm.
Tốc độ xử lý của Spark có được do việc tính toán được thực hiện cùng lúc trên nhiều máy khác nhau. Đồng thời việc tính toán được thực hiện ở bộ nhớ trong (in-memories) hay thực hiện hoàn toàn trên RAM. Các ngôn ngữ lập trình được hỗ trợ bởi Spark bao gồm: Java, Python, Scala và R. Thông qua spark các lập trình viên và các nhà khoa học dữ liệu có thể truy vấn, phân tích, và chuyển đổi dữ liệu một cách nhanh chóng.
Các task thường xuyên được sử dụng kết hợp với spark như ETL và SQL để thực hiện các câu lệnh truy vấn tuần 7 tự trên những tập dữ liệu lớn, xử lý dòng dữ liệu từ các cảm biến, hệ thống tài chính hay các task Machine learning.2: Các thành phần chính của Spark Thành phần chính của Spark là Spark Core: cung cấp những chức năng cơ bản nhất của Spark như lập lịch cho các tác vụ, quản lý bộ nhớ, khắc phục lỗi, tương tác với các hệ thống lưu trữ…Đặc biệt, Spark Core cung cấp API để định nghĩa RDD (Resilient Distributed DataSet) là tập hợp của các item được phân tán trên các nút của cụm và có thể được xử lý song song. Spark có thể chạy trên nhiều loại quản lý cụm như Hadoop YARN, Apache Mesos hoặc trên chính quản lý cụm được cung cấp bởi Spark được gọi là Standalone Scheduler. • Spark SQL cho phép truy vấn dữ liệu cấu trúc qua các câu lệnh SQL. Spark SQL có thể thao tác với nhiều nguồn dữ liệu như Hive tables, Parquet, và JSON.
• Spark Streaming cung cấp API để dễ dàng xử lý dữ liệu stream, • MLlib cung cấp rất nhiều thuật toán của học máy như: phân loại nhãn, hồi quy, phân loại, lọc cộng tác… • GraphX là thư viện để xử lý đồ thị.2 Cơ chế hoạt động Để tìm hiểu spark chúng ta sẽ bắt đầu với lịch sử hình thành và phát triển của nó. Trước Spark chúng ta đã từng biết tới MapReduce- một khung xử lý dữ liệu phân tán giúp Google thiết lập các chỉ mục trong sự bùng nổ của nội dung web, trên các cụm máy chủ lớn.3: Cơ chế hoạt động của ứng dụng Spark Có ba khái niệm cốt lõi trong chiến lược của Google: Dữ liệu phân tán: Khi một tệp dữ liệu được tải lên cụm, nó sẽ được chia thành các phần được gọi là data block sau đó được phân phối chạy trên các data nodes và nhân rộng trên các cluster. Tính toán phân tán: người dùng chỉ định map function để xử lý dữ liệu dựa trên các cặp key/value. Để tạo ra một tập các cặp key/value và kết hợp chúng với reduce function thì tất cả các giá trị trung gian được liên kết với cùng một khóa.
Một chương trình được viết theo cấu trúc này sẽ tự động chạy song song trên 1 cụm cluster lớn theo cách sau: - Quá trình mapping chạy trên mỗi node dữ liệu được chỉ định, chỉ hoạt động trên một block dữ liệu từ mỗi distribute file. - Các kết quả từ quá trình mapping được gửi tới Reducer trong một quy trình được gọi là “shuffle and sort”: các cặp key/value từ quá trình mapping sẽ được sắp xếp theo key, được phân vùng theo số lượng reducer, sau đó được gửi qua hệ thống network và được danh sách key đã được sắp xếp sẽ được ghi lại trên reducer node. - Quá trình reducer thực hiện trên các node được chỉ định. Output của quá trình reducer sẽ được ghi vào 1 file input.
9 Khả năng chịu lỗi: cả dữ liệu và tính toán có thể được chịu lỗi bằng cách chuyển sang node khác cho cả dữ liệu và tiến trình tính toán.3 Spark application Biểu đồ bên dưới biểu diễn luồng chạy của một ứng dụng Spark chạy trên một cụm cluster. Mỗi ứng dụng spark chạy dưới dạng các quy trình độc lập được điều phối bởi Spark Session. Trình quản lý tài nguyên hay quản lý cluster sẽ phân công nhiệm vụ cho các worker, một task cho một phân vùng. Mỗi task được giao cho 1 phần khối lượng của dataset trong partition của nó và output sẽ sẽ được xuất ra ở phân vùng dataset mới.
Kết quả được gửi trở lại driver application hoặc có thể được lưu vào ổ đĩa.4: Luồng hoạt động của ứng dụng Spark 1.4 Các chỉ số đánh giá hiệu năng mô hình 1.1 Ma trận nhầm lẫn (Confusion matrix) Ma trận nhầm lẫn (confusion matrix) là một chỉ số đo hiệu suất cơ bản để đánh giá hiệu năng dự đoán của một mô hình. Nó là một ma trận vuông kích thước 2x2 10 chứa bốn tổ hợp được tạo ra bởi 2 phân lớp nhị phân. Các chỉ số đo khác như độ chính xác, độ phủ hay các phương pháp đo như ROC cũng được xây dựng dựa trên ma trận nhầm lẫn. Từ yêu cầu bài toán là phân loại nhị phân với hai nhãn là 0 và 1 hoặc Yes/No.
Các dự đoán đầu ra cho nhãn sẽ được chia thành hai loại là dự đoán “tích cực” và dự đoán “tiêu cực”. Kết quả dự đoán của mô hình được chia thành 4 nhóm như hình bên dưới: Hình 1.5: Ma trận nhầm lẫn True Positive (TP): Số lượng dự đoán chính xác nhãn 1 True Negative (TN): Số lượng dự đoán chính xác nhãn 0 False Positive (FP): Số lượng dự đoán sai nhãn 1 True Negative (TN): Số lượng dự đoán sai nhãn 0 1.2 Các chỉ số Accuracy, Precision, Recall và F1 score Accuracy: Chỉ số đánh giá độ chính xác tổng thể của mô hình. Giá trị của độ chính xác nằm trong khoảng 0 đến 1. Với 1 là giá trị độ chính xác tốt nhất và 0 là giá trị độ chính xác thấp nhất của một mô hình dự đoán.
Độ chính xác (ACC) được tính bằng số tất cả các dự đoán đúng chia cho tổng số dự đoán của tập dữ liệu.