Phân loại và phân cụm là haikỹ thuật thường được sử dụng trong khai phá dữ liệu, đã được áp dụng và mang lại nhiềulợi ích đáng kể trong hoạt động sản xuất và kinh doanh của nhiều tổ chức
TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
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 Nó có ý nghĩa quan trọng trong nhiều lĩnh vực, đặc biệt là trong khoa học và kinh doanh, giúp hỗ trợ việc ra quyết định dựa trên các tri thức được tìm ra từ dữ liệu.
Tại sao lại cần khai phá dữ liệu:
Việc khai phá dữ liệu ngày càng trở nên cần thiết hơn do sự tăng trưởng về khối lượng dữ liệu được thu thập từ các nguồn khác nhau như mạng xã hội, các trang web, các hệ thống giao thông, hệ thống y tế, hệ thống ngân hàng, và nhiều lĩnh vực khác Việc tìm kiếm thông tin hữu ích từ các dữ liệu này giúp cho các tổ chức và doanh nghiệp có thể tăng cường khả năng dự đoán, phân tích thị trường và đưa ra các quyết định tối ưu hơn trong kinh doanh và quản lý.
Các bước của quá trình phát hiện tri thức
Quá trình phát hiện tri thức tiến hành qua 6 giai đoạn như hình 1.1:
Hình 1.1: Quá trình phát hiện tri thức
Quá trình phát hiện tri thức từ cơ sở dữ liệu (KDD) bao gồm nhiều bước khác nhau, trong đó khai phá dữ liệu (Data Mining) là một bước quan trọng Các bước của quá trình KDD bao gồm:
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.
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.
Ứ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.
PHÁT HIỆN GIAN LẬN THẺ TÍN DỤNG SỬ DỤNG MÔ HÌNH DECISION TREE, NAIVE BAYES VÀ XGBOOST
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:
Time: số giây giao dịch đầu tiên trong bộ dữ liệu đến giao dịch hiện tại.
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.
Amount : số tiền giao dịch
Class : 0 nếu giao dịch là hợp lệ, 1 nếu giao dịch là giao dịch lừa đảo
Đầ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 ?
Hình 2.1 Code hiển thị bảng
Như vậy ta có 284807 hàng và 31 cột
Hình 2.4 thông tin từng cột
Hình 2.5 Code mô tả bảng dữ liệu
Hình 2.6 mô tả dữ liệu
Hình 2.7 Mô tả dữ liệu
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()
Hình 2.8 kiểm tra giá trị có bị Missing values
Kết quả cho thấy tập data đã được xử lý các giá trị missing values trước đó nên cho ra kết quả các cột đều là 0 ( không có giá trị missing values )
Lượng tiền được sử dụng trong các loại giao dịch khác nhau như thế nào ?
Hình 2.9 Mô tả giá trị giao dịch của “fraud” và “normal”
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 đô laMỹ.
Các giao dịch gian lận xảy ra thường xuyên hơn trong khung thời gian nhất định không?
Hình 2.10 Mô tả sự thay đổi của “fraud” và “normal” theo thời gian
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:
Giá trị trung bình của Time cho các giao dịch gian lận là 80746.8, thấp hơn giá trị trung bình của Time cho các giao dịch bình thường là 94838.2.
Độ lệch chuẩn của Time cho các giao dịch gian lận là 47835.3, thấp hơn độ lệch chuẩn của Time cho các giao dịch bình thường là 47484.0.
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.
Plot biểu đồ Data
BIỂU ĐỒ 1: số lượng giao dịch từng loại
Hình 2.12 Biểu đồ số lượng giao dịch của “ fraud” và “normal”
Đoạn code trên đầu tiên import thư viện seaborn mathplotlip.pyplot
Đoạn code tiếp theo tạo ra một list LABELS để lưu tên các nhãn của tập dữ liệu gồm
Sau đó, đoạn code sử dụng hàm value.counts() của pandas để đếm số lượng các giao dịch thuộc từng nhãn Kết quả được lưu vào biến count_classes.
Tiếp đó, sử dụng hàm countplot() của thư viện seaborn được khai báo ở đầu để vẽ biểu đồ đếm số lượng các giao dịch theo nhãn Nhãn “Normal” được biểu diễn bằng số 0 và nhãn “Fraud” được biểu diễn bằng số 1 trên trục X của biểu đồ.
Cuối cùng, đoạn code tính toán phần trăm số lượng các giao dịch theo từng nhãn và in ra kết quả trên màn hình.
Biểu đồ đếm số lượng các giao dịch theo nhãn giúp chúng ta hiểu rõ hơn về phân bố của tập dữ liệu Trong trường hợp này, biểu đồ cho thấy số lượng các giao dịch gian lận (nhãn
"Fraud") rất ít so với số lượng các giao dịch bình thường (nhãn "Normal") Việc 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)
Hình 2.13 Code Biểu đồ phân bố giá trị giao dịch
Hình 2.14 Biểu đồ phân bố giá trị giao dịch Đ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
Sử dụng hàm displot của seaborn để vẽ biểu đồ histogram của cột dữ liệu
Giá trị cột “Amount” được lưu vào biến amount_val trước khi được vẽ lên biểu đồ.
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
Sử dụng hàm displot của seaborn để vẽ biểu đồ histogram của cột dữ liệu
Giá trị cột “Time” được lưu vào biến time_val trước khi được vẽ lên biểu đồ.
Trục hoành là giá trị “Time”, trục tung là tấn xuất (số lần xuất hiện) của 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.
BIỂU ĐỒ 3 : Phân bố giá trị giao dịch (Amount) theo từng loại giao dịch
Hình 2.15 Code biểu đồ phân bố giá trị giao dịch
Hình 2.16 biểu đồ phân bố giá trị giao dịch
Box plot là một biểu đồ thể hiện phân phối của một biến số dưới dạng đường kẻ ngang.Trong tập dữ liệu Credit Card Fraud Detection, chúng ta có thể sử dụng box plot để so sánh phân phối của biến "Amount" giữa các giao dịch bình thường và giao dịch gian lận.
Biểu đồ mô tả phân bố giá trị giao dịch (Amount) của cả hai loại giao dịch (Normal và Fraud) Ta có thể thấy rằng phân bố giá trị giao dịch của các giao dịch bình thường (Normal) có xu hướng tập trung ở các giá trị nhỏ hơn, trong khi phân bố giá trị giao dịch của các giao dịch gian lận (Fraud) có xu hướng tập trung ở các giá trị lớn hơn Điều này cho thấy rằng các giao dịch gian lận có xu hướng có giá trị giao dịch lớn hơn so với các giao dịch bình thường.
Biểu đồ 4 : Sự tương quan giữa giá trị giao dịch (Amount) và thời gian giao dịch
Hình 2.17 Code sự tương quan giữa các giá trị giao dịch
Hình 2.18 sự tương quan giữa các giá trị giao dịch
Biểu đồ là biểu đồ Scatter Plot, mô tả sự tương quan giữa hai biến là giá trị giao dịch(Amount) và thời gian giao dịch (Time) Mỗi điểm trên biểu đồ đại diện cho một giao dịch Màu sắc của điểm thể hiện cho lớp giao dịch (fraud hoặc normal).
Từ biểu đồ, ta thấy không có một sự tương quan rõ ràng giữa giá trị giao dịch và thời gian giao dịch Các điểm của cả hai lớp giao dịch (fraud và normal) phân bố khá đều trên khắp biểu đồ, không có khu vực nào có mật độ điểm cao hơn so với các khu vực khác Tuy nhiên, ta có thể thấy một số điểm bị cô lập và nằm xa khỏi phần lớn các điểm trên biểu đồ, đây có thể là các giao dịch bất thường hoặc lừa đảo.
Tiền xử lý dữ liệu
Hình 2.19 Code và kết quả tiền xử lý dữ liệu
Hình 2.20 Code và kết quả tiền xử lý dữ liệu Đây là một hàm được định nghĩa để in kết quả đánh giá của mô hình phân loại trên tập train hoặc tập test Hàm nhận vào 3 tham số: label là nhãn thực tế, prediction là nhãn dự đoán được đưa ra bởi mô hình và train là biến boolean (True hoặc False) cho biết đây là tập train hay tập test.
Nếu train=True, hàm sẽ in ra kết quả đánh giá trên tập train , bao gồm : Accuracy Score ( độ chính xác), Classification Report ( bao gồm precision, recall, f1-score, support) và Confusion Matrix.
Nếu trainse, hàm sẽ in ra kết quả đánh giá trên tập test, cũng bao gồmAccuracy Score , Classification Report và Confusion Matrix.
XÂY DỰNG MÔ HÌNH ĐÁNH GIÁ THỬ NGHIỆM
Thực thi mô hình
Hình 3.1 Code Mô Hình Decision Tree
Hình 3.2 Code Mô Hình Naive Bayes
Trong Naive Bayes, Gaussian Naive Bayes được sử dụng khi các đặc trưng(features) của dữ liệu đang được xử lý có phân phối chuẩn (Gaussian) Nó được gọi làGaussian Naive Bayes vì giả định đơn giản rằng các giá trị của các đặc trưng độc lậpvới nhau và mỗi đặc trưng đóng góp tuyến tính đối với lớp (class) của một mẫu.
Mặc dù có nhiều phân phối khác có thể được sử dụng trong Naive Bayes, Gaussian Naive Bayes thường được sử dụng nhiều hơn vì nó phù hợp với nhiều bài toán và có thể cho kết quả tốt trong nhiều trường hợp Tuy nhiên, nếu dữ liệu của bạn không có phân phối chuẩn, hoặc nếu giả định độc lập giữa các đặc trưng không hợp lý,thì sẽ có gói khác được sử dụng cho Naive Bayes.
Hình 3.3 Code Mô Hình XGBOOST
Đánh giá mô hình
Ma trận hỗn loạn (confusion matrix) là một công cụ dùng trong học máy và thống kê để đánh giá hiệu suất của một mô hình phân loại Nó thể hiện một bảng so sánh giữa các giá trị thực tế và các giá trị dự đoán của mô hình, từ đó giúp chúng ta đánh giá chính xác, độ nhạy, độ đặc hiệu và nhiều chỉ số khác của mô hình.
TP ( True Positive) : Số lượng mẫu mà mô hình dự đoán đúng là lớp dương
(positive class) và thự tế cũng là lớp dương
TN (True Negative) : Số lượng mẫu mà mô hình dự đoán đúng là lớp âm
(Negative class) và thực tế cũng là lớp âm.
FP (False Positive) : Số lượng mẫy mà mô hình dự đoán sai là lớp dương nhưng thực tế là lớp âm.
FN (False Negative) : Số lượng mẫu mà mô hình dự đoán sai là lớp âm nhưng thực tế là lớp dương.
Accuracy (Độ chính xác) là một thước đo hiệu suất phổ biến dùng để đánh giá mô hình phân loại Độ chính xác cho biết tỷ lệ phần trăm của các dự đoán đúng trên tổng số các dự đoán, tức là mô hình dự đoán đúng bao nhiêu phần trăm trên tổng số các mẫu dữ liệu. Accuracy = (TP+TN)/(TP+TN+FP+FN)
Recall (Sensitivity) là một thước đo hiệu suất của mô hình phân loại, đặc biệt hữu ích trong các tình huống mà việc phát hiện đúng các mẫu thuộc lớp dương (positive class) là quan trọng Độ nhạy cho biết tỷ lệ phần trăm của các mẫu thuộc lớp dương thực sự được mô hình dự đoán đúng.
Precision là một thước đo hiệu suất của mô hình phân loại, đặc biệt hữu ích khi ta cần đánh giá mức độ chính xác của các dự đoán thuộc lớp dương (positive class) Precision cho biết tỷ lệ phần trăm các dự đoán thuộc lớp dương của mô hình thực sự là các mẫu dương Precision = TP/(TP+FP)
F1-score là một thước đo hiệu suất của mô hình phân loại, đặc biệt hữu ích khi cần cân bằng giữa độ chính xác của dương (Precision) và độ nhạy (Recall) F1-score là trung bình điều hòa của Precision và Recall, mang lại một chỉ số duy nhất để đánh giá mô hình khi có sự đánh đổi giữa hai thước đo này.
Hình 3.4 Kết quả của mô hình Decision Tree
Hình 3.5 Kết quả của mô hình Naive Bayes
Hình 3.6 Kết quả của mô hình XGBOOST
Trực quan hóa kết quả
Dựa trên các kết quả đánh giá từ các mô hình, ta có thể nhận thấy rằng mô hình XGBoost cho kết quả tốt nhất trên cả tập huấn luyện và tập kiểm tra với độ chính xác 100% và F1- score 0.877 Mô hình Gaussian Naive Bayes có độ chính xác và F1-score thấp hơn so với XGBoost và Decision Tree Tuy nhiên, mô hình Gaussian Naive Bayes vẫn cho kết quả tốt với độ chính xác 97.78% trên tập kiểm tra Mô hình Decision Tree có độ chính xác tương đối cao trên tập huấn luyện là 100% nhưng lại có hiện tượng overfitting trên tập kiểm tra với độ chính xác là 99.91% và F1-score là 0.71 Vì vậy, nếu muốn chọn ra một mô hình tốt nhất để dự đoán giao dịch gian lận, XGBoost sẽ là lựa chọn phù hợp.
Hình 3.7 Kết quả so sánh của 3 mô hình
Về Điểm F1, XGBoost có kết quả tốt nhất trên cả tập huấn luyện và tập kiểm tra Về khả năng xử lý dữ liệu lớn và khả năng chống overfitting, XGBoost cũng vượt trội hơn so với
Tuy nhiên, nếu chỉ cần một mô hình đơn giản để phân loại dữ liệu, Decision Tree hoặc Naive Bayes cũng là những lựa chọn tốt.
Vẽ Confusion Matrix của 3 mô hình trên tập test data Ta sẽ sử dụng hàm plot_confusion_matrix() để vẽ Confusion Matrix.
Hình 3.8 kết quả Confusion Matrix của Decision Tree
Hình 3.9 kết quả Confusion Matrix của Naive Bayes
Hình 3.10 kết quả Confusion Matrix của XGBOOST
Dự đoán một giao dịch sử dụng thẻ tín dụng có thể có phải là lừa đảo hay không?
Hình 3.11 Code kiểm tra dự đoán một giao dịch có phải là lừa đảo không
Ưu điểm và nhược điểm của 3 mô hình
Mô hình Decision Tree Ưu điểm:
1 Dễ hiểu và trự quan, có thể giải thích được quá trình ra quyết định.
2 Có khả năng xử lý các tính năng có giá trị bị thiếu.
3 Có thể xử lý các bài toán phân loại và hồi quy.
4 Tốc độ huấn luyện và dự đoán nhanh.
1 Có khả năng overfiting, đặc biệt là khi có nhiều nút trong cây.
2 Có thể bị ảnh hưởng bởi sự thay đổi nhỏ trong dữ liệu đầu vào.
3 Không thể xử lý được các bài toán với dữ liệu có tính chất liên tục.
Mô hình Naive Bayes Ưu điểm:
1 Đơn giản và dễ hiểu, dễ triển khai.
2 Có khả năng xử lý dữ liệu có tính chất rời rạc và liên tục.
3 Độ chính xác cao đối với bài toán phân loại với dữ liệu có tính chất đơn giản. Nhược điểm:
1 Không phù hợp cho các bài toán có tính chất phức tạp và đa dạng.
2 Yêu cầu giả định về tính độc lập giữa các đặc trưng của dữ liệu.
3 Có thể bị ảnh hưởng bởi giá trị ngoại lai (outliers) và sự thay đổi nhỏ trong dữ liệu đầu vào.
Mô hình XGBOOST Ưu điểm:
1 Có khả năng xử lý các bài toán phân loại và hồi quy.
2 Có khả năng xử lý được các bài toán có dữ liệu và tính tổng quát cao.
3 Có khả năng tạo ra các mô hình dự đoán chính xác hơn nhờ quá trình tổng hợp từ nhiều cây quyết định.
4 Được sử dụng phổ biến trong các cuộc thi máy học và khoa học dữ liệu.
1 Có khả năng overfiting nếu không được điều chỉnh thích hợp.
2 Cần phải chú ý đến việc xử lý dữ liệu bị thiếu và các giá trị ngoại lai (outliers) để tránh ảnh hưởng đến kết quả dự đoán.
3 Cần phải thực hiện điều chỉnh siêu tham số thích hợp để đạt được hiệu suất tốt nhất.
Những kết quả đã thực hiện :
Trong bài toán phát hiện gian lận thẻ tín dụng, chúng ta đã áp dụng ba thuật toán phân loại là Decision Tree, Naive Bayes và XGBoost để đào tạo và phân loại dữ liệu Sau đó, chúng ta đã đánh giá mô hình bằng cách sử dụng các độ đo đánh giá chính xác, precision, recall, F1-score Kết quả cho thấy rằng mô hình XGBoost đạt kết quả tốt nhất với độ chính xác cao hơn so với hai thuật toán còn lại Tuy nhiên, cả ba thuật toán đều có thể được sử dụng để giải quyết bài toán này với độ chính xác đáng kể.
Đồng thời, chúng ta đã phân tích ưu điểm và nhược điểm của mỗi thuật toán. Decision Tree dễ hiểu, dễ giải thích và có khả năng xử lý dữ liệu không đồng nhất Naive Bayes nhanh và hiệu quả, tuy nhiên, nó chỉ hoạt động tốt khi các giá trị đầu vào độc lập nhau Trong khi đó, XGBoost có độ chính xác cao và xử lý tốt với dữ liệu lớn và phức tạp Tuy nhiên, XGBoost có khả năng overfitting nếu không được điều chỉnh đúng cách.
Tổng quan, trong bài toán phát hiện gian lận thẻ tín dụng, chúng ta có thể sử dụng các thuật toán phân loại khác nhau để giải quyết vấn đề này Việc chọn thuật toán phù hợp sẽ phụ thuộc vào đặc tính của tập dữ liệu và yêu cầu của bài toán.UCI bao gồm các kết quả phân loại, phân lớp, cải tiến chất lượng phân lớp.
Qua quá trình trình thực nghiệm và nghiên cứu lý thuyết có thể đưa ra một số kết luận như sau:
Việc sử dụng mô hình phân loại để phát hiện gian lận thẻ tín dụng là khả thi và có thể giúp giảm thiểu tác động của các giao dịch gian lận đối với người dùng và tổ chức.
Các thuật toán phân loại như Decision Tree, Naive Bayes và XGBoost đều có thể được sử dụng để phát hiện gian lận thẻ tín dụng và đưa ra kết quả khá tốt Tuy nhiên, mỗi thuật toán có ưu điểm và nhược điểm riêng, và phụ thuộc vào các yếu tố khác nhau để chọn ra thuật toán phù hợp nhất cho vấn đề cụ thể.
Việc chọn và xử lý đúng các đặc trưng của dữ liệu là rất quan trọng trong việc xây dựng mô hình phân loại Việc loại bỏ các đặc trưng không quan trọng hoặc không ảnh hưởng đến kết quả có thể giúp cải thiện hiệu quả của mô hình.
Tuy nhiên, việc phát hiện gian lận thẻ tín dụng vẫn là một vấn đề thách thức và đòi hỏi sự cập nhật liên tục của các thuật toán và phương pháp xử lý dữ liệu mới nhất để giảm thiểu sự rủi ro cho các tổ chức và người dùng.
Hướng phát triển trong tương lai:
Sử dụng các thuật toán học sâu như mạng nơ-ron để nâng cao hiệu suất phát hiện gian lận.
Xây dựng hệ thống phân tích giao dịch phức tạp hơn, sử dụng nhiều thông tin hơn về hoạt động giao dịch, thời gian và vị trí để cải thiện độ chính xác của mô hình.
Kết hợp với các phương pháp giám sát khác như k-means clustering để phát hiện các nhóm giao dịch có tính chất tương tự nhau và phân tích giao dịch trong từng nhóm này để tăng hiệu quả phát hiện gian lận.
Áp dụng phương pháp học tăng cường để cải thiện khả năng tự động học của mô hình và giảm sự phụ thuộc vào các thông số do người dùng thiết lập.