1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ phân tích và tìm hiểu độ trung thành của khách hàng bằng phương pháp phân lớp kết hợp

87 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 87
Dung lượng 1,74 MB
File đính kèm phuong-phap-phan-lop-ket-hop.zip (2 MB)

Cấu trúc

  • 1. GIỚI THIỆU (11)
  • 2. MỤC TIÊU, NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU (12)
  • 3. TỔNG QUAN VỀ LĨNH VỰC NGHIÊN CỨU (13)
  • CHƯƠNG 1: GIỚI THIỆU VỀ KHAI PHÁ DỮ LIỆU (15)
    • 1.1. Tổng quan về khai thác dữ liệu (15)
      • 1.1.1. Khái niệm (15)
      • 1.1.2. Các kỹ thuật khai thác dữ liệu (15)
      • 1.1.3. Quá trình khai thác dữ liệu (16)
      • 1.1.4. Nhiêm vụ chính của khai thác dữ liệu (19)
      • 1.1.5. Ứng dụng của khai thác dữ liệu (21)
    • 1.2. Một số phương pháp khai thác dữ liệu (22)
      • 1.2.1. Phương pháp quy nạp (22)
      • 1.2.2. Cây quyết định và luật (23)
      • 1.2.3. Phát hiện các luật kết hợp (23)
      • 1.2.4. Mạng Neuron (24)
      • 1.2.5. Giải thuật di truyền (25)
  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT (27)
    • 2.1. Tổng quan về luật kết hợp (27)
      • 2.1.1. Giới thiệu (27)
      • 2.1.2. Một số hướng tiếp cận trong khai thác luật kết hợp (27)
    • 2.2. Khai thác luật kết hợp (28)
      • 2.2.1. Định nghĩa (28)
      • 2.2.2. Phát biểu bài toán khai phá luật kết hợp (29)
    • 2.3. Khai thác luật phân lớp (31)
      • 2.3.1. Giới thiệu (31)
      • 2.3.2. Quá trình phân lớp (32)
      • 2.3.3. Một số phương pháp phân lớp (34)
    • 2.4. Khai thác luật phân lớp dựa vào luật kết hợp (34)
      • 2.4.1. Giới thiệu (34)
      • 2.4.2. Bài toán luật phân lớp kết hợp (35)
  • CHƯƠNG 3: PHÁT BIỂU BÀI TOÁN VÀ LUẬT PHÂN LỚP KẾT HỢP (37)
    • 3.1. Giới thiệu (37)
    • 3.2. Phân lớp dựa vào khai thác luật kết hợp (39)
      • 3.2.1. Một số định nghĩa (39)
      • 3.2.2. Cấu trúc cây MECR (40)
      • 3.2.3. Thuật toán khai thác hiệu quả cho CAR-Miner (42)
      • 3.2.4. Thuật toán CAR-Miner (43)
  • CHƯƠNG 4: KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ (45)
    • 4.1. Môi trường thực nghiệm (45)
      • 4.1.1. Tổng quan về python (45)
      • 4.1.2. Đặc điểm của python (46)
      • 4.1.3. Các ứng dụng của python (47)
      • 4.1.4. Một số thư viện và lệnh trong python (48)
    • 4.2. Tập dữ liệu thực nghiệm (54)
      • 4.2.1. Thông tin tập dữ liệu (54)
      • 4.2.2. Tiền xử lý dữ liệu (57)
      • 4.2.3. Đánh giá dữ liệu (61)
    • 4.3. Kết quả thực nghiệm (70)
  • TÀI LIỆU THAM KHẢO (86)

Nội dung

Thuật toán AIS do Agrawal đưa ra năm 1993. Thuật toán này chú trọng khai phá luật kết hợp có dạng X>Y, với Y là tập hợp chỉ bao gồm 1 tính chất (tập hợp 1 phần tử). Thuật toán tìm cách xây dựng dần dần các tập ứng cử viên cho “chức vụ” tập hợp xuất hiện – thường xuyên. Với cách đánh số thứ tự từ điển cho từng tính chất, việc bổ sung phần tử cho tập ứng cử viên tránh được trùng lặp, do vậy tiết kiệm tối đa thời gian tính toán. Thuật toán Apriori do Agrawal đề xuất năm 1994, được Cheung đánh giá mang tính chất lịch sử trong lĩnh vực KPLKH, vì đã vượt xa tầm của các thuật toán quen thuộc trong lĩnh vực này. Thuật toán dựa trên một nhận xét khá đơn giản là bất kỳ tập hợp con nào của tập xuất hiện – thường xuyên cũng là tập xuất hiện – thường xuyên. Do đó, trong quá trình đi tìm các tập ứng cử viên, nó chỉ cần dùng đến các tập ứng cử viên vừa xuất hiện ở bước ngay trước đó, chứ không cần dùng đến tất cả các tập ứng cử viên (cho đến thời điểm đó). Nhờ vậy, bộ nhớ được giải phóng đáng kể. Thuật toán SETM do Houtsma đề nghị năm 1995. Thuật toán này cũng sử dụng kỹ thuật bổ sung dần dần từng phần tử (từ tập hợp 1 phần tử) nhằm tìm kiếm các tập hợp ứng cử viên. Một cải tiến đáng kể là Thuật toán đề nghị lưu lại cả ID của giao dịch cùng với tập hợp ứng cử viên. Agrawal đã chỉ ra, Thuật toán này không những không có phương án quản lý bộ nhớ mà nó còn giả định nhét toàn bộ tập hợp ứng cử viên của bước trước vào bộ nhớ để bước sau tiệnbề sử dụng. Sarawagi đã chỉ ra thuật toán này không hiệu quả. Có nhiều phương pháp khai thác luật phân lớp được phát triển gồm C4.5, ILA và ILA2. Gần đây, một phương pháp phân lớp từ khai thác dữ liệu, gọi là phân lớp dựa trên sự kết hợp (CBA), được đề xuất cho việc khai thác phân lớp dựa trên luật kết hợp (CARs). Trong khai thác luật kết hợp, thuộc tính đích (hoặc thuộc tính lớp) là không được xác định trước. Tuy nhiên, thuộc tính đích phải được xác định trước trong vấn đề phân lớp. Do đó, một số thuật toán cho khai thác luật phân lớp dựa trên khai thác luật kết hợp được đề xuất như:  Phân lớp dựa trên luật kết hợp dự đoán.  Phân lớp dựa trên nhiều luật kết hợp.  Phân lớp dựa trên sự kết hợp.  Phân lớp kết hợp đa lớp.  Phân loại kết hợp dựa trên entropy tối đại.  Dùng cây lớp tương đương. Một số nghiên cứu cho thấy phân loại dựa trên luật kết hợp lớp chính xác hơn các phương pháp truyền thống như C4.5, ILA về cả lý thuyết và kết quả thực nghiệm. Veloso đề xuất phân lớp kết hợp lười. Thuật toán di truyền cũng được áp dụng cho việc khai thác CARs, và một số phương pháp tiếp cận được đề xuất như sau:  Phương pháp tiếp cận dựa trên GA để xây dựng bộ phân loại cho bộ dữ liệu số và áp dụng nó vào dữ liệu giao dịch chứng khoá.  Phương pháp dựa trên GA mà không cần ngưỡng độ hỗ trợ tối thiểu hoặc độ tin cậy tối thiểu.  Ngoài ra, cũng có một số nghiên cứu cải tiến thuật toán khai thác luật phân lớp kết hợp được đề xuất như:  Thuật toán khai thác hiệu quả luật phân lớp kết hợp CARMiner.  Thuật toán cải tiến khai thác luật phân lớp kết hợp dùng sự khác nhau về bộ định danh các đối tượng chứa tập phổ biến.

GIỚI THIỆU

Ngày nay, con người đang sở hữu kho dữ liệu đa dạng, phong phú, và khổng lồ Đặc biệt với sự phát triển của công nghệ thông tin và việc ứng dụng công nghệ thông tin trong nhiều lĩnh vực đã làm cho kho dữ liệu ấy tăng lên nhanh chóng Sự bùng nổ này đã dẫn tới một yêu cầu cấp thiết là cần có những kỹ thuật và công cụ mới để tự động chuyển đổi lượng dữ liệu khổng lồ kia thành các tri thức có ích Mặt khác, trong môi trường cạnh tranh thì người ta ngày càng cần có thông tin với tốc độ nhanh để giúp cho việc ra quyết định và ngày càng có nhiều câu hỏi mang tính chất định tính cần phải trả lời dựa trên khối lượng dữ liệu khổng lồ đã có Tiến hành các công việc như vậy chính là quá trình phát hiện tri thức trong cơ sở dữ liệu, trong đó kỹ thuật khai thác dữ liệu cho phép phát hiện tri thức tiềm ẩn để phục vụ người dùng Từ đó, các kỹ thuật khai thác dữ liệu đã trở thành một lĩnh vực thời sự của nền công nghệ thông tin thế giới hiện nay nói chung và Việt Nam nói riêng Rất nhiều tổ chức và công ty lớn trên thế giới đã áp dụng kỹ thuật khai thác dữ liệu vào các hoạt động sản xuất kinh doanh của mình và thu được những lợi ích to lớn. Các kỹ thuật phát hiện tri thức và khai thác dữ liệu được thực hiện qua nhiều giai đoạn và sử dụng nhiều kỹ thuật: phân lớp (classification), phân cụm (clustering), phân tích sự tương tự (similarity analysis), tổng hợp (summarization), luật kết hợp (association rules), … Một trong những nội dung cơ bản và phổ biến trong khai thác dữ liệu là phát hiện các luật kết hợp Phương pháp này nhằm tìm ra các tập thuộc tính thường xuất hiện đồng thời trong cơ sở dữ liệu và rút ra các luật về ảnh hưởng của một tập thuộc tính dẫn đến sự xuất hiện của một hoặc nhiều tập thuộc tính khác như thế nào? Do đó việc phát hiện ra các luật kết hợp là một bước rất quan trọng trong khai thác dữ liệu.

Lý do chọn đề tài

Nắm bắt được nhu cầu đó, nhiều giải pháp đã được áp dụng nhằm rút trích tri thức, trong đó khai thác luật kết hợp là một trong những bài toán thu hút được nhiều sự quan tâm nghiên cứu của các nhà nghiên cứu trên thế giới Cũng đã có nhiều giải pháp được đề xuất cho vấn đề khai thác luật như luật khai thác luật truyền thống, khai thác luật không dư thừa.

Tuy nhiên những phương pháp trên chỉ tập trung chủ yếu trong việc xây dựng thuật toán phân lớp dựa trên luật kết hợp hoặc xây dựng luật phân lớp, mà không thảo luận nhiều về vấn đề thời gian thực thi (khai thác) của các thuật toán Hơn thế nữa, khai thác phân lớp dựa trên luật kết hợp (CARs) tiêu tốn rất nhiều thời gian bởi vì nó khai thác một tập đầy đủ các luật thỏa ngưỡng.

Vì thế, cải thiện thời gian khai thác phân lớp dựa trên luật kết hợp là một trong những vấn đề chính cần được giải quyết.

Khai thác luật phân lớp kết hợp có thể áp dụng trong nhiều lĩnh vực như mua bán, phân tích tài chính, phân tích báo cáo kinh doanh, phân loại khách hàng để từ đó phân định thị trường, thị phần…Tăng sức cạnh tranh, làm thế nào để giữ được khách hàng cũ và thuvhút được thêm nhiều khách hàng mới Phân tích rủi ro trước khi ravcác quyết định quan trọng trong chiến lược hoạt động sản xuất kinh doanh. Tất cả các nhu cầu xã hội trên đòi hỏi cần phải có một phương thức, công cụ nào đó hỗ trợ bên cạnh các chuyên gia kinh tế.

Từ những vấn đề nêu trên, tôi chọn đề tài “Tìm hiểu độ trung thành của khách hàng bằng phương pháp phân lớp kết hợp” để làm luận văn tốt nghiệp góp một phần nhỏ vào yêu cầu trên.

MỤC TIÊU, NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU

Mục tiêu của đề tài

Tìm hiểu về khai thác dữ liệu, trong đó đi sâu về khai thác luật phân lớp kết hợp.

Tìm hiểu phương pháp khai thác luật phân lớp kết hợp (CAR – Miner).

Cập nhật thuật toán CAR-Miner để áp dụng vào nhu cầu thực tế.

Thực nghiệm kiểm tra sự trung của khách hàng. Đối tượng và phạm vi nghiên cứu

Nghiên cứu các phương pháp khai thác luật phân lớp kết hợp đã có Nghiên cứu thuật toán CAR-Miner.

Ứng dụng khai thác luật phân lớp kết hợp và việc tìm hiểu độ trung thành của khách hàng.

Phương pháp luận và phương pháp nghiên cứu

