Bài toán phânloại dự đoán sự sống còn của hành khách trên tàu Titanic là một bài toán quan trọngtrong lĩnh vực học máy và khai phá dữ liệu.. Mục tiêu của bài toán này là xây dựng mộtmô h
Trang 1BÁO CÁO KHAI PHÁ DỮ LIỆUĐề tài : Dự đoán khả năng sống sót trên tàu Titanic
Giảng viên hướng dẫn : Nhóm thực hiện :
Đà Nẵng, 12/2023
Trang 21.1 GIỚI THIỆU MODEL 4
1.2.GIỚI THIỆU NGÔN NGỮ 5
1.3.GIỚI THIỆU CÔNG CỤ .6
1.4.GIỚI THIỆU THƯ VIỆN 7
CHƯƠNG 2: PHƯƠNG PHÁP ĐÁNH GIÁ MODEL 9
2.1 CHIA BỘ DỮ LIỆU HUẤN LUYỆN VÀ KIỂM THỬ 9
2.2 ACCURACY 9
2.3 CROSS-VALIDATION SCORE 9
CHƯƠNG 3: KẾT QUẢ CỦA MODEL 10
Trang 3MỞ ĐẦU
Khai phá dữ liệu là một quá trình sử dụng biến những dữ liệu thô thành thông tinhữu ích Bằng cách dùng phần mềm để tìm mẫu hình (pattern) trong một dữ liệu lớn,các doanh nghiệp có thể hiểu rõ hơn về khách hàng của họ và phát triển được nhữngchiến lược marketing hiệu quả, giảm chi phí, giúp tăng doanh thu
Bài toán mà chúng ta đang đối diện là một bài toán dự đoán sống hoặc chết trêntàu Titanic Bài toán này là một trong những bài toán quan trọng trong lĩnh vực phânloại trong khoa học dữ liệu và máy học Chúng ta đang cố gắng xây dựng một môhình dự đoán khả năng sống sót của hành khách dựa trên các thông tin nhưPclass(hạng ghế) , giới tính, số lượng anh chị em hoặc vợ chồng đi cùng (SibSp), sốlượng bố mẹ hoặc con cái đi cùng (Parch), giá vé(Fare), và nơi lên tàu (Embarked) Mục tiêu của chúng ta là phân loại cấc hành khách thành hai nhóm :sống(Survived) hoặc chết (Not Survived) dựa trên các thông tin này Việc thành côngtrong bài toán này không chỉ mang lại sựu hiểu biết sau sắc về nguyên nhân ảnh hưởngđến sống sót trên tàu Titanic mà còn có thể cung cấp thông tin hữu ích cho việc xâydựng các mô hình dựu đoán sự sống sót trong các tình huống tương tự Bài toán phânloại dự đoán sự sống còn của hành khách trên tàu Titanic là một bài toán quan trọngtrong lĩnh vực học máy và khai phá dữ liệu Mục tiêu của bài toán này là xây dựng mộtmô hình phân loại có khả năng dự đoán liệu một hành khách trên tàu Titanic có sốngsót hay không Quá trình đánh giá mô hình sẽ giúp chúng ta hiểu rõ hiệu suất của môhình và đưa ra đánh giá khách quan về khả năng dự đoán Cuối cùng, mô hình đã huấnluyện sẽ được sử dụng để dự đoán sự sống còn của các hành khách mới, mà chưa biếttrước kết quả Bài toán phân loại dự đoán sự sống còn trên tàu Titanic không chỉ mangtính chất thực tế và lịch sử, mà còn mang lại cái nhìn sâu sắc về quá trình phân loại vàdự đoán trong lĩnh vực học máy Trong báo cáo này, chúng ta sẽ đi sâu vào từng bướccủa quá trình giải quyết bài toán
Chương 1: Giới thiệu cho được model, những côngcụ, ngôn ngữ các bạn dùng trong bài tập lớn.
3
Trang 41.1Giới thiệu model
1.Thuật toán K-Nearest Neighbors (KNN) là gì?
K-Nearest Neighbors (KNN ) là một thuật toán máy học giám sát đơn giản và phổbiến được sử dụng cho cả phân loại và dự đoán giá trị Nó thuộc vào loại thuật toán"lazy learning," nghĩa là nó không tạo ra một mô hình dự đoán trước, mà thay vào đógiữ toàn bộ dữ liệu đào tạo trong bộ nhớ Khi cần dự đoán cho một điểm dữ liệu mới,thuật toán sẽ tìm k các điểm gần nhất trong không gian đặc trưng và dự đoán dựa trênđa số nhãn của các điểm này Đơn giản, dễ triển khai, không cần huấn luyện trước, vàcó thể áp dụng cho nhiều loại dữ liệu Và độ phức tạp tính toán tăng khi kích thước dữliệu tăng, độ chính xác giảm khi số chiều tăng, và cần chú ý đến việc chọn giá trị K
2 Thuật toán Logistic Regression?
Logistic Regression là một thuật toán học máy được sử dụng chủ yếu để thực hiệncác tác vụ phân loại Mặc dù tên là "regression," nhưng Logistic Regression thực sựđược sử dụng cho bài toán phân loại, không phải là hồi quy Đặc biệt, nó thường đượcsử dụng để dự đoán xác suất của một sự kiện thuộc một trong hai lớp Dễ hiểu, dễ triểnkhai, yêu cầu ít điều kiện chuẩn bị dữ liệu
Logistic Regression thích hợp cho bài toán phân loại nhị phân, trong đó dự đoánthuộc một trong hai lớp.Logistic Regression thường được áp dụng trong các lĩnh vựcnhư y học để dự đoán xác suất một bệnh nhân có một bệnh lý hay không, trong tiếp thịđể dự đoán xác suất một khách hàng sẽ mua một sản phẩm, và nhiều ứng dụng khác
3 Thuật toán Random Forest?
Random Forest là một mô hình máy học thuộc họ ensemble learning, và nó đượcxây dựng dựa trên cấu trúc cây quyết định (Decision Tree) Ensemble learning kết hợpdự đoán từ nhiều mô hình để tạo ra một mô hình tổng hợp có hiệu suất cao hơn và khả
4
Trang 5năng tổng quát hóa tốt hơn Random Forest, được giới thiệu bởi Leo Breiman vào năm2001, là một biến thể quan trọng của Decision Tree Khả năng chống overfitting, độchính xác cao, khả năng làm việc với dữ liệu lớn Còn cần nhiều tài nguyên tính toán,khó giải thích so với một cây quyết định đơn.
Random Forest có thể được sử dụng cho cả các nhiệm vụ phân loại và hồi quy Nóthường được ưa chuộng trong nhiều lĩnh vực như y học, tài chính, quảng cáo trựctuyến, và nhiều ứng dụng khác.Random Forest cung cấp một cách tiếp cận để đánh giámức độ quan trọng của từng đặc trưng trong quá trình dự đoán
4 Decision Tree (Cây Quyết Định)?
Decision Tree (Cây Quyết Định) là một thuật toán máy học giám sát được sử dụngchủ yếu cho các nhiệm vụ phân loại và hồi quy Mục tiêu của thuật toán này là phânchia dữ liệu thành các nhóm nhỏ hơn dựa trên các quy tắc quyết định dựa trên giá trịcủa các đặc trưng Cấu trúc của cây giống như cây ngược với các nhánh và lá Dễ hiểu,có thể hiển thị đồ thị cây để giải thích quyết định, có thể xử lý cả dữ liệu phân loại vàhồi quy.Dễ bị overfitting nếu cây quá sâu và quá phức tạp Decision Tree được sửdụng rộng rãi trong nhiều lĩnh vực như y học, tài chính, quảng cáo, và nhiều lĩnh vựckhác
1.2 Giới thiệu các ngôn ngữ
Python là ngôn ngữ lập trình máy tính bậc cao thường được sử dụng để xây dựngtrang web và phần mềm, tự động hóa các tác vụ và tiến hành phân tích dữ liệu Cáctính năng của Python bao gồm:
Cú pháp đơn giản: Cú pháp Python rất đơn giản và dễ hiểu, giúp người mới họcdễ dàng tiếp cận và phát triển nhanh chóng
Hỗ trợ đa năng: Python hỗ trợ nhiều phong cách lập trình, bao gồm lập trìnhhướng đối tượng, lập trình hàm và lập trình thủ tục
5
Trang 6 Thư viện phong phú: Python đi kèm với một số thư viện phong phú và mạnhmẽ, giúp giải quyết nhanh chóng nhiều công việc phổ biến
Hỗ trợ cho khoa học dữ liệu: Python đã trở thành một ngôn ngữ phổ biến tronglĩnh vực khoa học dữ liệu và máy học Cung cấp các công cụ và thuật toán choviệc phân tích dữ liệu, học máy và xử lý tín hiệu
Các đặc điểm của Python: Python là một ngôn ngữ thông dịch: ngôn ngữ này chạy trực tiếp 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ữ linh hoạt: Các lập trình viên không cần phải khai báoloại biến khi viết mã bởi vì Python sẽ xác định chúng vào thời điểm chạy Python là một ngôn ngữ cấp cao: Python 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 Do đó, các lập trình viên không cần phải lo lắng vềnhững chức năng cơ bản của nó như kiến trúc và quản lý bộ nhớ
Python là một ngôn ngữ lập trình hướng đối tượng: Python coi mọi thứ đều làđố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
1.3 Giới thiệu công cụ
Google Colaboratory, còn được gọi là Google Colab, là một nền tảng trực tuyếnmiễn phí hỗ trợ người dùng phát triển và chạy mã bằng Python Nền tảng này cung cấpmột môi trường để phân tích dữ liệu, nghiên cứu AI và Machine Learning
Ưu điểm: - Colab không yêu cầu cài đặt hay cấu hình đặc biệt, nó hoạt động trực
tiếp trên trình duyệt web và chỉ cần kết nối internet Miễn phí và dễ sử dụng
6
Trang 7- Thiết lập môi trường mạnh mẽ và sẵn sàng sử dụng, bao gồm GPU và TPU, giúp xử lý dữ liệu nhanh hơn Chia sẻ dễ dàng.
- Colab kết hợp tốt với các dịch vụ lưu trữ trực tuyến như Google Drivevà GitHub, giúp dễ dàng chia sẻ và làm việc với các notebook của mình.Hạn chế:
Thời gian chạy giới hạn Quyền truy cập tập tin hạn chế Chia sẻ và cộng tác hạn chế Không ổn định và không có hổ trợ Giới hạn tài nguyên máy tính
1.4 Giới thiệu thư viện
1.4.1 Pandas là gì?
Pandas (vi t t t t Panel Data - b ng d li u) là th vi n mã ngu n mế ắ ừ ả ữ ệ ư ệ ồ ởph c v cho vi c phân tích và x lý d li u trong Python, đụ ụ ệ ử ữ ệ ược phát tri n b iể ởWes McKinney trong năm 2008 Th vi n này đư ệ ược thi t k đ làm vi c dế ế ể ệ ễdàng và tr c quan v i d li u có c u trúc (d ng b ng, đa chi u, ) và d li uự ớ ữ ệ ấ ạ ả ề ữ ệchu i th i gian Hi n nay, Pandas đỗ ờ ệ ượ ử ục s d ng r ng rãi trong c nghiên c uộ ả ứl n phát tri n các ng d ng v khoa h c d li u.ẫ ể ứ ụ ề ọ ữ ệ
Tính năng chính n m trong th vi n Pandas:ằ ư ệ– Giúp b n ghi/đ c d li u t nh ng ngu n tài nguyên khác Nói cáchạ ọ ữ ệ ừ ữ ồkhác, nó h tr l p trình viên ghi hay đ c d li u t các ngu n nh : CSV,ỗ ợ ậ ọ ữ ệ ừ ồ ưSQL, hay Parquet
– Làm s ch d li uạ ữ ệ– Truy v n d li uấ ữ ệ
7
Trang 8– G p và ghép d li uộ ữ ệ1.4.2 Numpy là gì?
NumPy (Numerical Python) là m t th vi n Python mã ngu n m độ ư ệ ồ ở ượ ửc sd ng trong h u h t các lĩnh v c khoa h c và kỹ thu t Đây là tiêu chu n chungụ ầ ế ự ọ ậ ẩđ làm vi c v i d li u s b ng Python và là tiêu chu n c t lõi c a h sinh tháiể ệ ớ ữ ệ ố ằ ẩ ố ủ ệPython và PyData NumPy API được s d ng r ng rãi trong Pandas, SciPy,ử ụ ộMatplotlib, scikit-learning, scikit-image và h u h t các gói Python khoa h c vàầ ế ọkhoa h c d li u khác.ọ ữ ệ
NumPy = multidimensional array + matrix data structures
Th vi n NumPy ch a các c u trúc d li u ma tr n và m ng đa chi u (b n sẽư ệ ứ ấ ữ ệ ậ ả ề ạtìm th y thêm thông tin v đi u này trong các ph n sau) NumPy có th đấ ề ề ầ ể ượ ửc sd ng đ th c hi n nhi uụ ể ự ệ ề phép toán khác nhau trên mảng Nó bổ sung các cấu trúcdữ liệu mạnh mẽ vào Python để đảm bảo tính toán hiệu quả với các mảng và ma trận,đồng thời nó cung cấp một thư viện khổng lồ các hàm toán học cấp cao hoạt động trêncác mảng và ma trận này
1.4.3 Seaborn và Matplotlib
Seaborn và Matplotlib là hai thư viện Python phổ biến được sử dụng để trực quanhóa dữ liệu Chúng giúp người phân tích dữ liệu và nhà nghiên cứu hiểu rõ hơn về dữliệu thông qua các biểu đồ và đồ thị Seaborn thường được ưa chuộng trong cộng đồngPython khi muốn tạo ra các biểu đồ có giao diện thẩm mỹ và mặc định
Chương 2:Phương Pháp Đánh Giá Model
2.1 Chia Bộ Dữ Liệu Huấn Luyện và Kiểm Thử:
8
Trang 9Khi chia dữ liệu, chúng ta sẽ sử dụng tập X_train và y_train để đào tạo mô hình vàtập X_test và y_test để kiểm thử mô hình Việc này giúp chúng ta đánh giá mô hìnhtrên dữ liệu không dùng để đào tạo, mô phỏng hiệu suất của nó trên dữ liệu mới.
2.2 Accuracy (Độ Chính Xác):
Accuracy là tỉ lệ phần trăm của số lượng dự đoán đúng trên tổng số lượng dự đoántrên tập kiểm thử Nó cho biết khả năng dự đoán chính xác của mô hình trên dữ liệukiểm thử
Accuracy được tính trên tập kiểm thử và thường được sử dụng như một độ đo sơbộ về hiệu suất của mô hình
2.3 Cross-Validation Score (Điểm Cross-Validation):
Cross-Validation Score là một phương pháp đánh giá hiệu suất của mô hình bằngcách chia dữ liệu thành các phần nhỏ (fold) và thực hiện đào tạo và kiểm thử trên từngfold Điểm Cross-Validation là trung bình của các điểm đánh giá trên các fold, giúpđánh giá hiệu suất của mô hình trên nhiều phần khác nhau của dữ liệu Cross-Validation giúp đối mặt với vấn đề overfitting và underfitting bằng cách đánh giá môhình trên nhiều tập dữ liệu kiểm thử
===> Kết Luận:
Chia bộ dữ liệu thành tập huấn luyện và tập kiểm thử là bước quan trọng để đảmbảo mô hình có khả năng tổng quát hóa và không quá phụ thuộc vào dữ liệu đào tạo.Accuracy và Cross-Validation Score cung cấp thông tin chi tiết về khả năng dự đoánvà hiệu suất tổng quát hóa của mô hình trên cả hai tập dữ liệu này
Chương 3 : Kết Quả Của Model
3.1 So sánh kết quả và xác định mô hình tốt nhất:
Dựa trên các kết quả thử nghiệm, chúng ta so sánh hiệu suất của các mô hình khácnhau và xác định mô hình tốt nhất Các mô hình được so sánh bao gồm:
9
Trang 103.1.1 K-Nearest Neighbors (KNN):
Accuracy: 78.03% CV Score: 77.56%
3.1.2 Logistic Regression:
Accuracy: 80.72% CV Score: 78.34%
3.1.3 Decision Tree Classifier:
Accuracy: 73.99% CV Score: 76.88%
3.1.4 Random Forest Classifier:
Accuracy: 80.72% CV Score: 81.15% Dựa trên kết quả trên, mô hình Random Forest Classifier có vẻ hiệu quả nhất với độ chính xác cao và điểm cross-validation ổn định Do đó, chúng ta chọn mô hình này làm mô hình tốt nhất cho bài toán dự đoán sống sót trên tàu Titanic Chúng ta sẽ sử dụng mô hình này để dự đoán trên tập dữ liệu kiểm thử đầy đủ để đánh giá kết quả cuối cùng
10
Trang 12Với đề tài Dự đoán tỉ lệ sống sót trên tàu Titanic sử dụng các thuật toán K-NearestNeighbors (KNN), Cây Quyết Định, Random Forest, và Logistic Regression là mộtcông trình đáng chú ý với nhiều điểm mạnh và cảm nhận tích cực Mỗi thuật toán đềumang lại độ chính xác và hiệu suất riêng, đồng thời đối mặt với những thách thức vàgiới hạn riêng.
KNN, với tính đơn giản và dễ triển khai, là một lựa chọn hợp lý đối với dữ liệu cótính chất gần giống nhau, mặc dù cần lưu ý đến nhược điểm liên quan đến nhiễu vàoutliers Cây Quyết Định, mặc dù có thể gặp vấn đề với overfitting, nhưng mang lại sựdiễn giải tốt và khả năng xử lý cả dữ liệu phân loại và số
Random Forest nổi bật với khả năng giảm overfitting và độ chính xác cao, tuynhiên, đòi hỏi sự quản lý kỹ lưỡng để tránh việc mô hình trở nên quá phức tạp.Logistic Regression, mặc dù đơn giản, lại là một công cụ mạnh mẽ, đặc biệt là khi mốiquan hệ giữa các biến là tuyến tính
Sự kết hợp linh hoạt của các thuật toán này có vẻ là một chiến lược sáng tạo và hiệuquả Qua đánh giá, ta thấy Random Forest thường mang lại kết quả tốt nhất, nhưngviệc sử dụng Logistic Regression cùng với nó hoặc kết hợp các mô hình có thể tối ưuhóa hiệu suất
Kết Luận
12
Trang 13D đoán s ng sót trên tàu Titanic không ch là m t bài toán quan tr ng trongự ố ỉ ộ ọlĩnh v c h c máy và khai phá d li u mà còn mang l i cái nhìn sâu s c v nguyênự ọ ữ ệ ạ ắ ềnhân nh hả ưởng đ n s s ng còn trong môi trế ự ố ường kh n c p Qua quá trình xâyẩ ấd ng và đánh giá mô hình Random Forest, chúng ta nh n th y s hi u qu trongự ậ ấ ự ệ ảvi c d đoán, đ ng th i c m nh n đệ ự ồ ờ ả ậ ược kh năng ch ng overfitting và đ chínhả ố ộxác cao c a mô hìnhủ
Trong bài t p ậ này, chúng ta đã xây d ng và đánh giá cácự mô hình máy h c đọ ểd đoán s ng sót trên tàu Titanic C th , chúng ta đã tri n khai các mô hình k-ự ố ụ ể ểnearest neighbors (KNN), decision tree classifier và random forest classifier
Sau quá trình hu n luy n và tinh ch nh siêu tham s , chúng taấ ệ ỉ ố đã đánh giáhi u su t c a m i mô hình R iệ ấ ủ ỗ ồ k t lu n ế ậ mô hình đáng chú ý là random forestclassifier đã đ t đạ ược k t qu t t nh t, v i đ chính xácế ả ố ấ ớ ộ là 80.72% và đi m CVểScore là 81.15%
Tài Liệu Tham Khảo
<1>https://machinelearningcoban.com/tabml_book/ch_data_processing/eda_titanic.html
<2> https://rpubs.com/nguyentam123/1034217<3> https://phamdinhkhanh.github.io/deepai-book/titanic.html
13