Khám phá bộ dữ liệu Titanic: Phân tích các yếu tố quyết định khả năng sống sót với Python
Bài viết này sẽ hướng dẫn bạn thực hiện Phân tích Dữ liệu Khám phá (EDA) trên bộ dữ liệu kinh điển Titanic bằng cách sử dụng các thư viện Python như Pandas, Matplotlib và Seaborn. Chúng ta sẽ cùng nhau làm rõ cách các yếu tố như giới tính, tầng lớp xã hội và độ tuổi đã ảnh hưởng đến cơ hội sống sót của hành khách trong thảm họa lịch sử này.

Khám phá bộ dữ liệu Titanic: Phân tích các yếu tố quyết định khả năng sống sót với Python
Thảm họa tàu Titanic là một trong những sự kiện lịch sử bi tráng nhất, để lại nhiều bài học quý giá về sinh tồn trong thảm họa. Ngay cả sau một thế kỷ, bộ dữ liệu về hành khách trên con tàu "không thể chìm" này vẫn là nguồn tài nguyên vô giá cho các nhà khoa học dữ liệu.
Bộ dữ liệu Titanic được coi là bài tập nhập môn kinh điển trong thế giới Khoa học dữ liệu (Data Science). Nó không chỉ cung cấp các mẫu số liệu thú vị để phân tích mà còn kết hợp hoàn hảo giữa bối cảnh lịch sử và việc ra quyết định của con người trong điều kiện khẩn cấp. Trong bài viết này, chúng ta sẽ sử dụng Python cùng các thư viện mạnh mẽ như Pandas, Matplotlib và Seaborn để khám phá sâu hơn về những yếu tố đã quyết định sự sống còn của hành khách.
Tải và chuẩn bị dữ liệu
Để bắt đầu, chúng ta cần tải bộ dữ liệu. Pandas là thư viện Python tiêu chuẩn cho việc thao tác và phân tích dữ liệu. Bạn có thể cài đặt và nhập thư viện này như sau:
import pandas as pd
url = "https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv"
df = pd.read_csv(url)
Sau khi tải dữ liệu vào biến df, chúng ta có thể xem trước 5 dòng đầu tiên bằng hàm head() để hiểu cấu trúc của dữ liệu.
Dữ liệu mẫu Titanic
Bộ dữ liệu bao gồm các thuộc tính quan trọng như:
- PassengerId: ID định danh hành khách.
- Survived: Biến mục tiêu (0 = Không sống sót, 1 = Sống sót).
- Pclass: Hạng ghế (1, 2, 3).
- Sex: Giới tính.
- Age: Độ tuổi.
- Fare: Giá vé.
Thiết lập môi trường trực quan hóa
Để trực quan hóa các mẫu số liệu, chúng ta sẽ sử dụng Matplotlib và Seaborn. Seaborn được xây dựng trên nền tảng Matplotlib, cung cấp các giao diện trực quan hơn và các biểu đồ thống kê đẹp mắt.
import seaborn as sns
import matplotlib.pyplot as plt
Tổng quan về dữ liệu
Trước khi đi sâu vào phân tích chi tiết, hàm describe() giúp chúng ta có cái nhìn tổng quan về các chỉ số thống kê của bộ dữ liệu.
Thống kê tổng quan
Từ bảng thống kê, chúng ta có thể rút ra một số thông tin chính:
- Tổng số hành khách trong mẫu là 891 người.
- Tỷ lệ sống sót trung bình là khoảng 38%.
- Độ tuổi trung bình của hành khách là khoảng 29.6 tuổi.
- Có sự chênh lệch lớn về giá vé, phản ánh sự bất bình đẳng kinh tế rõ rệt trên tàu.
Phân tích khả năng sống sót
Hãy cùng xem xét các yếu tố cụ thể ảnh hưởng đến việc một hành khách có sống sót hay không.
Theo giới tính
Một trong những giả thuyết phổ biến là phụ nữ và trẻ em được ưu tiên cứu hộ. Dữ liệu đã chứng minh điều này một cách rõ ràng.
Biểu đồ cho thấy tỷ lệ sống sót của nam giới chỉ khoảng 18%, trong khi tỷ lệ này ở phụ nữ lên tới 74%. Sự chênh lệch này cho thấy quy tắc "phụ nữ và trẻ em trước" đã được áp dụng khá nghiêm ngặt trong quá trình sơ tán.
Theo hạng ghế (Pclass)
Vị trí xã hội và hạng ghế cũng đóng vai trò quan trọng.
Kết quả phân tích cho thấy:
- Hạng 1: Khoảng 62% sống sót.
- Hạng 2: Khoảng 47% sống sót.
- Hạng 3: Chỉ khoảng 24% sống sót.
Rõ ràng, hành khách ở hạng 1, những người trả tiền cho sự xa xỉ, có cơ hội sống sót cao hơn đáng kể so với hành khách ở hạng 3.
Theo độ tuổi
Độ tuổi cũng là một yếu tố then chốt. Biểu đồ phân phối độ tuổi cho thấy trẻ em dưới 10 tuổi có tỷ lệ sống sót cao hơn so với các nhóm tuổi khác. Ngược lại, nhóm thanh niên trong độ tuổi 20-30 chiếm tỷ lệ tử vong cao nhất.
Phân tích theo độ tuổi và các yếu tố kết hợp
Kết hợp các yếu tố
Để tìm ra nhóm có khả năng sống sót cao nhất, chúng ta có thể kết hợp nhiều yếu tố lại. Ví dụ, những hành khách nữ, đi hạng 1, hoặc là trẻ em thường có cơ hội sống sót vượt trội so với phần còn lại.
Việc phân tích đa chiều này giúp chúng ta hiểu rõ hơn về sự phức tạp của thảm họa và cách các yếu tố xã hội giao thoa trong việc quyết định số phận con người.
Kết luận
Bài viết này đã hướng dẫn qua quy trình Phân tích Dữ liệu Khám phá (EDA) cơ bản trên bộ dữ liệu Titanic bằng Python. Thông qua Pandas, Matplotlib và Seaborn, chúng ta đã chuyển đổi những con số khô khan thành những câu chuyện có ý nghĩa về lịch sử và hành vi con người.
Những hiểu biết này không chỉ giúp củng cố kỹ năng phân tích dữ liệu mà còn tạo nền tảng vững chắc để xây dựng các mô hình Học máy (Machine Learning) nhằm dự đoán khả năng sống sót trong các nghiên cứu nâng cao hơn.
Bài viết liên quan

Phần mềm
Plugin Checkmarx Jenkins bị xâm phạm trong cuộc tấn công chuỗi cung ứng
11 tháng 5, 2026

Công nghệ
Substrate (YC S24) tuyển dụng Technical Success Manager cho nền tảng AI chuyên xử lý thanh toán y tế
13 tháng 5, 2026

Phần mềm
Bun công bố hướng dẫn chuyển đổi sang Rust, nhưng gọi dự án viết lại là "chưa chín muồi"
05 tháng 5, 2026