Tìm hiểu các tài liệu trong và ngoài nước về khai thác dữ liệu, luật phân lớp và luật kết hợp.

Tìm hiểu thuật toán CAR-Miner trong bài toán phân lớp dựa vào luật kết hợp.

Tiến hành cài đặt thuật toán ứng dụng khai thác dữ liệu tìm hiểu độ trung thành của khách hàng.

TỔNG QUAN VỀ LĨNH VỰC NGHIÊN CỨU

Thuật toán AIS do Agrawal đưa ra năm 1993 Thuật toán này chú trọng khai phá luật kết hợp có dạng X->Y, với Y là tập hợp chỉ bao gồm 1 tính chất (tập hợp 1 phần tử) Thuật toán tìm cách xây dựng dần dần các tập ứng cử viên cho “chức vụ” tập hợp xuất hiện – thường xuyên Với cách đánh số thứ tự từ điển cho từng tính chất, việc bổ sung phần tử cho tập ứng cử viên tránh được trùng lặp, do vậy tiết kiệm tối đa thời gian tính toán.

Thuật toán Apriori do Agrawal đề xuất năm 1994, được Cheung đánh giá mang tính chất lịch sử trong lĩnh vực KPLKH, vì đã vượt xa tầm của các thuật toán quen thuộc trong lĩnh vực này Thuật toán dựa trên một nhận xét khá đơn giản là bất kỳ tập hợp con nào của tập xuất hiện – thường xuyên cũng là tập xuất hiện – thường xuyên Do đó, trong quá trình đi tìm các tập ứng cử viên, nó chỉ cần dùng đến các tập ứng cử viên vừa xuất hiện ở bước ngay trước đó, chứ không cần dùng đến tất cả các tập ứng cử viên (cho đến thời điểm đó) Nhờ vậy, bộ nhớ được giải phóng đáng kể.

Thuật toán SETM do Houtsma đề nghị năm 1995 Thuật toán này cũng sử dụng kỹ thuật bổ sung dần dần từng phần tử (từ tập hợp 1 phần tử) nhằm tìm kiếm các tập hợp ứng cử viên Một cải tiến đáng kể là Thuật toán đề nghị lưu lại cả ID của giao dịch cùng với tập hợp ứng cử viên Agrawal đã chỉ ra, Thuật toán này không những không có phương án quản lý bộ nhớ mà nó còn giả định nhét toàn bộ tập hợp ứng cử viên của bước trước vào bộ nhớ để bước sau tiệnbề sử dụng. Sarawagi đã chỉ ra thuật toán này không hiệu quả.

Có nhiều phương pháp khai thác luật phân lớp được phát triển gồm C4.5, ILA và ILA-2 Gần đây, một phương pháp phân lớp từ khai thác dữ liệu, gọi là phân lớp dựa trên sự kết hợp (CBA), được đề xuất cho việc khai thác phân lớp dựa trên luật kết hợp (CARs).

Trong khai thác luật kết hợp, thuộc tính đích (hoặc thuộc tính lớp) là không được xác định trước Tuy nhiên, thuộc tính đích phải được xác định trước trong vấn đề phân lớp Do đó, một số thuật toán cho khai thác luật phân lớp dựa trên khai thác luật kết hợp được đề xuất như:

Phân lớp dựa trên luật kết hợp dự đoán.

Phân lớp dựa trên nhiều luật kết hợp.

Phân lớp dựa trên sự kết hợp.

Phân lớp kết hợp đa lớp.

Phân loại kết hợp dựa trên entropy tối đại.

Dùng cây lớp tương đương.

Một số nghiên cứu cho thấy phân loại dựa trên luật kết hợp lớp chính xác hơn các phương pháp truyền thống như C4.5, ILA về cả lý thuyết và kết quả thực nghiệm Veloso đề xuất phân lớp kết hợp lười Thuật toán di truyền cũng được áp dụng cho việc khai thác CARs, và một số phương pháp tiếp cận được đề xuất như sau:

Phương pháp tiếp cận dựa trên GA để xây dựng bộ phân loại cho bộ dữ liệu số và áp dụng nó vào dữ liệu giao dịch chứng khoá.

Phương pháp dựa trên GA mà không cần ngưỡng độ hỗ trợ tối thiểu hoặc độ tin cậy tối thiểu.

Ngoài ra, cũng có một số nghiên cứu cải tiến thuật toán khai thác luật phân lớp kết hợp được đề xuất như:

Thuật toán khai thác hiệu quả luật phân lớp kết hợp CAR-Miner.

Thuật toán cải tiến khai thác luật phân lớp kết hợp dùng sự khác nhau về bộ định danh các đối tượng chứa tập phổ biến.

GIỚI THIỆU VỀ KHAI PHÁ DỮ LIỆU

Tổng quan về khai thác dữ liệu

Khai thác dữ liệu là một khái niệm ra đời vào những năm cuối của thập kỷ 80, nó là quá trình tìm kiếm, khám phá d ưới nhiều góc độ khác nhau nhằm phát hiện các mối liên hệ, quan hệ giữa các dữ liệu, đối tượng bên trong CSDL, kết quả của việc khai phá là xác định các mẫu hay các mô hình tồn tại bên trong nhưng chúng nằm ẩn ở các CSDL Về bản chất nó là giai đoạn duy nhất rút trích và tìm ra được các mẫu, các mô hình h ay thông tin mới, tri thức tiềm ẩn có trong CSDL chủ yếu phục vụ cho mô tả và dự đoán Đây là giai đoạn quan trọng nhất trong quá trình phát hiện tri thức từ CSDL, các tri thức này hỗ trợ trong việc ra quyết định, điều hành trong khoa học và kinh doanh.

Khai thác dữ liệu là tiến trình khám phá tri thức tiềm ẩn trong các CSDL, cụ thể hơn, đó là tiến trình lọc, sản sinh những tri thức hoặc các mẫu tiềm ẩn, chưa biết những thông tin hữu ích từ các CSDL lớn.

Khai thác dữ liệu có những điểm khác nhau về mặt ngữ nghĩa so với phát hiện tri thức từ cơ sở dữ liệu nhưng thực tế ta thấy khai thác dữ liệu là chỉ một giai đoạn phát hiện tri thức trong một chuỗi các giai đoạn quá trình phát hiện tri thức trong cơ sở dữ liệu Tuy nhiên đây là giai đoạn đóng vai trò chủ chốt và là giai đoạn chính tạo nên tính đa ngành của phát hiện tri thức trong cơ sở dữ liệu.

1.1.2 Các kỹ thuật khai thác dữ liệu

Kỹ thuật khai thác dữ liệu thường được chia làm 2 nhóm chính:

+ Kỹ thuật khai thác dữ liệu mô tả

Có nhiệm vụ mô tả về các tính chất hoặc các đặc tính chung của dữ liệu trongCSDL hiện có Các kỹ thuật này gồm có: Phân cụm (clustering), tóm tắt(summerization), trực quan hoá (visualiztion), phân tích sự phát triển và độ lệch

(Evolution and deviation analyst), phân tích luật kết hợp (association rules).v.v.

+ Kỹ thuật khai thác dữ liệu dự đoán

Có nhiệm vụ đưa ra các dự đoán dựa vào các suy diễn trên dữ liệu hiện thời. Các kỹ thuật này gồm có: Phân lớp (classification), hồi quy (regression)…

1.1.3 Quá trình khai thác dữ liệu

Các cơ sở dữ liệu thu được thường chứa rất nhiều thuộc tính nhưng lại không đầy đủ, không thuần nhất, có nhiều lỗi và các giá trị đặc biệt Vì vậy giai đoạn thu thập và tiền xử lý dữ liệu trở nên rất quan trọng trong quá trình phát hiện tri thức từ cơ sở dữ liệu Có thể nói giai đoạn này chiếm từ 70%-80% giá thành trong toàn bộ bài toán.

Người ta chia giai đoạn và tiền xử lý dữ liệu như: Gom dữ liệu, chọn dữ liệu, làm sạch, mã hoá dữ liệu, làm giàu, đánh giá và trình diễn dữ liệu Các công đoạn này được thực hiện theo trình tự nhất định cụ thể như sau:

Làm giàu DL Làm sạch DL Đánh giá & trình diễn

Hình 1.1 Quá trình khai thác dữ liệu

Tập hợp dữ liệu là bước đầu tiên trong quá trình khai thác dữ liệu Đây là bước được khai thác trong một cơ sở dữ liệu, một kho dữ liệu và thậm chí các dữ liệu từ các nguồn ứng dụng Web.

Chọn lọc dữ liệu Ở giai đoạn này dữ liệu được lựa chọn hoặc phân chia theo một số tiêu chuẩn nào đó Đây là giai đoạn chọn lọc, trích rút các dữ liệu cần thiết tứ cơ sở dữ liệu tác nghiệp vào một cơ sở dữ liệu riêng Chúng ta chọn ra những dữ liệu cần thiết cho các giai đoạn sau Tuy nhiên công việc thu gom dữ liệu vào một cơ sở dữ liệu thường rất kho khăn vì dữ liệu nằm rải rác khắp nơi trong cơ quan, tổ chức cùng một loại thông tin, nhưng được tạo lập theo các dạng hình thức khác nhau Ví dụ nơi này dùng kiểu chuỗi, nơi kia lại dùng kiểu số để khai báo một thuộc tính nào đó của khách hàng Đồng thời chất lượng dữ liệu của các nơi cũng không giống nhau.

Vì vậy chúng ta cần chọn lọc dữ liệu thật tốt để chuyển sang giai đoạn tiếp theo

Giai đoan thứ ba này là giai đoạn hay bị sao lãng, nhưng thực tế nó là một bước rất quan trọng trong quá trình khai thác dữ liệu Một số lỗi thường mắc phải trong khi gom dữ liệu là tính không đủ chặt chẻ, logíc Vì vậy, dữ liệu thường chứa các giá trị vô nghĩa và không có khả năng kết nối dữ liệu Giai đoạn này sẽ tiến hành xử lý những dạng dữ liệu không chặt chẽ nói trên Những dữ liệu dạng này được xem như thông tin dư thừa, không có giá trị Bởi vậy, đây là một quá trình rất quan trọng vì dữ liệu này nếu không được “làm sạch - tiền xử lý - chuẩn bị trước” thì sẽ gây nên những kết quả sai lệch nghiệm trọng.

Giai đoạn này thực hiện một số chức năng sau:

- Nhất quán dữ liệu: Công việc này nhằm giảm bớt tính không nhất quán dữ liệu lấy từ nhiều nguồn khác nhau Phương pháp thông thường là khử các trường hợp trùng lặp dữ liệu và thống nhất các ký hiệu Ví dụ một khách hàng có thể có nhiều bản ghi do việc nhập sai tên hoặc do quá trình thay đổi một số thông tin cá nhân gây ra và tạo ra sự nhầm lẫn là có nhiều khách hàng.

- Xử lý các giá trị khuyết: Tính không đầy đủ của dữ liệu có thế gây ra hiện tượng dữ liệu chứa các giá trị khuyết Đây là hiện tượng khá phổ biến Người ta sử dụng nhiều phương pháp khác nhau để xứ lý các giá trị khuyết như: Bỏ qua các bộ có giá trị khuyết, điểm bổ sung bằng tay, dùng một hằng chung để bổ sung vào giá trị khuyết, dùng giá trị trung bình của mọi bản ghi trên thuộc tinh khuyết, dùng giá trị trung bình của mọi bản ghi cùng lớp hoặc dùng các giá trị mà tần suất xuất hiện lớn nhất.

- Xử lý nhiễu và các ngoại lệ: Thông thường nhiễu dữ liệu có thể là nhiễu ngẫu nhiên hoặc các giá trị bất bình thường Để làm sạch nhiễu, người ta có thể sử dụng phương pháp làm trơn nhiễu hoặc dùng các giải thuật phát hiện ra các ngoại lệ để xử lý.

Mục đích của giai đoạn này là bổ sung thêm nhiều loại thông tin có liên quan vào cơ sở dữ liệu gốc Để làm được điêu này, chúng ta phải có các cơ sở dữ liệu khác ở bên ngoài có liên quan tới cơ sở dữ liệu gốc ban đầu Ta tiến hành bổ sung những thông tin cần thiết, làm tăng khả năng khám phá tri thức. Đây là bước mang tính tư duy trong khai thác dữ liệu.Ở giai đoạn này nhiều thuật toán khác nhau đã được sử dụng để trích ra các mẫu từ dữ liệu Thuật toán thường dùng là nguyên tắc phân loại, nguyên tắc kết hợp hoặc các mô hình dữ liệu tuần tự, v v.

