Từ card trong môn khai phá dữ liệu là gì năm 2024

ỨNG DỤNG PHÁT HIỆN GIAN LẬN THẺ TÍN DỤNG SỬ DỤNG MÔ HÌNH THUẬT TOÁN DECISION TREE, NAIVE BAYES VÀ XGBOOST

❖ GIẢNG VIÊN: TS. Hồ Quốc Dũng ❖

SVTH : Trần Lê Hoàng Bảo

MSSV : 2174801090010

NGÀNH : Khoa Học Dữ Liệu

LỚP : 71K27KHDL

TP. Hồ Chí Minh, Năm 2023

MỤC LỤC

  • MỞ ĐẦU.....................................................................................................
  • CHƯƠNG 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU.............................
    • 1 Giới thiệu chung.................................................................................
    • 1 Các bước của quá trình phát hiện tri thức...........................................
    • 1 Các chức năng chính của khai phá dữ liệu.........................................
    • 1 Ứng dụng của khai phá dữ liệu...........................................................
  • HÌNH DECISION TREE, NAIVE BAYES VÀ XGBOOST....................... CHƯƠNG 2: PHÁT HIỆN GIAN LẬN THẺ TÍN DỤNG SỬ DỤNG MÔ
    • 2 Mô tả tập dữ liệu................................................................................
    • 2 Visualize data...................................................................................
    • 2 Plot biểu đồ data...............................................................................
    • 2 Tiền xử lý dữ liệu.............................................................................
  • CHƯƠNG 3: XÂY DỰNG MÔ HÌNH ĐÁNH GIÁ THỬ NGHIỆM.......
    • 3 Thực Thi Mô Hình...........................................................................
    • 3 Đánh Giá Mô Hình...........................................................................
    • 3 Trực quan hóa kết quả......................................................................
    • 3 Ưu điểm và nhược điểm của 3 mô hình............................................
  • KẾT LUẬN...............................................................................................
  • TÀI LIỆU THAM KHẢO.........................................................................

MỞ ĐẦU.....................................................................................................

 Giới thiệu

Với sự phát triển của công nghệ thông tin, một lượng lớn dữ liệu đã được tích lũy trong các lĩnh vực khác nhau. Tuy nhiên, chỉ một phần nhỏ của dữ liệu này được phân tích và phần còn lại được lưu trữ vì nó được coi là có giá trị. Để khai thác dữ liệu này và thu được kiến thức hữu ích, kỹ thuật khám phá tri thức và khai phá dữ liệu (KDD) đã được phát triển. Khai phá dữ liệu là bước quan trọng nhất trong KDD, giúp người sử dụng tìm kiếm tri thức từ các cơ sở dữ liệu hoặc nguồn dữ liệu khác. Phân loại và phân cụm là hai kỹ thuật thường được sử dụng trong khai phá dữ liệu, đã được áp dụng và mang lại nhiều lợi ích đáng kể trong hoạt động sản xuất và kinh doanh của nhiều tổ chức trên toàn cầu.

Ngày nay, với sự phát triển mạnh mẽ của công nghệ thông tin, dữ liệu đang trở nên ngày càng phong phú và đa dạng. Khai phá dữ liệu đóng một vai trò quan trọng trong việc tìm kiếm và phân tích thông tin từ dữ liệu. Có nhiều thuật toán được áp dụng trong khai phá dữ liệu, từ thuật toán cơ bản đến các thuật toán nâng cao.

Trong nghiên cứu này, chúng tôi tập trung vào một số thuật toán khai phá dữ liệu phổ biến, bao gồm : Thuật toán CÂY QUYẾT ĐỊNH (DECISION TREE) Thuật toán NAIVE BAYES Thuật toán XGBOOST

Những thuật toán này sẽ được sử dụng để khai phá dữ liệu từ tập dữ liệu Credit Card Fraud Detection trên Kaggle, nhằm mục đích xác định các yếu tố ảnh hưởng đến các giao dịch lừa đảo và xây dựng một mô hình dự đoán chính xác các giao dịch lừa đảo.

CHƯƠNG 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU.............................

1 Giới thiệu chung.................................................................................

