BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI H C ỌKINH TẾ QUỐC DÂN
VIỆN CNTT & KTS
BÀI TẬP LỚN
Lớp học phần: Các ông nghcệ hiện đại trong CNTT (CNTT_1186)_02 Giảng Viên: TS Nguyễn Trung Tuấn
Chủ Đề 6: Phân Lớp Dữ LiệuCác thành viên:
1 11213929 – ùng Lê Minh (trưởng nhóm) Ph2 11213871 – Nguyễn Khánh Minh 3 11214014 – Phạm Vũ Ngọc Mùi 4 11218471 – Đặng Phương Nam 5 11214106 – Hoàng Khánh Nam
Trang 2MỤC LỤC
DANH M C HÌNH ỤẢNH 5
LỜI MỞ ĐẦU 6
CHƯƠNG I: 7
TỔNG QUAN V KHÁM PHÁ TRI TH C VÀ KHAI PHÁ DỀ ỨỮ ỆU LI 7
1.Dữ liệu, thông tin, tri thức: 7
2.Khám phá tri thức: 8
3.Khai phá dữ liệu: 10
CHƯƠNG II: 12
GIỚI THIỆU VỀ PHÂN LỚP D LIỮ ỆU 12
1.Khái niệm phân lớp dữ liệu: 12
2.Vai trò phân lớp dữ liệu: 12
5.5.Hiểu được (Interpretability): 16
6.So sánh với phân cụm dữ liệu (Data Clustering): 17
7.Các công cụ phân l p dớữ liệu: 18
a.Python: 18
Trang 3CÁC PHƯƠNG PHÁP PHÂN LỚP DỮ ỆU LI 21
1.Cây quyết định (Decision Tree): 21
1.1.Khái niệm: 21
1.2.Xây dựng cây quyết định: 22
1.2.1.Chọn thuộc tính gốc: 22
1.2.2.Phân tách dữ liệ 23u:1.2.3.Điều ki n dệừng: 23
1.3.Một số dạng sơ đ cây: 24ồ 1.4.Một số vấn đề liên quan: 25
1.4.1.Ma trận lỗi (Confusion Matrix): 25
1.4.2.Độ lợi thông tin (Information Gain): 26
1.4.3.Tình trạng quá kh p (Overfitting):ớ 27
1.5.Ưu điểm cây quyết định: 29
1.6.Hạn chế cây quyết định: 29
1.7.Ứng d ng cây quyụết định: 30
2.Mạng Nơ-ron (Neural Network): 31
2.1.Khái niệm mạng nơ-ron: 31
2.2.Một số thuật ngữ: 32
2.3.Một số kiến trúc m ng nơạ-ron: 33
2.4.Xây dựng m ng nơạ-ron: 34
Trang 43.1.Phân lớp với k phầ ử gần tn nhất (K-Nearest Neighbor): 38
3.2.Tiếp c n theo th ng kê (Naive Bayes):ậố 39
3.3.Hồi quy Logistic (Logistic Regression): 41
3.4.Máy vector hỗ ợ tr (Support Vector Machine - SVM): 43
CHƯƠNG IV: 45
PHÂN LỚP DỮ LIỆU VỚI PYTHON VÀ RAPIDMINER 45
1.Đặt vấn đề: 45
2.Giới thiệu bài toán: 46
3.Phân lớp dữ liệu với Python: 48
Trang 6Hình 11: Trang download của Python 49
Hình 12: Cửa sổ Command Lin 49 e Hình 13: Trang download của Anaconda 50
Hình 14: Giao diện Anaconda Navigator 51
Hình 15: Giao diện trình duyệt Jupyter Notebook 52
Hình 16: Giao diện chính Jupyter Notebook 53
Hình 17: Bảng bi u để ồ các mối quan h 56 ệ Hình 18: Mô hình sơ đồ cây 60
Hình 19: Bảng ma tr n lậ ỗi (Confusion Matrix) 62
Hình 20: Trang đăng kí của RapidMiner 66
Hình 21: Giao diện chính của RapidMiner 68
Trang 7LỜI MỞ ĐẦU
Với sự phát triển không ngừng của công nghệ và dữ liệu ngày càng tăng trưởng, khai phá thông tin từ dữ liệu là một nhiệm vụ vô cùng quan trọng và hấp dẫn Trong cuộc hành trình này, "Phân lớp dữ liệu" đóng một vai trò then chốt, cho phép chúng ta xác định và dự đoán xu hướng, nhận biết những mô hình ẩn sau dữ liệu, và đưa ra quyết định thông minh
Phân lớp dữ liệu không chỉ là một phần quan trọng của lĩnh vực khai phá dữ liệu mà còn có ứng dụng rộng rãi trong thực tế Từ việc phân loại email rác đến dự đoán xác suất mua hàng của khách hàng, từ phát hiện gian lận tín dụng đến dự báo thời tiết, "Phân lớp dữ liệu" chắc chắn đã và đang thay đổi cách chúng ta tương tác với dữ liệu và thế giới xung quanh
Trong tìm hiểu sâu hơn về "Phân lớp dữ liệu," chúng ta sẽ khám phá các phương pháp, công cụ, và ứng dụng cụ thể Chúng ta sẽ tìm hiểu cách xây dựng mô hình phân loại, đánh giá độ chính xác của chúng, và cách ứng dụng chúng trong các lĩnh vực khác nhau
Nội dung báo cáo sẽ tập trung vào những kiến thức tổng quan nhất về Phân lớp dữ liệu, giúp hiểu được khái niệm, quy trình thực hiện phân lớp và là tiền đề tốt cho những nghiên cứu chuyên sâu hơn sau này
Bố cục báo cáo gồm 4 phần:
Do thời gian và lượng kiến thức của chúng em có hạn, cùng với những hạn chế về tài liệu và báo cáo, chúng em hiểu rằng còn nhiều điểm cần hoàn thiện Chúng em trân trọng mọi ý kiến đóng góp từ phía thầy cô và các bạn để có thể nâng cao chất lượng của đề tài và tích lũy thêm kinh nghiệm cho các dự án sắp tới Chúng em xin bày tỏ lòng biết ơn sâu sắc đến thầy Nguyễn Trung Tuấn vì sự hướng dẫn và hỗ trợ quý báu trong suốt quá trình thực hiện đề tài này.
Trang 8CHƯƠNG I:
TỔNG QUAN VỀ KHÁM PHÁ TRI THỨC VÀ KHAI PHÁ DỮ ỆU LI
khám phá trí thức và khai phá dữ liệu
1 Dữ liệu, thông tin, tri thức:
Hình 1: Mô hình DIK (Data Information Knowledge)- -
đến công nghệ thông tin đặc biệt là các lĩnh vực liên quan đến phân tích dữ liệu và phát hiện tri thức
• Dữ liệu (Data): là mức cơ bản nhất và đơn giản nhất của thông tin Data
Knowledge(Tri thức)Information(Thông tin)
Data(Dữ liệu)
Trang 9• Thông tin (Information): thường đư c định nghĩa là dữ liệu đã được xử ợ
2 Khám phá tri thức:
Quá trình Khám phá tri thức, thường đư c gọợ i là Khám phá tri thức trong Cơ sở dữ liệu (Knowledge Discovery of Databases, viết t t là KDD)ắ , là quá trình
một lĩnh vực đa ngành kết hợp các kỹ thuật từ khai phá dữ liệu, học máy, thống kê
Hình 2: Quy trình khám phá tri thức
Trang 10a Thu thập và Làm sạch Dữ ệu li(Data Acquiring & Cleaning): Quá
b Tích hợp Dữ ệu li(Data Intergration): Nếu cần thiết, d liữ ệu có thể
c Lựa chọn Dữ liệu (Data Selection): Chỉ các đ c điặ ểm d liệu c n thiữ ầ ết
thành viên trong nhóm để phân tích chúng
d Biến đổi Dữ liệu (Data Transformation): Dữ ệu sẽ li đuọc biến đổi để
e Khai phá Dữ liệu (Data Mining): Các thuật toán khai phá dữ liệu được
f Đánh giá Mẫu (Pattern Evaluation): Các mẫu dữ li u sau khi đư c ệ ợ
g Trình bày Tri thức (Knowledge Presentation): Những hi u biể ết, mẫu
Trang 11Khám phá tri thức đóng một vai trò quan trọng trong nhi u lĩnh về ực, bao gồm
3 Khai phá dữ liệu:
Khai phá dữ liệu (Data Mining) là quá trình tính toán đ tìm ra các mể ẫu và
Trang 12• Tổng kết (Summarization) bao gồm các phương pháp để tìm kiếm một
• Phát hiện thay đổi và chênh lệch (Change and Deviation Detection) tập
Trang 13CHƯƠNG II:
GIỚI THIỆU VỀ PHÂN LỚP DỮ ỆU LI
1 Khái niệm phân lớp dữ ệu: li
Hình 3: Phân lớp dữ liệu
Phân lớp (Classification) là m t trong kộ ỹ thuật khai phá dữ liệu Nó là quá
2 Vai trò phân l p dớữ ệu: li
Trang 14b Dự đoán: Phân lớp dữ liệu có thể được sử dụng để dự đoán các sự kiện
3 Ứng d ng phân l p dụớữ liệu:
bản, bao gồm việc phân loại tin tức, tự động gán thẻ cho email, phát hiện
tảng giải trí
Trang 15e Phân loại Tài liệu và Văn b n Pháp lý: ả Trong lĩnh vực pháp lý và luật
đầu tư, và phân loại khách hàng dựa trên hành vi tài chính
4 Quy trình phân lớp dữ liệu:
4.1 Xây dựng mô hình:
Trang 16Bước đầu tiên là xác định các l p hoớặc nhãn (Class Definition) mà cần phân
phân l p (Model Construction)ớ Mô hình có thể bao gồm các luật phân lớp, cây
4.2 Sử dụng mô hình:
5 Đánh giá phân lớp:
5.1 Độ chính xác d đoán (Prediction Accuracy): ự
Trang 17Độ#chính#xác =Số#dự#đoán đúngTổ #số#dự#ng #đoán#(%)
5.2 Tốc độ tính toán (Computational Efficiency):
5.3 Độ mạnh (Robustness):
Độ mạnh của mô hình đo lường khả năng của nó để hoạt động tốt trên dữ liệu
5.4 Khả năng mở rộng (Scalability):
5.5 Hiểu được (Interpretability):
Trang 18Khi đánh giá mô hình phân l p ớ có thể sử dụng nhi u phương pháp đánh giá, ề
lỗi (confusion matrix), tính toán độ chính xác, và theo dõi các tiêu chí khác nhau
6 So sánh với phân cụm dữ liệu (Data Clustering):
Phân cụm dữ liệu (Data Clustering) là m t kộ ỹ thuật trong lĩnh vực khai phá
Tiêu chí so sánh Phân lớp dữ ệu li
dựa trên các thông tin về
thông tin về lớp hoặc nhãn của các mẫu
Cách hoạt động Gán các mẫu dữ liệu vào các lớp hoặc nhãn đư c ợđịnh trước
Tìm những cụm hoặc
trước thông tin
Dữ liệu đ u vàoầ Mẫu dluyện đã đượữ liệu đưc biết trư c ợc huấn ớnhãn hoặc lớp
luyện không được biết
Trang 19trước
7 Các công cụ phân l p dớữ liệu:
a Python:
thực hiện các tính toán số học nhanh chóng và hiệu quả
Trang 20b R:
c MATLAB:
d SQL Server:
Trang 21e PowerBI:
f RapidMiner:
Trang 22CHƯƠNG III:
CÁC PHƯƠNG PHÁP PHÂN LỚP DỮ ỆU LI
1 Cây quyết định (Decision Tree):
Hình 4: Sơ đồ cây quyết định 1.1 Khái niệm:
Trang 23• Nút Trong (Internal Node) là nút trong cây ngoại trừ nút lá Chúng đại
1.2. Xây dựng cây quyết định:
1.2.1 Chọn thuộc tính gốc:
Mặc dù có nhiều phương pháp tính toán độ tinh khiết khác nhau, nhưng chúng đều
Trang 24phân tách tốt cũng cần t o ra các nút con có kích thưạ ớc tương tự nhau hoặc ít nhất
1.2.2 Phân tách dữ ệu: li
Đối v i biớến kiểu số, chúng ta có thể thực hiện phân tách nh phân dị ựa trên
Đối v i biớến đ nh tính,ị một phương pháp đơn giản là t o ra một nhánh cho ạ
1.2.3. Điều ki n dệừng:
Trang 25• Tất cả các mẫu rơi vào cùng mộ ớp: Khi tất l t cả các m u trong một nút ẫthuộc về cùng một lớp, cây có thể dừng tại nút đó và không tiếp tục phân
• Không còn lại mẫu nào tại nút: Khi một nút không chứa bất kỳ mẫu nào
1.3 Một số dạng sơ đ cây:ồ
cho kết quả
Trang 26• Cây quyết định C4.5: Là một phiên bản cả ếi ti n của ID3 Nó sử dụng độ
1.4 Một số vấn đề liên quan:
1.4.1 Ma trận lỗi (Confusion Matrix):
Ma trận lỗi (confusion matrix) là m t công cộ ụ quan tr ng đọ ể đánh giá hi u ệ
e) Số False Positive (FP): lượng m u thuẫ ộc lớp dự
Trang 27Dựa vào các giá trị trong ma trận lỗi, chúng ta có thể tính toán các độ đo quan trọng như sau:
dương tính mà không gây ra sai lầm
1.4.2 Độ lợi thông tin (Information Gain):
Độ lợi thông tin (Information gain) là đ i lưạ ợng được sử dụng đề chọ ựa n l
P hay N hay không là:
Trang 28Cho các tập {S1, S2 , , Sn} là một phân hoạch trên tập S, khi sử dụng thuộc
Tình trạng quá kh p (overfitting) ớ là m t hiộ ện tư ng trong hợ ọc máy và khai
Trang 29đại diện tốt hơn cho dữ liệu đ u vào, ngưầ ời xây dựng có thể giúp mô
• Sử dụng kỹ thuật kiểm tra chéo (cross-validation): Kiểm tra chéo là một
Trang 301.5. Ưu ểm cây quyết địđinh:
dạng các loại biến
1.6. Hạn chế cây quyết định:
Trang 31• Dễ bị quá kh p (Overfitting):ớ Cây quyết định có thể dễ dàng bị quá kh p ớ
1.7. Ứng d ng cây quyụết định:
• Phân loại sản phẩm trong thương mại điện tử: Cây quyết định có thể
• Xử lý ngôn ngữ tự nhiên: Trong lĩnh vực xử lý ngôn ngữ tự nhiên, cây
Trang 322 Mạng Nơ-ron (Neural Network):
Hình 6: Mô hình mạng nơ-ron 2.1 Khái niệm mạng nơ-ron:
Mạng nơ-ron (Neural Network) là một phương pháp học máy đư c lợ ấy c m ả
Trang 33Trong quá trình huấn luy n, m ng nơệ ạ -ron dự đoán đ u ra dầ ựa trên các đ c ặ
mạng nơ-ron để giảm thiểu độ lỗi này Quá trình lan truyền ngược là quá trình tính
2.2 Một số thuật ngữ:
• Nơ-ron (Neuron):
• Hàm kích hoạt (Activation function):
bao gồm hàm sigmoid, hàm ReLU (Rectified Linear Unit) và hàm tanh
Trang 34• Hàm mất mát (Loss function):
cross-entropy, hàm tổn thất bình phương (mean squared error), và hàm tổn thất đa lớp (multiclass loss)
2.3 Một số kiến trúc mạng nơ-ron:
Trang 35• Mạng Nơ-ron Tạo Sinh (Generative Adversarial Network – GAN):
2.4 Xây dựng m ng nơạ-ron:
2.4.1. Thiết kế Kiến trúc Mạng:
2.4.2 Lựa ch n Hàm Kích Hoọạt:
Các hàm kích hoạt phổ biến bao gồm sigmoid, tanh, ReLU (Rectified Linear Unit), và softmax
2.4.3 Chọn hàm mất (loss function):
2.4.4. Huấn luy n Mệạng:
hóa như gradient descent
Trang 362.4.5 Đánh giá và Điều chỉnh:
2.5 Khắc phục tình trạng quá kh p (overfitting)ớ:
đổi mô hình đơn giản hơn như FNN, RNN,v.v
Trang 37• Sử dụng kỹ thuật chính quy hóa (regulation): Regularization (Chính quy
2.6 Ưu điểm mạng nơ-ron:
hiệu suất
2.7 Hạn chế mạng nơ-ron:
hội tụ
Trang 38• Dễ bị quá kh p (oớverfitting): Overfitting xảy ra khi mô hình học quá
2.8 Ứng d ng m ng nơụạ-ron:
trong ảnh
Trang 393 Một số phương pháp khác:
3.1 Phân lớp với k phầ ử gần tn nhất (K-Nearest Neighbor):
Hình 7: Ví dụ phân lớp k-NN
Phân lớp với k phần tử gần nhất (K-Nearest Neighbor) là m t thu t toán phân ộ ậ
tính là:
Công thức Euclidean: X∑ (𝑥"− 𝑦")
Trang 40
• Ưu điểm của k-NN:
nhãn
3.2 Tiếp c n theo th ng kê (Naive Bayes)ậố:
Hình 8: Phân loại Naive Bayes
Trang 41Thuật toán Naive Bayes sử dụng đ nh lý Bayes đị ể tính toán xác su t cấ ủa một
Trong đó:
• Ưu điểm của Naive Bayes:
mô hình phân loại khác
• Nhược điểm của Naive Bayes:
luyện, mô hình sẽ gán xác suất 0 cho lớp đó và không thể thực hiện
Trang 42o Naive Bayes có thể bị coi là một công cụ ước lượng kém, vì kết
3.3 Hồi quy Logistic (Logistic Regression):
Hình 9: Ví dụ hồi quy Logistic
Hồi quy Logistic là m t thu t toán hộ ậ ọc máy nhị phân (có th đượể c mở rộng
quy Logistic là sử dụng một hàm logistic (sigmoid) để ước lượng xác suất của một
Trang 43Nếu v phương trình hẽ ồi quy logistic này thì sẽ có một đường cong hình chữ S như hình dưới đây:
Biểu đ hàm Logistic:ồ Hồi quy Logistic sử dụng một hàm số gọi là hàm
Huấn luy n mô hình: ệ Trong quá trình huấn luy n, mô hình Hồi quy Logistic ệ
gradient descent
Phân loại: Sau khi huấn luy n, mô hình có thệ ể sử dụng đ phân loể ại dữ li u ệ
o Mô hình Hồi quy Logistic cho phép hiểu rõ được đóng góp của
Trang 44o Hồi quy Logistic có khả năng xử lý các đặc trưng phi tuyến, không
3.4 Máy vector hỗ ợ tr(Support Vector Machine - SVM):
Hình 10: Ví dụ mô hình SVM
Support Vector Machine là m t thu t toán hộ ậ ọc máy nhị phân (có thể được mở
phân loại chính xác
Trang 45• Cách hoạt động c a SVM:ủ
Xác định biên phân chia: SVM cố gắng xác đ nh mị ột biên phân chia t i ưu ố
Chọn hàm t i ưu: SVM sử dụố ng một hàm t i ưu (objective function) đố ể tìm
Phân loại và h i quy:ồ Sau khi xác định biên phân chia tối ưu, SVM có thể
biên phân chia
liệu, cho phép phân loại chính xác SVMs cũng hiệu quả trong việc
tạp của mô hình
vào không gian đặc trưng cao hơn, giúp phân loại dữ liệu phi tuyến
• Nhược điểm của SVM:
Trang 46CHƯƠNG IV:
PHÂN LỚP DỮ ỆU VỚLII PYTHON VÀ RAPIDMINER
phương pháp cây quyết định
1 Đặt vấn đề:
đại số hóa, việc dự đoán lòng trung thành của khách hàng (churn prediction) không
của nhiều công ty
khách hàng Trong bài báo cáo này, chúng ta sẽ sử dụng phương pháp cây quyết
thành của khách hàng
Trang 472 Giới thiệu bài toán:
bản ghi
nhân và phân loại khách hàng theo tên
hàng nam và nữ
Trang 48• Age: Tuổi tác của khách hàng là một yếu t quan tr ng trong churn ố ọ
trung thành cao hơn
chuyển đổi
hàng theo mức thu nhập
(1) hay không (0)
nguy cơ churning
Trang 493 Phân lớp dữ liệu với Python:
Matplotlib, Seaborn và Graphviz là ba công cụ mạnh mẽ để trực quan hóa dữ
3.1 Hướng d n cài đẫặt:
a Jupyter Notebook:
Linux) hoặc qua phần mềm Anaconda
Trang 50Cách 1: Dùng ứng d ng dòng l nh (Command line)ụệ
Hình 11: Trang download của Python
Hình 12: Cửa sổ Command Line Trái: Command Prompt Phải: Terminal) (
Trang 51Để cài đặt Jupiter Notebook gõ câu lệnh:, pip install notebook
jupyter notebook
Cách 2: Dùng ph n mầềm Anaconda:
Anaconda là m t nộ ền t ng phát tri n và qu n lý môi trư ng làm viả ể ả ờ ệc trong
Hình 13: Trang download của Anaconda
Trang 52Sau khi cài đặt Anaconda, mở cửa sổ ứng d ng ụ Anaconda Navigator, nhấn
cửa sổ Anaconda Navigator
Hình 14: Giao diện Anaconda Navigator
Python Package Index (PyPI) hoặc các nguồn khác
Ví dụ: trong bài toán này, để cài đặt scikit-learn (sklearn), gõ câu lệnh: pip install scikit-learn
Trang 53Ngoài ra, có những thư vi n sệ ẽ cần phải có thư viện phụ thuộc (dependancy)
Ví dụ: Để cài đặt Graphviz cho môi trường conda hi n tệ ại, gõ câu lệnh:conda install python-graphviz
3.2 Lập trình Python trên Jupyter Notebook:
Hình 15: Giao diện trình duy Jupyter Notebookệt
à Python 3 (ipykernel)
Trang 54Hình 16: Giao diện chính Jupyter Notebook
Trang 55
Bước thứ hai, chúng ta sẽ nhập b ng dả ữ ệu li thô mà đã được chuẩn bị sẵn vào trong chương trình của mình