Quá trình làm giàu bao gồm việc tích hợp và chuyển đổi dữ liệu Các dữ liệu từ nhiều nguồn khác nhau được tích hợp thành một kho thông nhất Các khuôn dạng khác nhau của dữ liệu cũng được quy đổi, tính toán lại để đưa về một kiểu thống nhất, tiện cho quá trình phân tích.

Một số phương pháp khai thác dữ liệu

Một cơ sở dữ liệu là một kho thông tin nhưng các thông tin quan trọng hơn cũng có thể được suy diễn từ kho thông tin đó Có hai kỹ thuật chính để thực hiện việc này là suy diễn và quy nạp.

Phương pháp suy diễn: Nhằm rút ra thông tin là kết qủa logic của các thông tin trong cơ sở dữ liệu Phương pháp suy diễn dựa trên các sự kiện chính xác để suy ra các tri thức mới từ các thông tin cũ Mẫu chiết xuất được bằng cách sử dụng phương pháp này thường là các luật suy diễn.

Phương pháp quy nạp: Phương pháp quy nạp suy ra các thông tin được sinh ra từ cơ sở dữ liệu Có nghĩa là nó tự tìm kiếm, tạo mẫu và sinh ra tri thức chứ không phải bắt đầu với các tri thức đã biết trước Các thông tin mà phương pháp này đem lại là các thông tin hay các tri thức cấp cao diễn tả về các đối tượng trong cơ sở dữ liệu Phương pháp này liên quan đến việc tìm kiếm các mẫu trong cở sở dữ liệu (CSDL) Trong khai thác dữ liệu, quy nạp được sử dụng trong cây quyết định và tạo luật.

1.2.2 Cây quyết định và luật

Cây quyết định: Là một mô tả tri thức dạng đơn giản nhằm phân các đối tượng dữ liệu thành một số lớp nhất định Các nút của cây được gán nhãn là tên các thuộc tính, các cạnh được gán các giá trị có thể của các thuộc tính, các lá mô tả các lớp khác nhau Các đối tượng được phân lớp theo các đường đi trên cây, qua các cạnh tương ứng với các giá trị, thuộc tính của đối tượng tới lá.

Tạo luật: Các luật được tạo ra nhằm suy diễn một số mẫu dữ liệu có ý nghĩa về mặt thống kê Các luật có dạng Nếu P thì Q, với P là mệnh đề đúng một phần trong CSDL, Q là mệnh đề dự đoán.

Cây quyết định và luật có ưu điểm là hình thức mô tả đơn giản, mô hình suy diễn khá dễ hiểu đối với người sử dụng Tuy nhiên, giới hạn của nó là mô tả cây và luật chỉ có thể biểu diễn được một số dạng chức năng, vì vậy giới hạn về cả độ chính xác của mô hình.

1.2.3 Phát hiện các luật kết hợp

Phương pháp này nhằm phát hiện ra các luật kết hợp giữa các thành phần dữ liệu trong cơ sở dữ liệu Mẫu đầu ra của giải thuật khai thác dữ liệu là tập luật kết hợp tìm được Ta có thể lấy một ví dụ đơn giản về luật kết hợp như sau: sự kết hợp giữa hai thành phần A và B có nghĩa là sự xuất hiện của A trong dòng kéo theo sự xuất hiện của B trong cùng dòng đó: A  B.

Ví dụ chỉ có số ít người mua sách ngoại ngữ mà mua thêm đĩa CD Số lượng các luật kết hợp trong một số cơ sở dữ liệu lớn gần như vô hạn Do vậy thuật toán sẽ không thể phát hiện hết các luật và không phân biệt được luật nào là thông tin thực sự có giá trị và thú vị.

Vậy chúng ta đặt ra câu hỏi là luật kết hợp nào là thực sự có giá trị ? Chẳng hạn ta có luật: Âm nhạc, ngoại ngữ, thể thao  CD, nghĩa là những người mua sách âm nhạc, ngoại ngữ, thể thao thì cũng mua đĩa CD Lúc đó ta quan tâm đến số lượng trường hợp khách hàng thoả mãn luật này trong cơ sở dữ liệu hay độ hỗ trợ cho luật này Độ hỗ trợ cho luật chính là phần trăm số dòng có cả sách âm nhạc, ngoại ngữ, thể thao và đĩa CD hay tất cả những người thích cả ba loại sách trên. Tuy nhiên, giá trị hỗ trợ là không đủ Có thể có trường hợp ta có một nhóm tương đối những người mua cả ba loại sách trên nhưng lại có một nhóm với lượng lớn hơn những người thích sách thể thao, âm nhạc, ngoại ngữ mà không thích mua đĩa CD Trong trường hợp này tính kết hợp rất yếu mặc dù độ hỗ trợ tương đối cao. Như vậy chúng ta cần thêm một độ đo thứ hai đó là độ tin cậy (Confidence). Độ tin cậy là phần trăm các dòng có đĩa CD trong số các dòng có sách âm nhạc, thể thao, ngoại ngữ.

Nhiệm vụ của việc phát hiện các luật kết hợp là phải tìm tất cả các luật dạng X

 B sao cho tần số của luật không nhỏ hơn độ hỗ trợ tối thiểu (minimum support - minSup) cho trước và độ tin cậy của luật không nhỏ hơn độ tin cậy tối thiểu (Min Confidence - minConf) cho trước Từ một cơ sở dữ liệu ta có thể tìm được hàng nghìn và thậm chí hàng trăm nghìn các luật kết hợp.

Mạng Neuron là tiếp cận tính toán mới liên quan tới việc phát triển cấu trúc toán học và khả năng học Các phương pháp là kết quả của việc nghiên cứu mô hình học của hệ thống thần kinh con người.

Mạng Neuron có thể đưa ra ý nghĩa từ các dữ liệu phức tạp hoặc không chính xác và có thể được sử dụng để chiết xuất các mẫu và phát hiện ra các xu hướng quá phức tạp mà con người cũng như các kỹ thuật máy tính khác không thể phát hiện

Mẫu chiết xuất được được Khi đề cập đến khai thác dữ liệu, người ta thường đề cập nhiều đến mạng Neuron Tuy mạng Neuron có một số hạn chế gây khó khăn trong việc áp dụng và phát triển nhưng nó cũng có những ưu điểm đáng kể.

Hình 1.2 Thể hiện sơ đồ khai thác dữ liệu bằng mạng Neuron.

Một trong số những ưu điểm phải kể đến của mạng Neuron là khả năng tạo ra các mô hình dự đoán có độ chính xác cao, có thể áp dụng được cho rất nhiều loại bài toán khác nhau, đáp ứng được nhiệm vụ đặt ra của khai thác dữ liệu như phân lớp, gom nhóm, mô hình hóa, dự báo các sự kiện phụ thuộc vào thời gian, v.v.

Giải thuật di truyền, nói theo nghĩa rộng là mô phỏng lại hệ thống tiến hóa trong tự nhiên, chính xác hơn đó là giải thuật chỉ ra tập các cá thể được hình thành, được ước lượng và biến đổi như thế nào? Ví dụ như xác định xem làm thế nào để lựa chọn các cá thể tạo giống và lựa chọn các cá thể nào sẽ bị loại bỏ Giải thuật cũng mô phỏng lại yếu tố gen trong nhiễm sắc thể sinh học trên máy tính để có thể giải quyết nhiều bài toán thực tế khác nhau.

CƠ SỞ LÝ THUYẾT

Tổng quan về luật kết hợp

Từ khi được giới thiệu từ năm 1993, bài toán khai thác luật kết hợp nhận được rất nhiều sự quan tâm của nhiều nhà khoa học Ngày nay việc khai thác các luật như thế vẫn là một trong những phương pháp khai thác mẫu phổ biến nhất trong việc khám phá tri thức và khai thác dữ liệu (Knowledge Discovery and Data mining - KDD).

Mục đích chính của khai thác dữ liệu là các tri thức được kết xuất ra sẽ được sử dụng trong dự báo thông tin trợ giúp trong sản xuất kinh doanh và nghiên cứu khoa học.

Trong hoạt động sản xuất kinh doanh, ví dụ kinh doanh các mặt hàng tại siêu thị, các nhà quản lý rất thích có được các thông tin mang tính thống kê như: “90% phụ nữ có xem máy màu đỏ và đeo đồng hồ Thuỵ Sỹ thì dùng nước hoa hiệu Chanel” hoặc “70% khách hàng là công nhân khi mua TV thường mua loại TV 21 inches” Những thông tin như vậy rất hữu ích trong việc định hướng kinh doanh. Vậy vấn đề đặt ra là liệu có tìm được các luật như vậy bằng các công cụ khai thác dữ liệu hay không? Câu trả lời là hoàn toàn có thể Đó chính là nhiệm vụ khai thác luật kết hợp.

2.1.2 Một số hướng tiếp cận trong khai thác luật kết hợp

Lĩnh vực khai thác luật kết hợp cho đến nay đã được nghiên cứu và phát triển theo nhiều hướng khác nhau Có những đề xuất nhằm cải tiến tốc độ thuật toán, có những đề xuất nhằm tìm kiếm luật có ý nghĩa hơn và có một số hướng chính sau đây:

- Luật kết hợp nhị phân (binary association rule hoặc Boolean association rule).

- Luật kết hợp tiếp cận theo hướng tập thô (mining association rules base on rough set).

- Luật kết nhiều mức (multi-level association rule).

- Luật kết hợp mờ (fuzzy association rule).

- Luật kết với thuộc tính được đánh trọng số (association rule with weighted items).

- Khai thác Luật kết hợp song song (parallel mining of association rules). Bên cạnh những nghiên cứu về những biến thể của luật kết hợp, các nhà nghiên cứu còn chú trọng đề xuất những thuật toán nhằm tăng tốc quá trình tìm kiếm tập phổ biến từ cơ sở dữ liệu.

Ngoài ra, còn có một số hướng nghiên cứu khác về khai thác luật kết hợp như:khai thác luật kết hợp trực tuyến, khai thác luật kết hợp được kết nối trực tuyến đến các kho dữ liệu đa chiều (Multidimensional data, data warehouse) thông qua công nghệ OLAP (Online Analysis Processing), MOLAP (multidimensional OLAP),ROLAP (Relational OLAP), ADO (Active X Data Object) cho OLAP v.v

Khai thác luật kết hợp

Gọi I = {I1, I2, , Im} là tập m thuộc tính riêng biệt, mỗi thuộc tính gọi là một mục Gọi D là một cơ sở dữ liệu, trong đó mỗi bản ghi T là một giao dịch và chứa các tập mục, T  I. Định nghĩa 2.1: Một luật kết hợp là một quan hệ có dạng X  Y, trong đó X,

Y  I là các tập mục gọi là Itemsets, và X∩Y=φ Ở đây, X được gọi là tiền đề,

Y là mệnh đề kết quả.

Thông số quan trọng nhất của luật kết hợp là độ hỗ trợ s (support) và độ tin cậy c (confidence). Định nghĩa 2.2: Độ hỗ trợ (Support) của luật kết hợp X  Y là tỷ lệ phần trăm các bản ghi X ∪Y với tổng số các giao dịch có trong cơ sở dữ liệu. Định nghĩa 2.3: Đối với một số giao dịch được đưa ra, độ tin cậy (confidence) là tỷ lệ của số giao dịch có chứa X ∪Y với số giao dịch có chứa X Đơn vị tính

Việc khai thác các luật kết hợp từ cơ sở dữ liệu chính là việc tìm tất cả các luật có độ hỗ trợ và độ tin cậy lớn hơn ngưỡng của độ hỗ trợ và độ tin cậy do người sử dụng xác định trước Các ngưỡng của độ hỗ trợ và độ tin cậy được ký hiệu là Minsup và Mincof.

Việc khai thác các luật kết hợp được phân tích thành hai vấn đề sau đây:

- Tìm tất cả các tập mục thường xuyên xảy ra mà có độ hỗ trợ lớn hơn hoặc bằng Minsup.

- Tạo ra các luật mong muốn sử dụng các tập mục lớn mà có độ tin cậy lớn hơn hoặc bằng Mincof.

2.2.2 Phát biểu bài toán khai phá luật kết hợp

I = {i1, i2, …, in } là tập bao gồm n mục (Item – còn gọi là các thuộc tính - attribute) X ¿ I được gọi là tập mục (Itemset).

T = {t1, t2,…,tm} là tập gồm m giao dịch (Transasction – còn gọi là bản ghi - Record), mỗi giao dịch được định danh bởi TID (Transaction Identification).

R là một quan hệ nhị phân trên I và T Nếu giao dịch t có chứa mục I thì ta viết (i, t) ¿ R (T, I, R) là ngữ cảnh khai thác dữ liệu Một CSDL, về mặt hình thức, chính là một quan hệ nhị phân R như trên

Về ý nghĩa, một CSDL là một tập các giao dịch, mỗi giao dịch t là một tập mục, t ¿ 2 I (2 I là tập các tập con của I).

