3.4 Sử dụng C.45 để khai phá dữ liệu phục vụ dịch vụ khách hàng
3.4.1 Ứng dụng phân loại khách hàng cho dịch vụ điện thoại trả trƣớc
Với một lượng khách hàng thương xuyên sử dụng dịch vụ điện thoại đường dài trả trước lên đến hàng chục ngàn người (chỉ tính riêng cho thị trường Mỹ và tập trung chủ yếu ở tiểu bang California) thì việc nắm bắt và phân loại được nhu cầu, tần suất sử dụng dịch vụ của khách hàng là một trong những yếu tố quyết định góp phần vào sự thành công của doanh nghiệp. Đặc biệt là trong bối cảnh các dịch vụ viễn thông trên nền Internet đang nở rộ và có sự cạnh tranh khốc liệt giữa các doanh nghiệp thì việc nắm bắt và dự đoán được xu thế của khách hàng sẽ góp phần giúp doanh nghiệp có được những chính sách chăm sóc khách hàng tốt hơn để có thể giữ được những khách hàng có khả năng chi trả và nhu cầu sử dụng cao, tránh việc họ lựa chọn sử dụng dịch vụ của doanh nghiệp khác.
Về mặt nghiệp vụ, khi một khách hàng đăng ký sử dụng dịch vụ trên website của VITC, họ sẽ cung cấp các thông tin cá nhân của họ bao gồm tên, tuổi, địa chỉ, nghề nghiệp … Sau đó hệ thống sẽ tạo một tài khoản cho khách hàng và khách hàng có thể bắt đầu chuyển tiền từ tài khoản tín dụng của mình sang tài khoản trên VITC để có thể thực hiện cuộc gọi. Với những thông tin cá nhân về khách hàng như trên cộng với những thông tin về cuộc gọi của khách hàng chúng ta có thể tiến hành thực hiện bài toán phân lớp khách hàng dựa trên số lần gọi, số phút gọi và số các số máy mà khách hàng gọi trong một khoảng thời gian mà ta chọn để lấy tập ví dụ huấn luyện. Về nguyên tắc, khoảng thời gian càng lớn thì bộ dữ liệu huấn luyện sẽ càng lớn và kết quả phân lớp của ứng dụng sẽ càng chính xác. Tuy nhiên, với một ngành công nghiệp như Viễn thông thì việc lấy dữ liệu cước trong một khoảng thời gian dài là rất khó vì mỗi ngày có hàng triệu cuộc gọi và chỉ cần lấy dữ liệu từ một tháng, chúng ta đã có đến hàng chục triệu bản ghi cần xử lý. Ở đây ta qui ước việc phân loại khách hàng như sau:
1. Loại 1: Những khách hàng gọi dưới 50 phút/tháng đến một hoặc 2 số điện thoại khác nhau hoặc tiêu tương đương dưới 10$ một tháng.
2. Loại 2: Những khách hàng gọi từ 50 – 100 phút/tháng đến từ 3 – 5 số điện thoại khác nhau hoặc tiêu tương đương 10-20$ một tháng.
3. Loại 3: Những khách hàng gọi từ 100-500 phút/tháng đến từ 6 – 10 số điện thoại khác nhau hoặc tiêu từ 20-50$ một tháng.
4. Loại 4: Những khách hàng gọi trên 500 phút/tháng đến nhiều hơn 10 số điện thoại hoặc tiêu từ 50$ trở lên mỗi tháng.
Bài toán đặt ra cho việc phân lớp khách hàng đó là dựa vào thông tin cá nhân của khách hàng và dữ liệu cuộc gọi của họ để từ đó tìm ra các qui luật xác định một khách hàng thuộc vào lớp đối tượng khách hàng nào để từ đó xây dựng chiến lược tiếp cận và chăm sóc khách hàng theo từng lớp riêng biệt. Để xây dựng được ứng dụng khai phá dữ liệu này trước hết chúng ta cần xây dựng tập dữ liệu huấn luyện để làm cơ sở cho việc khai phá và tìm luật. Cụ thể, các thuộc tính của tập dữ liệu huấn luyện sẽ bao gồm các trường như sau:
1. Thứ nhất là các thông tin về khách hàng sẽ bao gồm các thuộc tính: Giới tính, tuổi, địa chỉ, nghề nghiệp.
2. Thứ hai là thông tin được tổng hợp từ dữ liệu tính cước trong một khoảng thời gian nhất định, dữ liệu đó bao gồm: Số lượng các số mà khách hàng đã gọi, độ dài trung bình của các cuộc gọi và thời gian khách hàng thực hiện cuộc gọi. Sở dĩ những thông tin này được lựa chọn đó là vì sự quan trọng của nó đối với nghiệp vụ phân loại khách hàng. Ví dụ, nếu một khách hàng gọi 5 lần trong một tháng nào đó và mỗi lần gọi trên 10 phút nhưng chỉ gọi đến một số cố định thì đây chưa chắc đã phải là một khách hàng tiềm năng bằng một người một tháng gọi cũng 5 lần, mỗi lần chỉ 5 phút nhưng gọi đến 5 số khách nhau. Sở dĩ ta có thể suy ra được điều này là vì ta đã giả định rằng người thứ 2 có thể là một doanh nhân hay một người mà công việc của họ cần trao đổi, liên lạc qua điện thoại nhiều và đó chính là một khách hàng tiềm năng còn người thứ nhất, cho dù họ cũng
một khách hàng mà việc liên lạc điện thoại của họ chỉ đơn thuần là trao đổi thông tin, có thể là hỏi thăm, liên lạc với người thân của họ mà thôi. Như vậy, ta đã xác định được tập các thuộc tính cho tập hợp ví dụ huấn luyện để tiến hành triển khai bài toán phân lớp khách hàng. Công việc tiếp theo cần làm đó là chuẩn bị dữ liệu đầu vào để C4.5 chạy và tìm luật. Như đã trình bày ở trên thì chúng ta sẽ xây dựng 2 file dữ liệu đầu vào. File thứ nhất mô tả cấu trúc của tập ví dụ huấn luyện, file này sẽ có tên là dulieu.names. Cấu trúc của file có phần mở rộng là .names đã được mô tả ở phần trước của luận văn, vì vậy ở đây ta sẽ chỉ xét đến nội dung của file mà thôi. Như đã phân tích ở trên, các thuộc tính của bộ dữ liệu huấn luyện sẽ bao gồm:
Các thông tin về khách hàng
Giới tính khách hàng: Male, Female.
Tuổi khách hàng: Giá trị liên tục (18 trở lên).
Địa chỉ khách hàng: Tiểu bang mà khách hàng cư trú (California, Florida, …)
Nghề nghiệp của khách hàng: Kỹ sư, giáo viên, doanh nhân … Các thông tin được tổng hợp từ dữ liệu tính cước
Số lượng các số bị gọi.
Độ dài trung bình của mỗi cuộc gọi.
Với các thuộc tính đã được xác định như trên, cấu trúc file dữ liệu của chúng ta sẽ như sau:
Hình 3.3 File dulieu.names
Tiếp theo chúng ta sẽ phải chuẩn bị file dữ liệu chứa tập các ví dụ huấn luyện. Để có được bộ dữ liệu huấn luyện đủ lớn ta sẽ lấy dữ liệu tính cước trong vòng 1 tháng và thực hiện các công việc sau:
a. Thứ nhất: Truy vấn những thông tin về cá nhân của từng khách hàng đã sử dụng dịch vụ trong vòng 1 tháng nào đó. Thông tin về khách hàng bao gồm: Giới tính, tuổi, địa chỉ và nghề nghiệp. Trong 4 thuộc tính này thì thuộc tính giới tính và địa chỉ là các trường dữ liệu bắt buộc mỗi khách hàng khi đăng ký sử dụng dịch vụ phải điền vào nên giá trị của nó luôn được xác định. Hai thuộc tính còn lại là tuổi và nghề nghiệp là các thuộc tính tùy chọn nên có thể khách hàng không đưa vào khi họ đăng ký sử dụng dịch vụ nên nếu tuổi của khách hàng không được xác định trong khi truy vấn (trả về giá trị NULL) thì ta sẽ thay thế nó bằng giá trị là 1 dấu hỏi chấm “?”. Nếu thuộc tính nghề nghiệp không được xác định thì ta sẽ
gán nghề nghiệp bằng “nghề khác” – others. Toàn bộ quá trình trích dẫn những lấy dữ liệu mẫu này đều được thực hiện thông qua ngôn ngữ truy vấn CSDL. Ở đây hệ thống CSDL của công ty được triển khai trên hệ quản trị CSDL Microsoft SQL nên ta sẽ sử dụng Query analyzer của Microsoft SQL để thực hiện việc này.
DECLARE @FromDate AS DateTime DECLARE @ToDate AS DateTime
SET @FromDate = „05/01/2007 00:00:00.000‟ SET @ToDate = „05/31/2007 23:59.59.999‟ SELECT CustomerID, CustomerSex, CASE CustomerAge WHEN „‟ THEN „?‟ ELSE CustmerAge END AS CustomerAge, CustomerAddress, CustomerOccupation FROM CustomerAccount WHERE CustomerID IN (
SLECT DISTINCT CustomerID FROM BillingData
WHERE TransactionTime BETWEEN @FromDate AND @ToDate)
Ý nghĩa của câu lệnh SQL trên như sau: Lấy ra thông tin về mã khách hàng, giới tính khách hàng, tuổi khách hàng, địa chỉ và nghề nghiệp của những khách hàng có sử dụng dịch vụ trong khoảng thời gian được xác định trước. Ở đây là trong tháng 5/2007. Nếu tuổi của khách hàng không được xác định (trong hệ thống nếu tuổi không được xác định thì hệ thống sẽ ghi vào 1 giá trị rỗng „‟) thì sẽ trả về một giá trị là dấu chấm hỏi “?”.
b. Thứ hai: Truy vấn các thông tin về số lượng các số điện thoại mà khách hàng đã gọi trong tháng và độ dài trung bình của các cuộc gọi mà mỗi khách hàng thực hiện. Việc này được thực hiện một cách dễ dàng thông qua một câu lệnh truy vấn trên CSDL tính cước.
DECLARE @FromDate AS DateTime DECLARE @ToDate AS DateTime
SET @FromDate = „05/01/2007 00:00:00.000‟ SET @ToDate = „05/31/2007 23:59.59.999‟
SELECT CustomerID, COUNT(DISTINCT Called_Station_ID) AS SoLuongSoGoi, SUM(Duration)/COUNT(DISTINCT Called_Station_ID) AS ThoiGianGoiTrungBinh FROM BillingData
WHERE TransactionTime BETWEEN @FromDate AND @ToDate c. Thứ ba: Thực hiện việc thống kê và phân lớp những khách hàng “mẫu” –
nghĩa là ta sẽ dựa trên các tiêu chí phân lớp khách hàng dựa trên số phút gọi, số các số điện thoại gọi đến hoặc số tiền mà khách hàng chi trong một tháng. Với 3 tiêu chí này chúng ta sẽ tạm thời có được sự phân lớp toàn bộ những khách hàng “mẫu”. Cụ thể ta sẽ cần viết một hàm để xác định lớp của từng khách hàng trong tập ví dụ huấn luyện dựa trên chính những tiêu chuẩn đã nhắc đến ở trên. Hàm này có đối số truyền vào là mã của một khách hàng và kết quả trả về sẽ là phân lớp của khách hàng với giá trị nằm trong tập hợp (1,2,3,4)
Đến đây chúng ta đã có được từng “mảnh” của bộ dữ liệu huấn luyện. Để có thể có được một file dữ liệu hoàn chỉnh ta cần ghép các “mảnh” dữ liệu nhận được từ các thao tác truy vấn ở trên. Sau khi tiến hành ghép lại ta sẽ có được một file dữ liệu huấn luyện có phần mở rộng là .data như sau (Dữ liệu chỉ có tính chất minh họa):
Hình 3.4 File dulieu.data
Với 2 file dữ liệu đã được chuẩn bị, chúng ta có thể bắt đầu chạy C4.5 để sinh ra cây quyết định và từ đó chạy C4.5Rules để có thể sinh ra các luật phân lớp khách hàng dựa trên tập ví dụ huấn luyện mà chúng ta đã có. Tuy nhiên, vì lý do khách quan mà học viên đã chuyển công tác sang một công ty khác trước khi luận văn này được hoàn thành. Vì thế học viên đã không thể có điều kiện tiếp cận được với CSDL thực sự của công ty VITC vì đó là thông tin rất quan trọng của doanh nghiệp và nếu bị tiết lộ ra ngoài có thể nó sẽ ảnh hưởng đến hoạt động kinh doanh của doanh nghiệp. Do vậy luận văn này đã chỉ dừng lại ở mức đề xuất ý tưởng và xây dựng giải pháp cũng như các công cụ để có thể tiến hành khai phá dữ liệu trên CSDL tính cước của công ty VITC với mục tiêu phân lớp được những đối tượng khách hàng ngay khi họ đăng ký sử dụng dịch vụ dựa trên những qui luật mà ta khai phá được từ CSDL tính cước. Những thông tin và sự phân lớp này có thể giúp doanh nghiệp xây dựng được một chính sách giá cạnh tranh nhất cho lớp đối tượng khách hàng tiềm năng nhất và đồng thời có được những chương trình, những kế
hoạch phát triển các chương trình tiếp thị nhằm vào những đối tượng khách hàng tiềm năng để từ đó quảng bá những dịch vụ mới mà công ty sẽ triển khai để từ đó thúc đẩy hoạt động kinh doanh của doanh nghiệp. .
KẾT LUẬN
Khai phá dữ liệu là một lĩnh vực tuy còn mới mẻ nhưng nó là một hướng đi đúng đắn và có nhu cầu ngày càng lớn trong rất nhiều lĩnh vực xã hội. Với sự phát triển mạnh mẽ của các hệ thống thông tin, những cơ sở dữ liệu khổng lồ phát sinh với tốc độ lớn, các tri thức thông minh và hữu ích tiềm tàng trong kho các dữ liệu đồ sộ này cần được tiếp cận và khai phá một cách đúng đắn, khoa học và hiệu quả.
Ở chương 1, luận văn đã trình bày một cách tổng quan về khai phá dữ liệu và những quá trình, những kỹ thuật và kiến trúc của một hệ thống khai phá dữ liệu nói chung. Bên cạnh đó, luận văn cũng đi vào tìm hiểu và phân tích một số phương pháp khai phá dữ liệu phổ biến hiện đang được ứng dụng rộng rãi như phương pháp quy nạp, cây quyết định, phân nhóm … để từ đó có được những đánh giá và nhìn nhận chung nhất về toàn bộ những vấn đề có liên quan đến một lĩnh vực hết sức mới mẻ nhưng đầy tiềm năng này.
Chương 2 của luận văn được dành riêng cho việc nghiên cứu và đánh giá về một phương pháp khai phá dữ liệu tương đối phổ biến và dễ sử dụng đối với rất nhiều người đó là phương pháp khai phá dữ liệu sử dụng cây quyết định và luật. Chương này tập trung vào việc nghiên cứu và trình bày những vấn về cơ bản về cây quyết định như: Hoạt động của cây quyêt định, phương pháp xây dựng cây quyết định, các vấn đề nảy sinh khi làm việc với cây quyết định. Từ những nghiên cứu trên, luận văn đã phân tích được những ưu và nhược điểm của phương pháp này để từ đó có thể tận dụng tối đa những ưu điểm và tránh được những nhược điểm của nó trong khi triển khai các ứng dụng trong thực tế.
Chương cuối được dành để xây dựng ứng dụng “Phân lớp khách hàng sử dụng dịch vụ điện thoại quốc tế trả trước”. sử dụng chương trình c4.5, một chương trình mã nguồn mở chạy trên hệ điều hành Unix. Ứng dụng được phát triển với mục tiêu là cơ sở để phân lớp đối tượng khách hàng sử dụng dịch vụ điện thoại quốc tế trả
trước của công ty viễn thông VITC. Việc phân lớp đối tượng khách hàng là cơ sở để công ty có được một chính sách chăm sóc, tiếp cận từng lớp đối tượng khách hàng khác nhau.
Luận văn đã trình bày được một số khía cạnh về các kỹ thuật khai phá dữ liệu và đi vào nghiên cứu chi tiết phương pháp khai phá dữ liệu sử dụng cây quyết định – một phương pháp tỏ ra rất có hiệu quả đối với các bài toán phân lớp dữ liệu và đồng thời cũng tìm hiểu chi tiết về những điểm mạnh, yếu của phương pháp này. Ứng dụng được sử dụng trong luận văn là chương trình khai phá dữ liệu C4.5, một chương trình mã nguồn mở được phát triển dựa trên thuật toán ID3 để xây dựng cây quyết định và được phát triển, cài đặt thêm một số tính năng mà ID3 chưa thể xử lý được như cắt nhánh cây, xử lý các giá trị thuộc tính rỗng, các thuộc tính có giá trị liên tục … Tuy nhiên, do yếu tố khách quan nên tác giả đã không thể có được bộ dữ liệu huấn luyện một cách đầy đủ vì khi luận văn bắt đầu được thực hiện thì tác giả đã chuyển công tác sang một công ty khác, vì thế việc tiếp cận với nguồn dữ liệu để thực hiện khai phá như dự kiến ban đầu là không thể được thực hiện. Vì vậy, ứng dụng mới chỉ dừng lại ở mức độ đề xuất ý tưởng và xây dựng các công cụ hỗ trợ chứ chưa được chạy trên dữ liệu chính thức. Hi vọng rằng, với sự cải tiến thêm về giao diện và sự đầu nhiều hơn thì ứng dụng sẽ trở thành một công cụ rất hữu ích cho bộ phận tiếp thị và chăm sóc khách hàng của công ty VITC trong việc tiếp cận, phân loại, chăm sóc khách hàng cũng như quảng bá những dịch vụ giá trị gia tăng của doanh nghiệp đến với khách hàng.
TÀI LIỆU THAM KHẢO
Tiếng Việt
[1] Vũ Đức Thi, Cơ sở dữ liệu – Kiến trúc và thực hành, Nhà xuất bản thống kê năm 1997.
[2] Vũ Đức Thi, Lê Hải Khôi (1999), Một số nguyên lý hoạt động của kho dữ liệu, Tạp chí Tin học và Điều khiển, Tr 27, 29-32.
[3] Nguyễn Thanh Thủy, Khai phá dữ liệu – Kĩ thuật và ứng dụng tháng 8- 2001.
[4] Phan Đình Diệu, Logic trong các hệ tri thức, Hà Nội 1999.