Trong thời đại số hóa, sự phát triển vượt bậc của công nghệ thông tin và ngành công nghiệp phần cứng đã dẫn đến một lượng dữ liệu khổng lồ được sản sinh và lưu trữ một cách nhanh chóng. Việc ứng dụng công nghệ thông tin để tự động hóa các hoạt động sản xuất, kinh doanh và nhiều lĩnh vực khác cũng đóng góp vào sự tăng trưởng của dữ liệu. Trong quá trình này, hàng triệu cơ sở dữ liệu đã được tạo ra và được sử dụng trong nhiều hoạt động sản xuất, kinh doanh và quản lý, trong đó có những cơ sở dữ liệu cực lớn có kích thước đo đạc bằng Gigabyte hoặc Terabyte.

Tuy nhiên, khối lượng dữ liệu khổng lồ này không hữu ích nếu không được chuyển đổi thành tri thức có giá trị. Để đáp ứng nhu cầu này, kỹ thuật khai phá dữ liệu đã trở thành một lĩnh vực thú vị và đầy thách thức của ngành khoa học dữ liệu, giúp tìm ra các mẫu, quy luật và tri thức tiềm ẩn trong dữ liệu. Từ đó, khai phá dữ liệu đóng vai trò quan trọng trong việc hỗ trợ đưa ra quyết định, dự đoán và phân tích dữ liệu cho nhiều ngành và lĩnh vực khác nhau.

Khai phá dữ liệu (Data Mining) là quá trình tìm kiếm thông tin hữu ích từ các cơ sở dữ liệu lớn bằng cách sử dụng các kỹ thuật và công cụ từ nhiều lĩnh vực như thống kê, trí tuệ nhân tạo, học máy, và các phương pháp khác để phân tích dữ liệu và tìm ra các mối quan hệ, xu hướng, mẫu và thông tin hữu ích khác. Khai phá dữ liệu là một bước thiết yếu trong quá trình Phát hiện tri thức từ cơ sở dữ liệu, nhằm trích xuất các thông tin có giá trị tiềm ẩn bên trong lượng lớn dữ liệu được lưu trữ trong các CSDL, kho dữ liệu.

  1. Thu thập dữ liệu: Thu thập các dữ liệu liên quan đến vấn đề cần giải quyết.
  2. Tiền xử lý dữ liệu: Làm sạch và chuẩn hóa dữ liệu để đảm bảo tính toàn vẹn và độ chính xác của dữ liệu.
  3. Lựa chọn và chuẩn bị dữ liệu: Chọn ra các dữ liệu có ích cho việc phân tích, xác định định dạng và cấu trúc dữ liệu phù hợp.
  4. Khai phá dữ liệu: Sử dụng các kỹ thuật khai phá dữ liệu để phân tích dữ liệu và tìm ra các mối quan hệ, xu hướng, mẫu và thông tin hữu ích khác.
  5. Kiểm tra và đánh giá kết quả: Kiểm tra và đánh giá tính chính xác và độ tin cậy của kết quả.
  6. Triển khai tri thức: Áp dụng tri thức được khai phá vào các lĩnh vực như khoa học, kinh doanh, y tế và nhiều lĩnh vực khác. Quá trình KDD là một quá trình lặp đi lặp lại, có thể cần phải điều chỉnh lại các bước để đạt được kết quả tốt nhất.

1 Các chức năng chính của khai phá dữ liệu.........................................

Các chức năng chính của khai phá dữ liệu bao gồm:

  1. Phân loại (Classification): Phân loại là quá trình xây dựng một mô hình để phân loại các mục dữ liệu mới vào các lớp được xác định trước. Ví dụ: Phân loại email là spam hoặc không phải spam.
  2. Gom nhóm (Clustering): Gom nhóm là quá trình phân chia các mục dữ liệu vào các nhóm sao cho các mục trong cùng một nhóm tương tự nhau hơn so với các mục trong các nhóm khác. Ví dụ: Gom nhóm khách hàng dựa trên hành vi mua hàng để đưa ra các chiến lược kinh doanh phù hợp.
  3. Liên kết (Association): Liên kết là quá trình tìm kiếm các mối quan hệ kết nối giữa các mục dữ liệu. Ví dụ: Tìm kiếm các mối quan hệ giữa các sản phẩm mà khách hàng thường mua cùng nhau để đưa ra các đề xuất bán hàng.
  4. Dự báo (Prediction): Dự báo là quá trình xây dựng một mô hình để dự đoán giá trị của một thuộc tính dữ liệu mới dựa trên các thuộc tính khác. Ví dụ: Dự đoán giá nhà dựa trên diện tích, vị trí và số phòng.
  5. Tóm tắt (Summarization): Tóm tắt là quá trình trích xuất các thông tin quan trọng và đại diện từ dữ liệu. Ví dụ: Tóm tắt tin tức để đưa ra các thông tin cốt lõi.
  6. Kiểm định (Validation): Kiểm định là quá trình đánh giá hiệu suất của một mô hình khai phá dữ liệu bằng cách sử dụng các dữ liệu khác với dữ liệu được sử dụng để xây dựng mô hình. Ví dụ: Kiểm định hiệu suất của mô hình phân loại bằng cách sử dụng tập dữ liệu kiểm tra.