Ví dụ về CSDL giao dịch: I = {A, B, C, D, E}, T = {1, 2, 3, 4, 5, 6}

Thông tin về các giao dịch cho ở bảng sau:

Bảng 2.1 Ví dụ về một CSDL giao dịch Định danh giao dịch (TID) Tập mục (Itemset)

Cho một tập mục X ¿ I Ký hiệu s (X) là Độ hỗ trợ (Support) của một tập mục X là tỷ lệ phần trăm số giao dịch trong CSDL D chứa X trên tổng số cac giao dịch trong CSDL D S (X) = Card (X)/Card (D)%

Tập mục phổ biến: Cho một tập mục X ¿ I và ngưỡng phổ biến tối thiểu Minsup ¿ (0, 1], (Minsup được xác định bởi người sử dụng) Một tập mục X được gọi là một tập phổ biến theo ngưỡng Minsup nếu và chỉ nếu độ hỗ trợ của nó lớn hơn hoặc bằng một ngưỡng Minsup: s (X) ¿ Minsup.

Ký hiệu FX (T, I, R, Minsup) = {X ¿ I | s (X) ¿ Minsup}

Với (T, I, R) trong ví dụ CSDL bảng 1, và giá trị ngưỡng Minsup = 50% sẽ liệt kê các tập mục phổ biến (Frenquent-Itemset) như sau:

Bảng 2.2 Tập mục thường xuyên Minsup = 50%

Tập mục phổ biến Độ hỗ trợ (s) tương ứng

A, C, D, AB, AE, BC, BD, ABE 67%

AD, CE, DE, ABD, ADE, BCE, BDE 50% Độ hỗ trợ s của luật kết hợp X → Y là tỷ lệ phần trăm các giao dịch trong

D có chứa X và Y là s (X → Y) = Card (X ¿ Y)/Card (D) %

Luật kết hợp có dạng X ⃗ c Y trong đó: X, Y là các tập mục thoả món điều kiện X ¿ Y = ỉ và c là độ tin cậy. Độ tin cậy của luật c = s (X ¿ Y)/s (X)%: Là tỷ lệ phần trăm các giao dịch trong D có chứa X thì chứa Y Về mặt xác suất, độ tin cậy c của một luật kết hợp là xác suất (có điểu kiện) xảy ra Y với điều kiện đã xảy ra X.

Luật kết hợp tin cậy: Một luật được xem là tin cậy nếu độ tin cậy c của nó lớn hơn hoặc bằng một ngưỡng Minconf ¿ (0, 1] nào đó do người dùng xác định. Ngưỡng Minconf phản ánh mức độ xuất hiện của Y khi cho trước X.( ( c ¿ Minconf) (Minimum Confidence))

Luật kết hợp cần tìm là luật kết hợp thoả mãn Minsup và Minconf cho trước.Chúng ta chỉ quan tâm đến các luật có độ hỗ trợ lớn hơn độ hỗ trợ tối thiểu và độ tin cậy lớn hơn độ tin cậy tối thiểu.

Hầu hết các thuật toán khai phá luật kết hợp thường chia thành 2 pha:

Pha 1: Tìm tất cả các tập mục phổ biến từ cơ sở dữ liệu tức là tìm tất cả các tập mục X thoả s (X) ¿ Minsup.

Pha 2: Sinh các luật tin cậy từ các tập phổ biến đã tìm thấy ở pha 1.

Nếu X là một tập mục phổ biến thì luật kết hợp được sinh ra từ X có dạng:

X’ là tập con khác rỗng của X.

X\X’ là hiệu của hai tập hợp X và X’. c là độ tin cậy của luật thoả mãn c ¿ Minconf

Với tập mục phổ biến trong bảng 4 thì chúng ta có thể sinh luật kết hợp sau đây: Bảng 2.3 Luật kết hợp sinh từ tập mục phổ biến ABE

Luật kết hợp Độ tin cậy c ¿ Minconf ?

Tập phổ biến tối đại: Cho M ¿ FX (T, I, R, Minsup) M được gọi là tập mục phổ biến tối đại nếu không tồn tại X ¿ FX (T, I, R, Minsup), M ¿ X, M ¿ X

Khai thác luật phân lớp

Kho dữ liệu luôn chứa rất nhiều các thông tin hữu ích có thể dùng cho việc ra các quyết định liên quan đến điều hành, định hướng của một đơn vị, tổ chức Phân lớp và dự đoán là hai dạng của quá trình phân tích dữ liệu được sử dụng để trích rút các mô hình biểu diễn các lớp dữ liệu quan trọng hoặc dự doán các dữ liệu phát sinh trong tương lai Kỹ thuật phân tích này giúp cho chúng ta hiểu kỹ hơn về các kho dữ liệu lớn Ví dụ chúng ta có thể xây dựng một mô hình phân lớp để xác định một giao dịch cho vay của ngân hàng là an toàn hay có rủi ro, hoặc xây dựng mô hình dự đoán để phán đoán khả năng chi tiêu của các khách hàng tiềm năng dựa trên các thông tin liên quan đến thu nhập của họ Rất nhiều các phương pháp phân lớp và dự đoán được nghiên cứu trong các lĩnh vực máy học, nhận dạng mẫu và thông kê Hầu hết các thuật toán đều có hạn chế về bộ nhớ với các giả định là kích thước dữ liệu đủ nhỏ

Kỹ thuật khai thác dữ liệu gần đây đã được phát triển để xây dựng các phương pháp phân lớp và dự đoán phù hợp hơn với nguồn dữ liệu có kích thước lớn.

Quá trình phân lớp thực hiện nhiệm vụ xây dựng mô hình các công cụ phân lớp giúp cho việc gán nhãn phân loại cho các dữ liệu Ví dụ nhãn “An toàn” hoặc

“Rủi ro” cho các yêu cầu vay vốn; “Có” hoặc “Không” cho các thông tin thị trường Các nhãn dùng phân loại được biểu diễn bằng các giá trị rời rạc trong đó việc sắp xếp trùng là không có ý nghĩa.

Phân lớp dữ liệu gồm hai quá trình:

Quá trình học: Trong quá trình này công cụ phân lớp sẽ được xây dựng để xem xét nguồn dữ liệu Trong đó một thuật toán phân lớp được xây dựng bằng cách phân tích hoặc “học” từ tập dữ liệu huấn luyện được xây dựng sẵn bao gồm nhiều bộ dữ liệu Một bộ dữ liệu X biểu diễn bằng một vector n chiều, X = (x1, x2,…, xn),đây là các giá trị cụ thể của một tập n thuộc tính của nguồn dữ liệu {A1, A2,…, An}.Mỗi bộ được giả sử rằng nó thuộc về một lớp được định nghĩa trước với các nhãn xác định.

Quá trình đầu tiên của phân lớp có thể được xem như việc xác định ánh xạ hoặc hàm y = f(X), hàm này có thể dự đoán nhãn y cho bộ X Nghĩa là với mỗi lớp dữ liệu chúng ta cần học (xây dựng) một ánh xạ hoặc một hàm tương ứng.

Quá trình phân lớp: Trong bước này, mô hình thu được sẽ được sử dụng để phân lớp Để đảm bảo tính khách quan nên áp dụng mô hình này trên một tập kiểm thử hơn là làm trên tập dữ liệu huấn luyện ban dầu Tính chính xác của mô hình phân lớp trên tập dữ liệu kiểm thử là số phần trăm các bộ dữ liệu kiểm tra được đánh nhãn đúng bằng cách so sánh chúng với các mẫu trong bộ dữ liệu huấn luyện.

Hình 2.2 Quá trình phân lớp

Nếu như độ chính xác của mô hình dự đoán là chấp nhận được thì chúng ta có thể sử dụng nó cho các bộ dữ liệu với thông tin nhãn phân lớp chưa xác định.

2.3.3 Một số phương pháp phân lớp

- Phương pháp quy nạp cây quyết định.

- Phương pháp bằng mạng lan truyền ngược.

- Phương pháp dựa trên nguyên lý khai thác luật kết hợp.

- Một số phương pháp phân lớp khác. o Dựa trên khoảng cách (K-Nearest Neighbor). o Giải thuật di truyền (Genetic Algorithms). o Tiếp cân tập thô. o Tiếp cận tập mờ. o Suy luận dựa trên trường hợp (Case-based reasoning).

Khai thác luật phân lớp dựa vào luật kết hợp

Phân lớp đóng vai trò quan trọng trong việc hỗ trợ ra quyết định hệ thống. Nhiều phương pháp khai thác luật phân lớp được phát triển gồm C4.5 [7], ILA [11] và ILA-2 [12] Gần đây, một phương pháp phân lớp từ khai thác dữ liệu, gọi là phân lớp dựa trên sự kết hợp (CBA), được đề xuất cho việc khai thác phân lớp dựa trên luật kết hợp (CARs) Phương pháp này có nhiều lợi ích hơn phương pháp heuristic và tham lam, trong đó các vấn đề trước có thể dễ dàng loại bỏ nhiễu, và độ chính xác cao hơn Nó tạo ra một bộ luật hoàn chỉnh hơn C4.5 và ILA.

Trong khai thác luật kết hợp, thuộc tính lớp (hoặc thuộc tính đích) là không được xác định trước Tuy nhiên, thuộc tính đích phải được xác định trước trong vấn đề phân lớp Do đó, một số phương pháp nhằm nâng cao hiệu quả khai thác luật phân lớp dựa trên khai thác luật kết hợp được đề xuất như:

- Phân lớp dựa trên luật kết hợp dự đoán [15].

- Phân lớp dựa trên nhiều luật kết hợp [14].

- Phân lớp dựa trên sự kết hợp [3].

- Phân lớp kết hợp đa lớp [9].

- Phân loại kết hợp dựa trên entropy tối đại [10].

Một số nghiên cứu cho thấy phân loại dựa trên luật kết hợp lớp chính xác hơn các phương pháp truyền thống như C4.5, ILA về cả lý thuyết và kết quả thực nghiệm Veloso đề xuất phân lớp kết hợp lười.

Thuật toán di truyền cũng được áp dụng cho việc khai thác CARs, và một số phương pháp tiếp cận được đề xuất như:

- Phương pháp tiếp cận dựa trên GA để xây dựng bộ phân loại cho bộ dữ liệu số và áp dụng nó vào dữ liệu giao dịch chứng khoán [1].

- Phương pháp dựa trên GA mà không cần ngưỡng độ hỗ trợ tối thiểu hoặc độ tin cậy tối thiểu [6].

Ngoài ra, cũng có một số nghiên cứu cải tiến thuật toán khai thác luật phân lớp kết hợp được đề xuất như:

- Thuật toán khai thác hiệu quả luật phân lớp kết hợp (CAR-Miner) [4].

- Thuật toán cải tiến khai thác luật phân lớp kết hợp dùng sự khác nhau về bộ định danh các đối tương chứa tâp phổ biến [5].

2.4.2 Bài toán luật phân lớp kết hợp

Khai thác luật phân lớp dựa vào khai thác luật kết hợp (Class Associaton

Rules - CARs) là tìm một tập con của các luật kết hợp có trong cơ sở dữ liệu Mỗi luật trong tập con này chứa vế phải là giá trị của thuộc tính lớp.

Mục tiêu của khai thác luật phân lớp dựa vào khai thác luật kết hợp là:

- Khai thác tập CARs thỏa ngưỡng độ hỗ trợ tối thiểu (minSup) và ngưỡng độ tin cậy tối thiểu (minConf).

- Xây dựng bộ phân lớp từ CARs.

Một cách hình thức, bài toán khai thác luật phân lớp kết hợp CARs được phát biểu như sau:

Gọi D là tập dữ liệu huấn luyện với n thuộc tính A 1 , A 2 , ,A n và |D| đối tượng(mẫu) Gọi C = {c 1 , c 2 , , c k } là tập các nhãn lớp Mỗi giá trị của thuộc tính A i và thuộc tính lớp C được ký hiệu bởi các ký tự thường a và c tương ứng. Định nghĩa 1: Một tập itemset là một tập các cặp (thuộc tính, giá trị) được ký hiệu bởi {(A i1 ,a i1 ), (A i2 ,a i2 ), , (A im ,a im )}. Định nghĩa 2: Một luật phân lớp kết hợp r có dạng {(A i1 ,a i1 ), (A i2 ,a i2 ), , (A im ,a im )} → c, trong đó {(A i1 ,a i1 ), (A i2 ,a i2 ), , (A im ,a im )} là một itemset và c∈ C là một nhãn lớp. Định nghĩa 3: Khả năng xảy ra của luật r, kí hiệu ActOcc(r), là số dòng trên D chứa vế trái của r. Định nghĩa 4: Đếm độ hỗ trợ của luật r, kí hiệu Sup(r), là số dòng trên D chứa vế trái và vế phải của r. Định nghĩa 5: Độ tin cậy của luật r là tỉ số giữa Sup(r) chia cho ActOcc(r), nghĩa là

