Chương 1: Giới thiệu đề tài Chương 2: Mô tả và tiền xử lý dữ liệu Chương 3: Khai phá dữ liệu Chương 4: Kết luận và kiến nghị Chương 2. Mô tả và tiền xử lý dữ liệu 1. Mô tả bộ dữ liệu Nhóm chúng em lựa chọn bộ dữ liệu … làm mô hình nghiên cứu. Đây là bộ dữ liệu phân lớp và các dữ liệu được thu thập ngẫu nhiên từ cơ sở dữ liệu của một công ty viễn thông trong khoảng thời gian 12 tháng.
Bộ dữ liệu này nhằm mục đích dự đoán khách hàng sẽ rời bỏ dịch vụ (churn) hay không dựa trên các yếu tố như thông tin cá nhân, dịch vụ đăng ký, tần suất sử dụng, và các thông tin giao dịch. Bộ dữ liệu tổng cộng có … dòng dữ liệu, mỗi dòng đại diện cho một khách hàng, bao gồm thông tin cho … biến của bộ dữ liệu và không có giá trị bị thiếu. Biến mục tiêu Churn có 2 giá trị (0,1) tương ứng với “0” là khách hàng không rời bỏ và “1” là khách hàng rời bỏ. Hình 1 Thông tin bộ dữ liệu 1.
Mô tả các biến: - Call Failure (Các cuộc gọi thất bại): số lượng các cuộc gọi thất bại - Complains (Số lượng khiếu nại): Nhị phân (0: không khiếu nại; 1: có khiếu nại) - Subscription Length (Thời hạn đăng ký dịch vụ): tổng số tháng đăng ký dịch vụ - Charge Amount (Tiền phí cước): Thuộc tính thứ tự (0: số tiền thấp nhất; 9: số tiền cao nhất) - …. - Cụ thể bảng dữ liệu và vai trò của các biến trong hình sau: 10 Hình 2 Kiểu dữ liệu và vai trò của các giá trị 2. Thống kê mô tả 2.1 Mô tả dữ liệu Để mô tả dữ liệu, ta vào hộp thoại Feature Statistics trong hộp thoại Data. 11 Hình 3 Feature Statistics Bảng thống kê mô tả bao gồm các đại lượng: Mean, Mode, Median, Dispersion, Min, Max và Missing cho từng biến.
Có thể thấy rằng các biến đều không có giá trị bị thiếu. Trong đó: - Mean: giá trị trung bình - Mode: giá trị xuất hiện nhiều nhất trong tập dữ liệu - Median: trung vị - giá trị nằm giữa tập dữ liệu - Dispersion: Độ phân tán - Min: Giá trị nhỏ nhất - Max: Giá trị lớn nhất 12 - Missing: Phần trăm dữ liệu bị thiếu Nhận xét: 1. Số giây sử dụng (Seconds of Use): Thời gian sử dụng trung bình là 4472.46 giây, với trung vị là 2990 giây nhưng nhiều khách hàng không sử dụng hoặc sử dụng rất ít nên mode là 0. Biến này có giá trị nhỏ nhất là 0 giây và lớn nhất là 17090 giây, với mức độ phân tán là 0.
Điều này cho thấy việc khách hàng dành khá ít thời gian cho việc sử dụng dịch vụ của công ty. Không có dữ liệu bị thiếu. Giá trị khách hàng (Customer Value): Giá trị trung bình là 470.97, với trung vị là 228.48 và mode là 0. Giá trị thấp nhất là 0 chạy dần tới giá trị cao nhất là 2165.28, với mức độ phân tán là 1.
So với giá trị lớn nhất của biến ta thấy có sự chênh lệch lớn gấp 5 lần giá trị trung bình. Số liệu này cho thấy sự chênh lệch rõ rệt giữa các nhóm khách hàng. Không có dữ liệu bị thiếu. Tần suất gửi tin nhắn (Frequency of SMS): Giá trị trung bình là 73.17 cao hơn nhiều so với trung vị 21 và mode 0, điều này cho thấy nhiều khách hàng không gửi tin nhắn hoặc gửi rất ít tin nhắn.
Giá trị thấp nhất là 0 tin nhắn, giá trị cao nhất là 522 tin nhắn, với mức độ phân tán là 1. Dữ liệu cho thấy sự chênh lệch rõ ràng trong hành vi sử dụng dịch vụ gửi tin nhắn. Phần lớn khách hàng có tần suất sử dụng thấp hoặc không sử dụng, trong khi một số ít khách hàng có tần suất sử dụng rất cao. Không có dữ liệu bị thiếu.
Tần suất sử dụng (Frequency of Use): Giá trị trung bình là 69.46, với trung vị là 54 và mode là 0, điều này cho thấy phần lớn khách hàng ít hoặc thậm chí là không sử dụng dịch vụ. Giá trị thấp nhất là 0 dao động đến giá trị cao nhất là 255, với mức phân tán 0. Dữ liệu có sự phân hóa mạnh cho thấy tần suất sử dụng dịch vụ dường như có hai nhóm khách hàng chính: nhóm không sử dụng và nhóm sử dụng thường xuyên. Không có dữ liệu bị thiếu.
Thời hạn đăng ký (Subscription Length): Giá trị trung bình của thời hạn đăng ký là 32.54 tháng, với trung vị là 35 tháng và giá trị phổ biến nhất (mode) là 36 tháng. Điều này cho thấy đa số khách hàng có thời hạn đăng ký kéo dài từ 35 đến 36 tháng, phân phối có vẻ khá cân đối, không có sự chênh lệch lớn. Thời hạn đăng ký dao động từ 3 tháng (ngắn nhất) đến 47 tháng (dài nhất), cho thấy sự khác biệt rõ rệt giữa các nhóm khách hàng. Độ phân tán thấp là 0.26, dữ liệu cho thấy phần lớn khách hàng có thời hạn đăng ký tương đối ổn định quanh giá trị trung vị (35 tháng).
Không có dữ liệu bị thiếu. Tuổi (Age): Tuổi trung bình của khách hàng là 31 tuổi, với trung vị và mode đều là 30 tuổi. Điều này cho thấy phần lớn đối tượng khách hàng nằm trong độ tuổi trưởng thành, có khả năng tự chủ về tài chính. Tuổi nhỏ nhất là 15, trong khi tuổi lớn nhất là 55, và độ phân tán là 0.
Từ 15 tuổi đến 55 tuổi cho thấy sự đa dạng về độ tuổi khách hàng, đồng thời độ phân tán khá thấp 0,28 cho thấy nhóm khách hàng có sự tương đồng về độ tuổi. Không có dữ liệu bị thiếu. Số lượng cuộc gọi riêng biệt (Distinct Called Numbers): Số lượng cuộc gọi riêng biệt mà khách hàng gọi trung bình là 23.51, với trung vị là 21 và mode là 0. Dữ liệu cho thấy một phần lớn khách hàng không thực hiện cuộc gọi hoặc chỉ thực hiện rất ít cuộc gọi.
Có thể đây là nhóm khách hàng không sử dụng dịch vụ hoặc khách hàng ít quan tâm đến việc gọi điện. Tần suất cuộc gọi dao động từ 0 (giá trị nhỏ nhất) đến 97 (giá trị lớn nhất), với mức độ phân tán thấp là 0. Điều này cho thấy nhóm ít khách hàng thực hiện cuộc gọi nhiều, tạo ra một mức độ dao động lớn trong dữ liệu. Không có dữ liệu bị thiếu.
Số lần cuộc gọi thất bại (Call Failure): Số lần cuộc gọi thất bại trung bình là 7.63, với trung vị là 6 và mode là 0 (tức là phần lớn khách hàng không gặp phải cuộc gọi thất bại, hoặc chỉ có rất ít cuộc gọi thất bại). 14 Số lần cuộc gọi thất bại dao động từ 0 (giá trị nhỏ nhất) đến 36 (giá trị lớn nhất), ta thấy được phần lớn khách hàng có ít hoặc không có cuộc gọi thất bại ( thể hiện bởi mode = 0), nhưng một số ít khách hàng có thể gặp phải một lượng lớn cuộc gọi thất bại (tối đa lên đến 36 lần). Đồng thời với mức độ phân tán thấp 0.95 cho thấy rằng các giá trị không biến động quá lớn, chỉ có một nhóm nhỏ khách hàng mới gặp phải nhiều cuộc gọi thất bại. Không có dữ liệu bị thiếu.2 Đồ thị phân lớp: Do đây là bộ dữ liệu phân lớp nên ta vẽ đồ thị phân bố x theo y.
Ta tiến hành chọn công cụ distribution trong hộp thoại Visualize. Hình 4 Distributions của đặc tính Call Failure • Call Failure: Nhận xét: - Call Failure <= 34: không xác định 0 và 1. - Call Failure >= 35: Churn là 0 15 Hình 5 Distributions của đặc tính Complains • Complains: Nhận xét Complains = 0 và Complains = 1: không xác định 0 và 1. Hình 6 Distributions của đặc tính Subscription Lengthiption • Subscription Length Nhận xét: 16 Subscription Length <= 17 và 24 <= Subscr Length <= 45: không xác định 0 và 1.
- 18 <= Subscription Length <= 23 và Subscription Length >= 46: Churn là 0 Hình 7 Distributions của đặc tính Charge Amount • Charge Amount: Nhận xét: - 4 <= Charge Amount: không xác định 0 và 1 - Charge Amount > 4: Churn là 0 17 Hình 8 Distributions của đặc tính Frequency of use • Seconds of Use NHẬN XÉT: …. Hình 9 Distributions của đặc tính Frequency of use • Frequency of use: Nhận xét: …. 18 Hình 10 Distributions của đặc tính Frequency of SMS ………… Kết luận: Vậy tất cả các biến đều không thể phân biệt tốt giữa hai giá trị 0 và 1 của biến Churn.Tiền xử lý dữ liệu - Gain ratio: là một số liệu được sử dụng trong lĩnh vực khoa học dữ liệu và học máy để đánh giá hiệu quả của một thuộc tính cụ thể trong việc phân loại dữ liệu - Gini: là thước đo mức độ không tinh khiết trong một tập dữ liệu. Chỉ số này được tính bằng cách cộng các xác suất bình phương của từng lớp.
Chỉ số Gini thấp hơn cho thấy tập dữ liệu tinh khiết hơn Vì bộ dữ liệu … không có dữ liệu bị thiếu nên ta không sử dụng công cụ Impute trong hộp thoại transform để xử lý dữ liệu. Tiếp đến, ta tiến hành lọc dữ liệu “…. gồm các bước sau trong phần mềm Orange: Đầu tiên tiến hành kiểm tra sự tương quan giữa các biến độc lập với biến phụ thuộc bằng Rank. 19 Hình 11 Rank của các đặc tính dữ liệu Theo đó ta quan sát được biến Age và biến Age Group đều có độ tương quan thấp theo chỉ số Gain ratio= 0 và Gini= NA nên ta tiến hành loại bỏ.
Ngoài ra các biến còn lại có chỉ số Gain ratio và Gini > 0 nên đều ảnh hưởng đến biến Churn. Sau đó ta loại bỏ hai biến Age và Age Group bằng công cụ Widget Select Columns 20 Hình 12 Loại bỏ - Select Columns sau khi kiểm tra qua Rank Sau khi các cột đã được lọc, chọn Widget Data Table để kiểm tra: Hình 13 Data Table sau khi đã tiền xử lý dữ liệu Cuối cùng lưu dữ liệu lại bằng Save Data. Sau cùng, ta có giao diện trên Orange như sau: 21 Hình 14 Workflow tiền xử lý dữ liệu Chương 3. Khai phá dữ liệu 1.
Phân lớp dữ liệu: Dữ liệu đã cho là dữ liệu đã có nhãn target: Churn, nên chúng ta tiến hành các bước phân lớp dữ liệu để tiến hành dự báo đúng sai. Các bước thực hiện sẽ được làm trên phần mềm Orange như sau: Trước khi phân lớp dữ liệu, vào file excel đã lưu ở các bước trên, cũng tức là file excel đã được tiền xử lý, lọc từ 3150 xuống còn 3140 dòng, để chừa 10 dòng ra để kiểm tra. Vào file Orange, trích xuất file có 3140 dòng qua widget File, kiểm tra số lượng dòng qua Data Table.