Các ví dụ trên chỉ là một số ví dụ đơn giản để minh họa các chức năng chính của khai phá dữ liệu. Trong thực tế, các ứng dụng khai phá dữ liệu phức tạp hơn và thường kết hợp nhiều chức năng để đưa ra các kết quả phân tích dữ liệu đầy đủ và chính xác hơn.

1 Ứng dụng của khai phá dữ liệu...........................................................

Khai phá dữ liệu được sử dụng rộng rãi trong nhiều lĩnh vực, bao gồm: 1. Kinh doanh: Khai phá dữ liệu được sử dụng để tìm hiểu thị trường và khách hàng, phân tích dữ liệu bán hàng, dự đoán xu hướng tiêu dùng, đề xuất sản phẩm phù hợp và nâng cao hiệu quả kinh doanh. 2. Y tế: Khai phá dữ liệu giúp các chuyên gia y tế phân tích dữ liệu bệnh nhân, phát hiện các mối quan hệ giữa các loại bệnh và yếu tố nguy cơ, dự đoán các bệnh lý phát triển, đưa ra chẩn đoán và kế hoạch điều trị. 3. An ninh mạng: Khai phá dữ liệu giúp phát hiện các hành vi lạ và các cuộc tấn công mạng, giúp bảo vệ các hệ thống và thông tin quan trọng. 4. Tài chính: Khai phá dữ liệu được sử dụng để phân tích các giao dịch tài chính, dự đoán xu hướng thị trường, đưa ra các quyết định đầu tư và tài chính thông minh hơn. 5. Công nghệ: Khai phá dữ liệu được sử dụng trong việc phân tích dữ liệu từ các thiết bị Internet of Things (IoT), đưa ra dự đoán và phân tích về các xu hướng công nghệ mới.

2 Mô tả tập dữ liệu................................................................................

Tập dữ liệu Credit Card Fraud Detection là một tập dữ liệu được sử dụng rộng rãi trong lĩnh vực phát hiện gian lận thẻ tín dụng. Tập dữ liệu này chứa thông tin về các giao dịch thẻ tín dụng được thực hiện trong một khoảng thời gian hai ngày bởi các chủ thẻ trong tháng 9 năm 2013 bởi các ngân hàng châu Âu. Bộ dữ liệu này có 31 trường với 284,807 giao dịch, trong đó 492 giao dịch (0,17%) là giao dịch gian lận.

Tập dữ liệu này chứa các thông tin về giao dịch thẻ tín dụng, bao gồm các trường như số tiền giao dịch, thời gian giao dịch, địa điểm giao dịch, loại thẻ tín dụng, vv. Ngoài ra, tập dữ liệu cũng đã được xử lý trước để đảm bảo tính ẩn danh, giảm thiểu sự ảnh hưởng của các thuộc tính nhạy cảm và đảm bảo tính bảo mật.

Tập dữ liệu Credit Card Fraud Detection được sử dụng phổ biến trong các hoạt động phân tích dữ liệu và xây dựng mô hình dự đoán để phát hiện các giao dịch lừa đảo trong thời gian thực. Tập dữ liệu này đã được sử dụng để phát triển và đánh giá hiệu quả của các thuật toán phát hiện lừa đảo, cũng như để nghiên cứu các yếu tố ảnh hưởng đến các giao dịch lừa đảo. Các trường của bộ dữ liệu bao gồm:

o Time: số giây từ giao dịch đầu tiên trong bộ dữ liệu đến giao dịch hiện tại. o V1 đến V28: là các biến liên quan đến các thuộc tính giao dịch. Chúng ta không biết chính xác nghĩa của chúng vì chúng đã được mã hóa. o Amount: số tiền giao dịch. o Class: 0 nếu giao dịch là hợp lệ, 1 nếu giao dịch là giao dịch gian lận.

Đầu tiên sẽ là bước tiền xử lí dữ liệu. Với bước này, ta sẽ xem dữ liệu có bao nhiêu biến và quan sát có biến nào bị trường hợp missing values hay không?