Bảng 2.4 Một CSDL huấn luyện mẫu

Ví dụ: Xét luật r: {(A,a1)} → y từ CSDL Bảng 2.4, ta có ActOcc(r) = 3 và Sup(r) = 2 Do có 3 đối tượng có giá trị A = a1, trong đó 2 đối tượng có lớp là y, suy ra độ tin cậy của luật là Conf(r) = 2/3.

PHÁT BIỂU BÀI TOÁN VÀ LUẬT PHÂN LỚP KẾT HỢP

Giới thiệu

Tìm hiểu độ trung thành của khách hàng là rất quan trọng đối với các công ty viễn thông để có thể giữ chân khách hàng một cách hiệu quả Sẽ tốn kém hơn để có được khách hàng mới hơn là giữ chân những khách hàng hiện có Vì lý do này, các tập đoàn viễn thông lớn đang tìm cách phát triển các mô hình để dự đoán những khách hàng nào có nhiều khả năng thay đổi và thực hiện các hành động tương ứng. Trong luận văn này, tôi xây dựng một mô hình để tìm hiểu độ trung thành khách hàng bằng cách phân tích các đặc điểm của khách hàng: (1) thông tin cá nhân, (2) thông tin tài khoản và (3) thông tin dịch vụ Mục tiêu là có được một giải pháp dựa trên dữ liệu cho phép chúng tôi khám phá ra độ trung thành của khách hàng và do đó, tăng sự hài lòng của khách hàng và doanh thu của công ty.

Nhiều tổ chức đang tận dụng học máy để phân tích cơ sở dữ liệu khách hàng lớn và xác định lòng trung thành của khách hàng; hoặc, có lẽ quan trọng hơn, khách hàng nào có nguy cơ rời bỏ cao nhất Dự đoán chính xác về độ trung thành của khách hàng là cực kỳ có giá trị và nếu thực hiện đúng các bước để giữ chân những khách hàng gặp rủi ro, doanh nghiệp có thể nâng LTV trên toàn bộ danh mục đầu tư.

Ví dụ như trong đợt mùa lễ đang đến gần (ví dụ: "Black Friday" hoặc "Ngày 8/3, 20/10, 14/2, 20/11, …), và những người bán hàng trực tuyến thường chạy các chương trình khuyến mãi lớn vào những ngày như vậy để thu hút khách hàng mới. Tuy nhiên, nhiều khách hàng mới này chỉ là những người săn lùng ưu đãi một lần và những khuyến mãi này có thể có ít tác động lâu dài đến doanh số bán hàng Do đó, điều quan trọng đối với người bán là xác định ai có thể được chuyển đổi thành khách hàng trung thành Bằng cách nhắm mục tiêu khuyến mãi cho những khách hàng trung thành tiềm năng này, người bán có thể giảm đáng kể chi phí khuyến mãi và nâng cao lợi tức đầu tư.

Sự cần thiết phải tìm hiểu độ trung thành của khách hàng

Là một công ty, có thể xác định số tiền thu nhập từ số lượng khách hàng đang hoạt động có sẵn Để tìm ra số lượng khách hàng đang hoạt động, nó cần một mô hình có thể xem mức độ trung thành của khách hàng để có thể xác định khách hàng trung thành hay không trung thành và dự đoán số lượng khách hàng sẽ rời bỏ công ty và chuyển sang đối thủ cạnh tranh Bằng cách biết lòng trung thành của khách hàng, nó cũng có thể cải thiện mối quan hệ với khách hàng của mình Dự đoán về lòng trung thành của khách hàng có thể được định hướng để xác định những khách hàng sẽ chuyển sang bất kỳ đối thủ cạnh tranh kinh doanh nào của mình, vì chi phí liên quan đến việc mua lại khách hàng cao hơn so với việc duy trì, sau đó dự đoán về lòng trung thành của khách hàng sẽ xuất hiện dưới dạng một ứng dụng của Business Intelligence (BI) cần thiết cho nhà khai thác viễn thông hiện đại Cách tiếp cận chính để dự đoán lòng trung thành của khách hàng cá nhân có thể thu được từ khả năng về lòng trung thành của khách hàng bằng cách sử dụng mô hình dự đoán

[8] Một nghiên cứu được thực hiện bởi [13] để dự đoán lòng trung thành của khách hàng trong đa phương tiện theo yêu cầu của khách hàng Đa phương tiện theo yêu cầu (MOD) là một hệ thống tương tác để cung cấp các giá trị và thêm dịch vụ trên các dịch vụ TV Kỹ thuật khai thác dữ liệu có khả năng tìm ra khách hàng nào không trung thành, giống như mạng nơ-ron và cây quyết định trong lĩnh vực viễn thông di động Trong nghiên cứu này sẽ sử dụng 3 thuật toán sẽ được sử dụng để hình thành mô hình phân loại mức độ trung thành của khách hàng, đó là: thuật toánC4.5, Naive Bayes và Nearest Neighbor Một nghiên cứu được thực hiện bởi [2],các công ty viễn thông đang gặp vấn đề là do khách hàng của họ sử dụng dịch vụ của họ mà không thanh toán các khoản nợ hiện có Phương pháp khai thác dữ liệu được sử dụng là Phân tích phân biệt, Cây quyết định và Mạng thần kinh để dự đoán tính khả thi của khách hàng với dữ liệu hiện có Tuy nhiên, trong nghiên cứu này,nhà nghiên cứu muốn biết thuộc tính nào ảnh hưởng và không ảnh hưởng đến quá trình khai thác dữ liệu sẽ được thực hiện bằng cách sử dụng ba thuật toán đã đề cập trước đó Để sau này có thể sử dụng nó để tạo ra một mô hình đáng tin cậy nhằm tìm ra các mẫu khách hàng có khả năng trung thành và không trung thành với công ty cung cấp dịch vụ đa phương tiện

Lòng trung thành được coi là một khái niệm có cơ sở từ lý thuyết hành vi khách hàng và phản ánh những gì khách hàng có thể mô tả cho các dịch vụ, hoạt động hoặc thương hiệu Khái niệm này đã được xác định là một phần của nguồn chính của điểm số ngành và lợi thế cạnh tranh Tăng trưởng và lợi nhuận của ngành chủ yếu được kích thích bởi lòng trung thành của khách hàng Lòng trung thành của khách hàng là sự sẵn lòng của một khách hàng để duy trì mối quan hệ của mình với một ngành công nghiệp nhất định, sản phẩm hoặc dịch vụ Có hai chiều đến lòng trung thành; hành vi và nhận thức Hành vi bao gồm ý định của khách hàng để mua lại, để thay đổi và cung cấp cho chủ yếu cho ngành công nghiệp, trong khi nhận thức là ưu tiên hơn một ngành, ủng hộ ngành và khả năng thanh toán nhiều hơn cho các dịch vụ Lòng trung thành của khách hàng được nâng cao liên quan nhiều đến lợi nhuận của ngành.

Thông tin nằm trong cơ sở dữ liệu khách hàng chỉ ghi lại các giao dịch tại một công ty duy nhất, theo đó lòng trung thành của khách hàng mới thường không có sẵn Trong phạm vi luận án này, chúng ta thử tìm hiểu cơ sở dữ liệu khách hàng bằng cách tìm hiểu về lòng trung thành theo hành vi của khách hàng để có thể triển khai cho các hành động tiếp thị mục tiêu mà không cần phải đo lường lòng trung thành của từng khách hàng sau này.

Phân lớp dựa vào khai thác luật kết hợp

Gọi D là tập các dữ liệu huấn luyện với n thuộc tính A 1 , A 2 , , A n và |D| đối tượng (mẫu) Gọi C = {c 1 , c 2 , , c k } là danh sách các nhãn lớp Mỗi giá trị của thuộc tính Ai và thuộc tính lớp C được ký hiệu bởi các ký tự chữ viết thường a và c tương ứng. Định nghĩa 2.1 Một itemset là một tập các cặp thuộc tính và giá trị, được ký hiệu bởi {(A i1 , a i1 ), (A i2 , a i2 ), , (A im , a im )}. Định nghĩa 2.2 Một luật phân lớp kết hợp r có dạng {(A i1 , a i1 ), , (A im , a im )}

→ c, trong đó {(A i1 , a i1 ), , (A im , a im )} là một itemset và c ∈ C là một nhãn lớp. Định nghĩa 2.3 Khả năng xảy ra của luật r trong tập dữ liệu D, kí hiệu

ActOcc(r), là số dòng trên D chứa vế trái của r. Định nghĩa 2.4 Độ hỗ trợ của luật r, kí hiệu Sup(r), là số dòng trên D chứa vế trái và vế phải của r. Định nghĩa 2.5 Độ tin cậy của luật r là tỉ số giữa Sup(r) chia cho ActOcc(r), ), nghĩa là

Chẳng hạn, xét luật r: {(A, a 1)} → y từ tập cơ sở dữ liệu Bảng 2.1, chúng ta có

ActOcc(r) = 3 và Sup(r) = 2 Do có 3 đối tượng có giá trị A = a1, trong đó hai đối tượng có lớp là y ⇒ Độ tin cậy của luật là conf(r) = 2/3.

Cấu trúc cây MERC được chỉnh sửa từ cấu trúc cây ERC với M là ký tự viết tắt của Modification Trong cây MERC, mỗi nút trên cây chỉ chứa một itemset và bao gồm các thông tin sau:

- Itemset: (được nêu ở định nghĩa 2.1).

- Obidset: Là 1 mảng số nguyên chứa obidset identifiers của các dòng chứa itemset đó.

- (#c1, #c2, , #ck): class count là 1 mảng số nguyên có kích thước bằng số lượng lớp trong dataset.

- pos: là một số nguyên lưu trữ vị trí của các lớp với số lần xuất hiện nhiều nhất, nghĩa là pos = arg max {#ci} với i từ [1, k].

Ví dụ về tạo một cây MECR từ bảng CSDL huấn luyện mẫu:

Bảng 3.1 Một CSDL huấn luyện mẫu cho thuật toán Car-Miner

Xét một nút chứa itemset X = {(A, a3), (B, b3)} từ bảng 3.1 Do X chứa trong các OID là 4, 6 và tất cả đều thuộc lớp y Vì vậy ta viết nút {( A , a 46 3),( (2 , B , b 0) 3)} hay có thể viết đơn giản là 3 46 x a (2 3 ,0) b 3 được tạo ra trên cây Trong đó:

- Class count = {2, 0} (do có 2 lớp nên mảng có 2 giá trị, itemset X đều thuộc lớp y nên giá trị đầu của mảng là 2, còn giá trị sau là 0).

- pos = 1 (được gạch chân tại vị trí 1 của mảng class count của nút này) do số đếm thuộc về lớp y là lớn nhất (2 so với 0).

Trong thuật toán đã dùng bit để lưu trữ đầy đủ tập các thuộc tính giúp tiết kiệm được bộ nhớ Sử dụng cách biểu diễn bit như sau: thuộc tính A có giá trị là 2 0 = 1, B có giá trị là 2 1 = 2, C có giá trị là 2 2 = 4 nên AB = 2 0 + 2 1 = 3, tương tự ABC = 2 0 +

2 1 + 2 2 = 7) Ví dụ: AB sẽ được thay bằng 11 trong cách dùng bit đại diện dạng nhị phân và bằng 3 ở dạng thập phân.

3.2.3 Thuật toán khai thác hiệu quả cho CAR-Miner Định lý 1: Cho trước hai Obidset att 1 × value 1

2(c 21 , … , c 2k ) nếu att 1=att 2 và value 1 ≠ value 2 thì Obidset 1 ∩Obidset 2 =∅

Khi att 1 = att 2 và values 1 ≠ values 2 , tồn tại một val 1  values 1 và val 2  values 2, val 1 và val 2 có thuộc tính giống nhau nhưng giá trị lại khác nhau Như vậy, nếu một dòng với OID i chứa val 1 nhưng không chứa val 2 thì OID  Obidset1 =>

OID  Obidset 2 Do đú, Obidset1 ∩ Obidset 2 = ỉ.

Theo định lý 1, chia một itemset thành att x values cho dễ sử dụng Dựa vào định lý 1 suy ra rằng nếu có 2 itemset X và Y có cùng thuộc tính thì chúng sẽ không cần kết hợp với nhau thành itemset XY bởi vì Sup(XY) = 0 Ví dụ, xét hai nút

127(2,1) và 38(1 1 x a , 2 1) , trong đó Obidset({(A, a1)}) = 127 và Obidset({(A ,a2)}) = 38

Tương tự có Obidset({(A, a1), (B, b1)}) = 1 và Obidset({(A, a1), (B, b2)}) 2.

=> Obidset({(A, a1), (B, b1)}) = Obidset({(A, a1), (B, b2)}) = ỉ bởi vỡ cả hai itemset này có cùng thuộc tính AB nhưng khác giá trị Định lý 2: Cho trước hai nút Obidset itemset 1

⊂ itemset 2 và |Obidset 1| = |Obidset 2| thì ∀i ϵ [1, k]: c 1i = c 2i

Ta có: itemset 1 ⊂ itemset 2, có nghĩa là tất cả các dòng chứa trong itemset 2 cũng chứa trong itemset 1 Do đó Obidset 2  Obidset 1 Hơn nữa, ta có |Obidset 1| |Obidset 2|

Từ định lý 2, khi kết hai nút cha thành một nút con, có thể kiểm tra số phần tử của Obidset kết quả, nếu có kết quả bằng với một trong hai nút cha thì chúng ta không cần phải tính toán lại giá trị count và pos của nút này, vì thông tin của nút này sẽ giống với nút cha.

Bằng cách sử dụng hai định lý này sẽ giúp thuật toán CAR-Miner khai thác luật phân lớp kết hợp hiệu quả hơn Với định lý 1, chúng ta không cần kết hai nút có cùng thuộc tính Còn với định lý 2, chúng ta không cần phải tính toán lại thông tin cho một vài nút con.

3.2.4 Thuật toán CAR-Miner Đầu vào thuật toán CAR-Miner là nút gốc (Lr) chứa các nút 1-itemset phổ biến Thủ tục CAR-Miner được gọi để khai thác tất cả các luật phân lớp kết hợp với đầu vào là Lr, minSupCount (là số đếm của minSup), minConf.

Thủ tục CAR-Miner xét mỗi nút l i với các nút sau nó l j trên Lr sao cho j > i để tạo ra các nút con l Thủ tục này cũng sử dụng định lý 1 và 2 để loại bỏ nhanh các nút con và tính nhanh các thông tin của các nút con.

Input: A dataset D, minSupCount and minConf

Output : all CARs satisfy minSupCount and minConf Procedure :

CARs = ỉ for all l j ϵ L r.children, with j > i do if l i.att ≠ l j.att then // Sử dụng định lý

O.Obidset = l i.Obidset ∩ l j.Obidset; if |O.Obidset| = |l i.Obidset| then // Sử dụng định lý 2

O.pos = l i.pos; else if |O.Obidset| = |l j.Obidset| then // Sử dụng định lý 2

O.count = {count(x ϵ O.Obidset | class(x) = ci, ∀i ϵ [1,k]};

O.pos = argmax {l.counti}; i ϵ [1,k] if O.count[O.pos] ≥ minSupCount then

ENUMERATE-CAR(l, minConf) conf = l.count[l.pos] / |l.Obidset|; if conf ≥ minConf then

CARs = CARs ⋃ {l.itemset → cpos (l.count[l.pos], conf)}

Hình 3.2 Thuật toán CAR-Miner

Hình 3.3 Cây MECR được xây dựng từ CSDL của bảng 3.1

KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ

Môi trường thực nghiệm

Python là ngôn ngữ lập trình được sáng tạo bởi Guido Van Rossum – một chuyên gia lập trình người Hà Lan vào năm 1990 Người sáng lập muốn Python là một ngôn ngữ dễ hiểu và tương đồng với tiếng anh Nhờ vậy, nó rất thân thiện với người dùng, không khó để người mới làm quen Tất cả các câu lệnh, cú pháp đều rất trực quan và rõ ràng Kết quả từ khảo sát của Stack Overflow cho thấy Python là ngôn ngữ lập trình được yêu thích nhất Python đã cho ra mắt với rất nhiều phiên bản khác nhau, phiên bản gần đây nhất là Python 3.

Python là một phần mềm mã nguồn mở (open source) Do đó, ai cũng có thể đóng góp để phát triển Python, giúp ngôn ngữ này ngày càng trở nên phổ biến và mạnh mẽ hơn Ngoài ra, Python có thể chạy trên nhiều nền tảng hệ điều hành khác nhau như UNIX, MS – DOS, Mac OS, Windows và Linux…

Cài đặt Để sử dụng Python việc đầu tiên chúng ta phải cài đặt Python là tải phần mềm về máy tính của mình

Tài liệu cần tải về tùy theo phiên bản nhưng thường có tên bắt đầu bằng mẫu tự Python và số phiên bản Ở đây em sử dụng bản Python3.8.6 với địa chỉ download cụ thể là: https://www.python.org/downloads/release/python-386/

Python là một ngôn ngữ thông dịch, nó trực tiếp chạy từng dòng mã Nếu có lỗi trong mã chương trình, nó sẽ ngừng chạy Do đó, lập trình viên có thể nhanh chóng tìm ra lỗi trong đoạn mã.

Python là một ngôn ngữ đễ sử dụng, từ ngữ giống trong tiếng Anh Không giống như các ngôn ngữ lập trình khác, Python không sử dụng dấu ngoặc ôm Thay vào đó, ngôn ngữ này sử dụng thụt đầu dòng

Python là ngôn ngữ linh hoạt, cao cấp gần gũi với ngôn ngữ con người hơn các ngôn ngữ lập trình khác.

Python là ngôn ngữ lập trình hướng đối tượng, nhưng ngôn ngữ này cũng hỗ trợ các phương thức lập trình khác như lập trình hàm và lập trình cấu trúc. Ưu điểm:

- Là một ngôn ngữ có cấu trúc rõ ràng, cú pháp ngắn gọn Có trên tất cả các nền tảng hệ điều hành từ UNIX, MS – DOS, Mac OS, Windows và Linux và các OS khác thuộc họ Unix.

- Tương thích mạnh mẽ với Unix, hardware, third-party software với số lượng thư viện khổng lồ (400 triệu người sử dụng)

- Python với tốc độ xử lý cực nhanh, python có thể tạo ra những chương trình từ những script siêu nhỏ tới những phần mềm cực lớn như Blender 3D.

- Python không có các thuộc tính như: protected, private hay public, không có vòng lặp do…while và switch….case.

- Mặc dù tốc độ xử lý của Python nhanh hơn PHP nhưng không bằng JAVA và C++.

4.1.3 Các ứng dụng của python

Python là một ngôn ngữ lập trình cực kỳ phổ biến trong giới lập trình viên vì viết phần mềm tự động bằng Python rất đơn giản nhưng không kém phần thú vị.

Với Python, việc làm website trở nên đơn giản hơn Thông thường, các nhà phát triển sẽ dùng Python để phát triển hệ thống vận hành server-side và dùng JavaScript cho phần frontend Rất nhiều website bạn dùng hàng ngày được sử dụng Python như Wikipedia, Google, Yahoo!, Mozilla, Reddit, Instagram…

Hiện nay, Python có những framework hỗ trợ cho việc phát triển web rất hiệu quả như Django hay Flask Bạn có thể sử dụng framework và CMS (Hệ thống quản trị nội dung) được tích hợp trong Python để tạo Web app Các server-side web application tạo bằng Python có thể dễ dàng tích hợp với bất kỳ hệ thống frontend nào.

Khoa học và tính toán

Python có nhiều framework (các đoạn code viết sẵn và được cấu tạo thành một bộ khung, các thư viện lập trình được đóng gói) cho lĩnh vực khoa học và tính toán số liệu như SciPy và NumPy Các tài liệu này thường xuyên được cập nhật và mở rộng không ngừng nhờ các lập trình viên trên toàn thế giới đóng góp vào thư viện mã nguồn mở của Python Có những thư viện cụ thể theo ngành như EarthPy cho khoa học trái đất, AstroPy cho Thiên văn học,…

Ngoài ra, Python còn được sử dụng nhiều trong máy học, tự động hóa, khai thác dữ liệu và Deep Learning Thú vị ở chỗ đôi khi chúng ta có thể tự động hóa chỉ với 4-5 dòng code trong Python từ việc quét tin nhắn rác đến thiết lập các nhắc nhở

Tạo nguyên mẫu phần mềm

Python là ngôn ngữ tuyệt vời để tạo những nguyên mẫu (bản chạy thử – prototype) Ví dụ, bạn có thể sử dụng Pygame (thư viện viết game) để tạo nguyên mẫu game trước Nhờ đó, việc phát triển game đỡ làm khó các lập trình viên Đặc biệt, thư viện Pygame cực kỳ hữu ích Nó hỗ trợ xây dựng hình hoạ, âm nhạc, âm thanh, video và các dự án đa phương tiện Các game cross-platform sử dụng Kivy, ứng dụng chạy trên cả Windows, Mac, Linux, Android và iOS.

Trích xuất dữ liệu web

Trong thời đại Big Data và số hóa, dữ liệu tồn tại ở khắp mọi nơi Nhưng đọc dữ liệu chưa được cấu trúc và sắp xếp quả không mấy dễ dàng Python có thể giúp bạn vượt qua trở ngại này một cách dễ dàng Bạn có thể sử dụng thư viện Scrapy để trích xuất dữ liệu Với Python, bạn có thể dễ dàng thu thập, xử lý và trực quan hóa dữ liệu một cách dễ dàng.

4.1.4 Một số thư viện và lệnh trong python

Cài đặt pip: pip là công cụ quản lý các gói thư viện python (Python package manager) Với việc sử dụng pip, ta sẽ dễ dàng cài đặt các gói thư viện cần thiết trong quá trình làm việc với Python. Để cập nhật pip hiện thời lên phiên bản mới nhất, bạn dùng câu lệnh: python - m pip install upgrade pip.

VD: Cài đặt thư viện numpy ta sử dụng câu lệnh: pip install numpy

Cài đặt thư viện pandas ta sử dụng câu lệnh: pip install pandas

Một số thư viện thường dùng:

Tập dữ liệu thực nghiệm

Tập dữ liệu được sử dụng trong luận văn này có sẵn trong Kaggle 1 và chứa hai mươi mốt cột cho biết các đặc điểm của khách hàng của một tập đoàn viễn thông. Cột Loyalty (nhãn) cho biết liệu khách hàng trung thành với công ty hay không. Lớp ‘Yes’ bao gồm các khách hàng là trung thành với công ty, trong khi lớp ‘No’ chứa các khách hàng đã quyết định chấm dứt quan hệ với công ty (tức là không trung thành với công ty).

4.2.1 Thông tin tập dữ liệu

Với những người mới tiếp cận với học máy thường sẽ đi thẳng vào việc lựa chọn mô hình học máy vì nó là điều tuyệt vời nhất có thể làm trong học máy. Nhưng giống như trong cuộc sống, với những người có kinh nghiệm trong học máy thì sự khôn ngoan sẽ xuất hiện ở giai đoạn tiền xử lý Sau khi chứng kiến những thách thức của học máy trong thế giới thực, thì quá trình tiền xử lý dữ liệu và đánh giá dữ liệu là rất quan trọng.

1 https://www.kaggle.com/datasets/blastchar/telco-customer-churn

Luôn ghi nhớ quy tắc vàng sau đây trong phân tích dự đoán:

“Mô hình của bạn chỉ tốt như dữ liệu của bạn”

Hiểu cấu trúc từ đầu đến cuối của tập dữ liệu của bạn và định hình lại các biến là bước đầu giúp cho mô hình học máy tốt hơn. Đầu tiên là khởi động lại phiên và xóa tất cả các biến tạm thời khỏi môi trường phát triển tương tác trước khi bắt đầu viết mã Vì vậy, hãy khởi động lại phiên, xóa bộ nhớ cache và bắt đầu lại từ đầu

Hình 4.9 Khởi động lại phiên, xóa bộ nhớ cache Trong phần này, chúng ta cần xem xét tổng quát bộ dữ liệu và chi tiết từng cột để hiểu rõ hơn về dữ liệu đầu vào để tổng hợp các trường khi cần thiết Quan sát tên cột và một vài mẫu trên cùng ta thấy đây là tập dữ liệu khách hàng viễn thông trong đó mỗi bản ghi chứa một số thông tin của khách hàng như bản chất của đăng ký, thời hạn, tần suất thanh toán và trạng thái hiện tại của họ

Hình 4.10 Một số thông tin của bốn khách hàng đầu tiên trong tập dữ liệu

Hình 4.11 Danh sách tên của các cột trong tập dữ liệu Nhìn vào Hình 4.4, chúng ta có thể thấy rằng tập dữ liệu chứa một số cột chứa giá trị kiểu số và một số cột chứa giá trị kiểu loại (category) cung cấp nhiều thông tin khác nhau về các giao dịch của khách hàng.

Hình 4.12 Kiểu dữ liệu của mỗi cột

Quan sát Hình 4.5 cho thấy rằng các khách hàng viễn thông trung thành trung bình trong 32 tháng và đang trả 64 đô la mỗi tháng Tuy nhiên, điều này có thể là do các khách hàng khác nhau có các hợp đồng khác nhau. dataset.describe()

Hình 4.13 Thống kê cơ bản cho các cột số

4.2.2 Tiền xử lý dữ liệu

Nhóm các cột dữ liệu theo loại giá trị và kiểm tra giá trị bị thiếu: Chúng ta phải luôn theo dõi các giá trị bị thiếu trong tập dữ liệu do các giá trị bị thiếu có thể gây rối cho việc xây dựng mô hình dẫn đến độ chính xác kém Do đó, chúng ta cần quan tâm đến các giá trị còn thiếu (nếu có) trước khi so sánh và lựa chọn một mô hình.

Hình 4.14 Tổng hợp các cột theo kiểu dữ liệuNhìn vào Hình Hình 4.15 và Hình 4.16., chúng ta thấy rằng tập dữ liệu này chứa 7043 thực thể và (hàng) 21 thuộc tính (cột) và không có giá trị nào bị thiếu (null) trong tập dữ liệu.

Hình 4.15 Cấu trúc dữ liệu

Hình 4.16 Kiểm tra dữ liệu cột có bị thiếu giá trị Như chúng ta đã thấy, dữ liệu được cung cấp không có giá trị nào bị thiếu và do đó, bước xử lý dữ liệu bị thiếu là không cần thiết đối với tập dữ liệu đã chọn. Tuy nhiên, với một tập dữ liệu mà có các giá trị thiếu thì phải xử lý để điền giá trị cho những giá trị đang bị thiếu Chúng ta có thể thực hiện việc này bằng cách tìm giá trị trung bình của từng cột và điền giá trị còn thiếu của chúng Hình 4.17 dưới đây là một đoạn mã để thực hiện điều đó.

Hình 4.17 Đoạn mã thực hiện điền giá trị còn thiếu

Sau khi điền giá trị còn thiếu chúng ta nên xác thực lại các giá trị rỗng trong tập dữ liệu.

Xác định các giá trị không trùng lặp trong một cột: Cột 'Phương thức thanh toán' và 'Hợp đồng' là hai cột có giá trị là kiểu loại (category) trong tập dữ liệu Khi xem xét các giá trị không trùng lặp trong từng cột kiểu loại đó, chúng ta thấy rằng khách hàng đang ký hợp đồng luân phiên hàng tháng hoặc hợp đồng cố định trong một hoặc hai năm Ngoài ra, họ đang thanh toán hóa đơn qua thẻ tín dụng, chuyển khoản ngân hàng hoặc séc điện tử.

Hình 4.18 Xác định các giá trị không trùng lặp trong một cột kiểu loại Kiểm tra phân phối biến mục tiêu: Hãy xem xét phân phối giá trị cột thể hiện độ trung thành của khách hàng Đây là một bước khá đơn giản nhưng rất quan trọng để xem liệu bộ dữ liệu có vấn đề mất cân bằng lớp nào hay không Như chúng ta có thể thấy bên dưới Hình 4.19., tập dữ liệu bị mất cân bằng với tỷ lệ khách hàng đang hoạt động (trung thành) cao hơn so với các đối tác đã rời bỏ không còn hoạt động (không trung thành).

Hình 4.19 Phân phối giá trị của độ trung thành khách hàng

Hãy thử khám phá và trực quan hóa tập dữ liệu thực nghiệm bằng cách thực hiện phân phối các biến độc lập để hiểu rõ hơn về các mẫu trong dữ liệu và có khả năng hình thành một số giả thuyết.

Phân tích biểu đồ của các cột số:

Hình 4.21 Đoạn mã vẽ biểu đồ của các cột có giá trị kiểu số

Hình 4.22 Biểu đồ của các cột có giá trị kiểu số

Một vài quan sát có thể được thực hiện dựa trên biểu đồ Hình 4.22 cho cột có giá trị kiểu số hoặc boolean:

Phân bố theo giới tính cho thấy tập dữ liệu có tỷ lệ khách hàng nam và nữ tương đối bằng nhau

Hầu hết khách hàng trong bộ dữ liệu là những người trẻ tuổi.

Dường như không có nhiều khách hàng có người phụ thuộc và có gần một nửa số khách hàng có bạn đời.

Có rất nhiều khách hàng mới trong tổ chức (dưới 10 tháng), tiếp theo là phân khúc khách hàng lâu năm ở lại trung bình hơn 70 tháng.

Hầu hết khách hàng dường như có dịch vụ điện thoại và 3/4 trong số họ đã chọn thanh toán không cần giấy tờ

Các khoản phí hàng tháng trải dài trong khoảng từ 18 đô la đến 118 đô la cho mỗi khách hàng với một tỷ lệ lớn khách hàng trên phân khúc 20 đô la.

Phân tích sự phân phối của các cột có giá trị kiểu loại:

Quan sát Hình 4.23 chúng ta thấy hầu hết khách hàng dường như có kết nối trả trước với công ty viễn thông Mặt khác, có một tỷ lệ ít nhiều bằng nhau của khách hàng trong các hợp đồng 1 năm và 2 năm.

Hình 4.23 Phân phối khách hàng theo loại hợp đồng

Hình 4.24 Đoạn mã biểu đồ phân phối khách hàng theo loại hợp đồng Bên cạnh đó, tập dữ liệu chỉ ra rằng khách hàng thích thanh toán hóa đơn điện tử nhất, tiếp theo là chuyển khoản ngân hàng, thẻ tín dụng và séc gửi qua đường bưu điện.

Hình 4.25 Phân phối khách hàng theo hình thức thanh toán Tương tự như thế với các cột kiểu loại ta có thêm một số nhận xét:

Hầu hết khách hàng có dịch vụ điện thoại trong đó gần một nửa số khách hàng có nhiều đường dây.

Kết quả thực nghiệm

Tách tập dữ liệu thành các biến phụ thuộc và biến độc lập: Bây giờ chúng ta cần tách tập dữ liệu thành các giá trị X và y y sẽ là cột 'Churn' trong khi X sẽ là danh sách các biến độc lập còn lại trong tập dữ liệu.

Xóa cột mã định danh khách hàng: Tách ‘customerID’ khỏi tập dữ liệu thử nghiệm. class Node(object): def init (self, X, y, matches=None): self.X = X self.y = y self.n_objs, self.n_feats = X.shape if matches is None: self.matches = set(np.arange(0, self.n_objs, dtype="int32")) else: self.matches = set(matches) self.values = np.ma.zeros(self.n_feats, dtype="str") self.values.mask = True s = pd.value_counts( y[list(self.matches)], sortse

).sort_index() self.n_classes, self.counts = s.index.size, s.values self.children = [] def create_child(self, other): def _make_child(n, n_nn, o, o_nn): matches = n.matches & o.matches matches_parents = (len(matches) == len(self.matches) or len(matches) == len(other.matches)) if len(matches) > 0 and not matches_parents: c = Node(n.X, n.y, matches=matches) c.values.data[n_nn] = np.compress(n_nn, n.values.data) c.values.data[o_nn] = np.compress(o_nn, o.values.data) c.values.mask[(n_nn | o_nn)] = False return c self_nn = ~self.values.mask other_nn = ~other.values.mask shared = (self_nn & other_nn) no_shared_attrs = ~np.any(shared) if no_shared_attrs: return _make_child(self, self_nn, other, other_nn) attrs_same_vals = np.any(np.compress(shared, self.values)

== np.compress(shared, other.values)) if attrs_same_vals: return _make_child(self, self_nn, other, other_nn) return None

@property def classification(self): return np.argmax(self.counts)

@property def confidence(self): return np.max(self.counts) / self.actual_occurrence

@property def actual_occurrence(self): return len(self.matches)

@property def support(self): return np.max(self.counts) / self.n_objs

Hình 4.32 Đoạn mã tạo nút cho cây class MECRTree(object): def init (self, X, y, feature_names=None, class_names=None): self.transformer = CategoricalDataTransformer(X, y) self.X = self.transformer.encode() self.y = y if feature_names is not None: self.feature_names = feature_names else: n_features = self.X.shape[ 2] self.feature_names = np.arange(0, n_features) if class_names is not None: self.class_names = class_names else: n_classes = np.unique(y).size self.class_names = np.arange(0, n_classes) self.rules = None def _construct_root_node(self, X, y, min_support): n = Node(X, y) n_feats = X.shape[ 2] for feat in np.arange(0, n_feats): values = pd.unique(X[:, feat]) for value in values: matches = np.nonzero(X[:, feat] == value)[0] c = Node(X, y, matches=matches) c.values[feat] = value if c.support >= min_support: n.children.append(c) print(n.children) return n def _create_rule(self, values, classification, confidence, support): rule = Rule() notnan = ~values.mask for i in range(0, len(values)): if notnan[i]: clause = ( str(self.feature_names[i]),

) rule.add(clause) rule.classification = self.class_names[classification] rule.purity = confidence rule.proportion = support rule.matches = confidence * support * self.X.shape[0] rule.score = (rule.purity, rule.proportion) return rule def _mine(self, root, min_support, min_confidence): rules = RuleList() queue = [root] while len(queue) > 0: node = queue.pop() for i, l_i in enumerate(node.children):

# enumerate rules if (len(l_i.children) == 0 and

(l_i.confidence >= min_confidence)): rules.add( self._create_rule( l_i.values, l_i.classification, l_i.confidence, l_i.support

) for l_j in node.children[i+1:]: child = l_i.create_child(l_j) if child is not None and child.support >= min_support: l_i.children.append(child) queue.append(l_i) return rules def train(self, min_support, min_confidence): self.root = self._construct_root_node(self.X, self.y, min_support) self.rules = self._mine(self.root, min_support, min_confidence)

Hình 4.33 Đoạn mã tạo cây class TestMECRTree(unittest.TestCase): def test_train_rules(self): feature_names = columns m = MECRTree(X, y, feature_namesature_names) m.train(0.1, 0.4) self.assertIsNotNone(m.rules) self.assertGreater(len(m.rules), 0) html = m.rules.to_html() if name == " main ": a = TestMECRTree() a.test_train_rules()

Hình 4.34 Đoạn mã rút luật từ cây đã tạo

Ba đặc trưng Tenure, Monthly Charges và Total Charges là dữ liệu liên tục sẽ được chuyển sang dạng categories. def monthlycharges_split(df) : df['MonthlyCharges'] = float(df['MonthlyCharges']) if df['MonthlyCharges'] 30) & (df['MonthlyCharges'] 70) & (df['MonthlyCharges'] 99 : return '99plus' dataset['MonthlyCharges'] = dataset.apply(lambda df:monthlycharges_split(df), axis = 1)

# change TotalCharges to categorical column def totalcharges_split(df) :

# df['TotalCharges'] = (df['TotalCharges']).apply(lambda x: float(x.split()[0].replace('.', ','))) df['TotalCharges'] = pd.to_numeric(df['TotalCharges'], errors='coerce')

# df['TotalCharges'] = float(df['TotalCharges']) if df['TotalCharges'] 2000) & (df['TotalCharges'] 4000) & (df['TotalCharges'] 6000 : return '6kplus' dataset['TotalCharges'] = dataset.apply(lambda df:totalcharges_split(df), axis = 1)

# change Tenure to categorical column def tenure_split(df) : df['tenure'] = float(df['tenure']) if df['tenure'] 20) & (df['tenure'] 40) & (df['tenure'] 60 : return '60plus' dataset['tenure'] = dataset.apply(lambda df:tenure_split(df), axis

Bảng 4.1 Các luật rút ra theo thuật toán Car-miner

Luật phân lớp kết hợp

Tỷ lệ độ trung thành %

SeniorCitizen is 0 and Partner is Y and PhoneService is Y

SeniorCitizen is 0 and Partner is Y

Partner is Y and PhoneService is Y

77 1372 413 1785 1 gender is M and SeniorCitizen is 0

77 1346 409 1755 1 gender is M and SeniorCitizen is 0 and PhoneService is Y

PhoneService is Y gender is F and SeniorCitizen is 0

76 1285 405 1690 1 gender is F and SeniorCitizen is 0 and PhoneService is Y

MultipleLines is N 75 1427 478 1905 1 gender is M 74 1431 508 1939 1 gender is M and PhoneService is Y

PhoneService is Y 73 2504 913 3417 1 gender is F 73 1361 502 1863 1 gender is F and PhoneService is Y

SeniorCitizen is 0 and Partner is N

SeniorCitizen is 0 and Partner is N and PhoneService is Y

SeniorCitizen is 0 and Partner is N and Dependents is N

Partner is N and PhoneService is Y

Partner is N and Dependents is

Partner is N and Dependents is

Kết quả chạy dữ liệu với thuật toán Cây quyết định ID3 (Iterative Dichotomiser

3) ta thu được các luật:

Bảng 4.2 Các luật rút ra theo thuật toán Cây quyết định ID3

Luật phân lớp kết hợp

Tỷ lệ độ trung thành

Contract is Two year and InternetService is not Fiber optic and SeniorCitizen is not 0 and MonthlyCharges is not 70–99

Contract is Two year and SeniorCitizen is 0 and InternetService is not Fiber optic and

PaymentMethod is not Electronic check

InternetService is Fiber optic and

StreamingMovies is No and Contract is not

Two year and Contract is not Month-to- month and PaymentMethod is not

Contract is Two year and SeniorCitizen is 0 and InternetService is not Fiber optic

Contract is Two year and InternetService is not Fiber optic

Contract is Two year and InternetService is

Fiber optic and PaymentMethod is Credit card (automatic) and OnlineBackup is Yes

Contract is not Two year and Contract is not Month-to-month and InternetService is not Fiber optic and StreamingMovies is not

Yes and OnlineSecurity is not No

Contract is not Month-to-month and

InternetService is not Fiber optic

Contract is Two year and InternetService is

Fiber optic and PaymentMethod is Credit card (automatic)

Contract is not Two year and Contract is not Month-to-month and InternetService is not Fiber optic and StreamingMovies is not

Contract is Two year and InternetService is not Fiber optic and SeniorCitizen is not 0

Contract is Two year and SeniorCitizen is 0 and PaymentMethod is Electronic check and InternetService is not Fiber optic

Contract is not Two year and Contract is not Month-to-month and InternetService is not Fiber optic

Contract is not Month-to-month 87 2768 400 3168 1

Contract is Two year and InternetService is

Fiber optic and PaymentMethod is not

Credit card (automatic) and tenure is not

Contract is Two year and InternetService is

InternetService is Fiber optic and

StreamingMovies is No and Contract is not

Two year and Contract is not Month-to- month

Contract is Month-to-month and

InternetService is not Fiber optic and

OnlineBackup is not No and PhoneService is not No and tenure is not 0–20

OnlineSecurity is No and Contract is not

Two year and Contract is not Month-to- month and InternetService is not Fiber optic and StreamingMovies is not Yes

Contract is Two year and InternetService is

Fiber optic and PaymentMethod is not

Contract is Two year and InternetService is

Fiber optic and PaymentMethod is Credit card (automatic) and OnlineBackup is not

StreamingMovies is Yes and gender is

Female and Contract is not Two year and

Contract is not Month-to-month and

InternetService is not Fiber optic

Contract is Two year and MonthlyCharges is 70–99 and InternetService is not Fiber optic and SeniorCitizen is not 0

StreamingMovies is Yes and Contract is not Two year and Contract is not Month-to- month and InternetService is not Fiber optic

InternetService is Fiber optic and

StreamingTV is No and Contract is not

Two year and Contract is not Month-to- month and StreamingMovies is not No

InternetService is Fiber optic and Contract is not Month-to-month

Contract is Month-to-month and

OnlineBackup is No and SeniorCitizen is 0 and InternetService is not Fiber optic and tenure is not 0–20

StreamingMovies is Yes and Contract is not Two year and Contract is not Month-to- month and InternetService is not Fiber optic and gender is not Female

Contract is Two year and InternetService is

Fiber optic and tenure is 40–60 and

PaymentMethod is not Credit card

Contract is Month-to-month and

OnlineBackup is No and InternetService is not Fiber optic and tenure is not 0–20

Contract is Month-to-month and

InternetService is not Fiber optic and

OnlineBackup is not No and PhoneService is not No

InternetService is Fiber optic and Contract is not Two year and Contract is not Month- to-month

Contract is Month-to-month and

InternetService is not Fiber optic and

Contract is Month-to-month and

PhoneService is No and InternetService is not Fiber optic and OnlineBackup is not No and PaperlessBilling is not Yes

InternetService is Fiber optic and

PaymentMethod is Electronic check and

Contract is not Two year and Contract is not Month-to-month

Contract is Month-to-month and tenure is

0–20 and InternetService is not Fiber optic and OnlineBackup is not No and

InternetService is Fiber optic and Contract is not Two year and Contract is not Month- to-month and StreamingMovies is not No

Contract is Month-to-month and

InternetService is Fiber optic and

StreamingTV is No and tenure is not 0–20 and PaymentMethod is not Electronic check

InternetService is Fiber optic and Contract is not Two year and Contract is not Month- to-month and StreamingMovies is not No and StreamingTV is not No

Contract is Month-to-month and

InternetService is not Fiber optic

Contract is Month-to-month and

InternetService is Fiber optic and

PaymentMethod is Electronic check and tenure is not 0–20 and OnlineSecurity is not No

Contract is Month-to-month and

InternetService is Fiber optic and tenure is

0–20 and OnlineSecurity is not Yes and

Contract is Month-to-month and

InternetService is Fiber optic and tenure is not 0–20 and PaymentMethod is not

Contract is Month-to-month and

InternetService is Fiber optic and tenure is

0–20 and OnlineSecurity is not Yes

Contract is Month-to-month and

PhoneService is No and InternetService is not Fiber optic and OnlineBackup is not No

Contract is Month-to-month and

InternetService is Fiber optic and tenure is

Contract is Month-to-month and

OnlineBackup is No and tenure is 0–20 and

InternetService is not Fiber optic and

PaymentMethod is not Electronic check

Contract is Month-to-month and

InternetService is Fiber optic and tenure is

0–20 and OnlineSecurity is Yes and

Contract is Month-to-month and

OnlineBackup is No and InternetService is not Fiber optic and tenure is not 0–20 and

Contract is Month-to-month and

OnlineBackup is No and InternetService is not Fiber optic

Contract is Month-to-month and

InternetService is Fiber optic and tenure is not 0–20 and PaymentMethod is not

Electronic check and StreamingTV is not

Contract is Month-to-month and

PhoneService is No and PaperlessBilling is

Yes and InternetService is not Fiber optic and OnlineBackup is not No

Contract is Month-to-month and

InternetService is Fiber optic and tenure is not 0–20

Contract is Month-to-month and

InternetService is Fiber optic and tenure is

0–20 and OnlineSecurity is Yes and

Contract is Month-to-month and 51 336 321 657 1

OnlineBackup is No and tenure is 0–20 and

InternetService is not Fiber optic

Contract is Month-to-month 51 1978 1897 3875 1

Contract is Month-to-month and

Contract is Month-to-month and

InternetService is Fiber optic and tenure is

0–20 and TechSupport is Yes and

Contract is Month-to-month and

OnlineBackup is No and tenure is 0–20 and

PaymentMethod is Electronic check and

InternetService is not Fiber optic

Contract is Month-to-month and

InternetService is Fiber optic and

PaymentMethod is Electronic check and tenure is not 0–20

Contract is Month-to-month and

InternetService is Fiber optic and tenure is

Contract is Month-to-month and

InternetService is Fiber optic and

PaymentMethod is Electronic check and

OnlineSecurity is No and tenure is not 0–

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Luận văn đã đáp ứng được cơ bản nội dung đăng ký trong đề cương Cụ thể luận văn đã đạt được một số kết quả sau:

- Tìm hiểu tổng quan những khái niệm liên quan đến khám phá tri thức, khai thác dữ liệu, khai thác luật kết hợp và khai thác luật phân lớp kết hợp.

- Tìm hiểu và so sánh ưu điểm, hạn chế của các thuật toán khai thác luật kết hợp và luật phân lớp kết hợp.

- Luận văn tìm hiểu phương pháp luật phân lớp kết hợp Car-miner, cài đặt thuật toán trên các CSDL chuẩn, xử lý và đánh giá dữ liệu thực nghiệm.

- Ứng dụng xây dựng chương trình để tìm hiểu độ trung thành của khách hàng cho công ty viễn thông.

Trong tương lai, tác giả sẽ tiếp tục thử nghiệm trên nhiều loại CSDL hơn với số lớp tăng lên để đánh giá khả năng ứng dụng của phương pháp tìm hiểu Đồng thời, sẽ áp dụng phương pháp này với các loại phân lớp khác như cây quyết định, ILA, …

Mặc dù luận văn đã xây dựng được chương trình đưa ra được các luật phân lớp thể hiện độ trung thành của khách hàng song mới chỉ được cài đặt và phát triển theo hướng tìm hiểu, vận dụng, và vẫn còn rất nhiều vấn đề khai thác dữ liệu khác cần được cài đặt Do đó nếu có điều kiện có thể ứng dụng sẽ được phát triển mở rộng cho các bài toán khác nữa.

Ngày đăng: 07/06/2023, 16:23

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Y.-W. C. Chien and Y.-L. Chen, Mining associative classification rules with stock trading data–A GA-based method. Knowledge-Based Systems, 2010.23(6): p. 605-614 Sách, tạp chí
Tiêu đề: Mining associative classification rules withstock trading data–A GA-based method
2. S. Daskalaki, et al., Data mining for decision support on customer insolvency in telecommunications business. European Journal of Operational Research, 2003. 145(2): p. 239-255 Sách, tạp chí
Tiêu đề: Data mining for decision support on customerinsolvency in telecommunications business
3. B. Liu, W. Hsu, and Y. Ma. Integrating classification and association rule mining. in Kdd. 1998 Sách, tạp chí
Tiêu đề: Integrating classification and association rulemining". in "Kdd
4. L. T. Nguyen, et al., CAR-Miner: An efficient algorithm for mining class- association rules. Expert Systems with Applications, 2013. 40(6): p. 2305- 2311 Sách, tạp chí
Tiêu đề: CAR-Miner: An efficient algorithm for mining class-association rules
5. L. T. Nguyen and N. T. Nguyen, An improved algorithm for mining class association rules using the difference of Obidsets. Expert Systems with Applications, 2015. 42(9): p. 4361-4369 Sách, tạp chí
Tiêu đề: An improved algorithm for mining classassociation rules using the difference of Obidsets
6. H. R. Qodmanan, M. Nasiri, and B. Minaei-Bidgoli, Multi objective association rule mining with genetic algorithm without specifying minimum support and minimum confidence. Expert Systems with applications, 2011.38(1): p. 288-298 Sách, tạp chí
Tiêu đề: Multi objectiveassociation rule mining with genetic algorithm without specifying minimumsupport and minimum confidence
8. Y. Richter, E. Yom-Tov, and N. Slonim. Predicting customer churn in mobile networks through analysis of social groups. in Proceedings of the 2010 SIAM international conference on data mining. 2010. SIAM Sách, tạp chí
Tiêu đề: Predicting customer churn inmobile networks through analysis of social groups". in "Proceedings of the2010 SIAM international conference on data mining
9. F. Thabtah, P. Cowling, and Y. Peng. MCAR: multi-class classification based on association rule. in The 3rd ACS/IEEE International Conference onComputer Systems and Applications, 2005. 2005. IEEE Sách, tạp chí
Tiêu đề: MCAR: multi-class classificationbased on association rule". in "The 3rd ACS/IEEE International ConferenceonComputer Systems and Applications, 2005
10. R. Thonangi and V. Pudi. ACME: An associative classifier based on maximum entropy principle. in Algorithmic Learning Theory: 16th Sách, tạp chí
Tiêu đề: ACME: An associative classifier based onmaximum entropy principle". in
11. M. R. Tolun and S. M. Abu-Soud, An Inductive Learning Algorithm for Production Rule Discovery. The International Journal of Expert Systems with Applications, 1998. 14(3): p. 361-370 Sách, tạp chí
Tiêu đề: An Inductive Learning Algorithm forProduction Rule Discovery
12. M. R. Tolun, et al., ILA-2: An inductive learning algorithm for knowledge discovery. Cybernetics & Systems, 1999. 30(7): p. 609-628 Sách, tạp chí
Tiêu đề: ILA-2: An inductive learning algorithm for knowledgediscovery
13. C.-F. Tsai and M.-Y. Chen, Variable selection by association rules for customer churn prediction of multimedia on demand. Expert Systems with Applications, 2010. 37(3): p. 2006-2015 Sách, tạp chí
Tiêu đề: Variable selection by association rules forcustomer churn prediction of multimedia on demand
14. A. Veloso, et al., Calibrated lazy associative classification. Information Sciences, 2011. 181(13): p. 2656-2670 Sách, tạp chí
Tiêu đề: Calibrated lazy associative classification
15. X. Yin and J. Han. CPAR: Classification based on predictive association rules. in Proceedings of the 2003 SIAM international conference on data mining. 2003. SIAM Sách, tạp chí
Tiêu đề: CPAR: Classification based on predictive associationrules". in "Proceedings of the 2003 SIAM international conference on datamining

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w