o Như vậy ta có 284807 hàng và 31 cột

 THÔNG TIN CỦA TỪNG CỘT

2 Visualize data...................................................................................

 Sau khi có thông tin của từng biến trong tập data, để xem xét các cột của tập data có chức các giá trị missing values hay không, ta sử dụng hàm isnull().sum()

Dựa vào bảng thống kê mô tả trên, ta có thể thấy rằng trung bình giá trị giao dịch của các giao dịch bình thường là khoảng 88 đô la Mỹ, trong khi đó trung bình giá trị của các giao dịch lừa đảo là khoảng 122 đô la Mỹ, tuy nhiên độ lệch chuẩn của giá trị giao dịch lừa đảo rất lớn (khoảng 250 đô la Mỹ) so với giao dịch bình thường (khoảng 256 đô la Mỹ). Ngoài ra, độ phân tán của giá trị giao dịch lừa đảo cũng lớn hơn nhiều so với giá trị giao dịch bình thường, như được thể hiện qua giá trị thấp nhất của giao dịch lừa đảo là 0 đô la Mỹ và giá trị cao nhất là 2125,87 đô la Mỹ, trong khi đó với giao dịch bình thường, giá trị thấp nhất là 0 đô la Mỹ và giá trị cao nhất là 25691,16 đô la Mỹ.

 Các giao dịch gian lận có xảy ra thường xuyên hơn trong khung thời gian nhất định không?

Ta có thể tiến hành so sánh khung thời gian (Time) của các giao dịch gian lận và các giao dịch bình thường. Từ các thông số thống kê cho thấy rằng:

o Giá trị trung bình của Time cho các giao dịch gian lận là 80746, thấp hơn giá trị trung bình của Time cho các giao dịch bình thường là 94838. o Độ lệch chuẩn của Time cho các giao dịch gian lận là 47835, thấp hơn độ lệch chuẩn của Time cho các giao dịch bình thường là 47484.

Từ kết quả trên, ta không thể kết luận rằng các giao dịch gian lận xảy ra thường xuyên hơn trong một khoảng thời gian nhất định, vì giá trị trung bình và độ lệch chuẩn của Time cho các giao dịch gian lận và bình thường không chênh lệch lớn nhau. Tuy nhiên, để có thể chắc chắn hơn, ta nên tiến hành phân tích thêm bằng cách trực quan hóa dữ liệu để tìm ra sự khác biệt giữa các giao dịch gian lận và bình thường trong thời gian.

2 Plot biểu đồ data...............................................................................

 BIỂU ĐỒ 1 : Số lượng giao dịch theo từng loại

phát hiện và xử lý các giao dịch gian lận là một thách thức lớn trong khai thác dữ liệu tài chính, vì vậy tập dữ liệu này là rất quan trọng và thú vị để nghiên cứu và áp dụng các thuật toán phân loại để phát hiện giao dịch gian lận.

 BIỂU ĐỒ 2 : Phân bố giá trị giao dịch (Amount) và thời gian giao dịch (Time)

Đoạn code trên sử dụng thư viện matplotlib và seaborn để trực quan hóa dữ liệu từ tập dữ liệu Credit Card Fraud Detection. Cụ thể, đoạn code này vẽ hai biểu đồ histogram với các thông tin như sau:

Biểu đồ thứ nhất: Distribution of Amount o Sử dụng hàm distplot của seaborn để vẽ biểu đồ histogram của cột dữ liệu 'Amount' o Giá trị cột 'Amount' được lưu vào biến amount_val trước khi được vẽ lên biểu đồ o Trục hoành là giá trị của 'Amount', trục tung là tần suất (số lần xuất hiện) của các giá trị đó

Biểu đồ thứ hai: Distribution of Time o Sử dụng hàm distplot của seaborn để vẽ biểu đồ histogram của cột dữ liệu 'Time' o Giá trị cột 'Time' được lưu vào biến time_val trước khi được vẽ lên biểu đồ o Trục hoành là giá trị của 'Time', trục tung là tần suất (số lần xuất hiện) của các giá trị đó Cả hai biểu đồ đều giúp chúng ta có cái nhìn tổng quan về phân bố của các giá trị 'Amount' và 'Time' trong tập dữ liệu Credit Card Fraud Detection. Nếu phân bố của một trong hai cột dữ liệu này không đều, có thể ảnh hưởng đến hiệu quả của các thuật toán khai phá dữ liệu và mô hình học máy sau này.