Professional Documents
Culture Documents
Chương 3
Chương 3
NEIGHBORS
3.1 Tệp dữ liệu, môi trường và phần cứng
Tệp dữ liệu:
Bộ dữ liệu “Airline Passenger Satisfaction” [5] được lấy trên Kaggle là một cuộc
khảo sát về sự hài lòng của hành khách đi máy bay, gồm có 129880 hàng và 24 cột.
Mỗi dòng tương ứng với một khách hàng và mỗi cột tương ứng với một đặc trưng
cụ thể khác nhau như là “Giới tính”, “Loại khách hàng”, “Độ tuổi”,...
Môi trường:
Project được chạy trên phiên bản Python 3.11.8.
File code dưới dạng Notebook (.ipynb)
Code trên Visual Studio Code phiên bản 1.85
3.2 Đọc dữ liệu
Để đọc dữ liệu từ tệp, trước tiên chúng cần nhập các thư viện cần thiết cho việc
phân tích dự án như: numpy, matplotlib, pandas, seaborn, sklearn, imblearn.
Với lệnh “ warnings.filterwarnings( “ignore”) sẽ loại bỏ tất cả các thông báo cảnh
báo, không hiển thị chúng ra console để code trong gọn gàng hơn.
Sau khi import các thư viện cần thiết, tiến hành đọc file dữ liệu và xem qua 5 hàng
đầu tiên của tệp dữ liệu
Hình ảnh xem qua 5 hàng đầu tiên của tệp dữ liệu
Xem qua 5 hàng cuối của dữ liệu:
Tính toán và hiển thị tỷ lệ phần trăm của giá trị thiếu trong tập dữ liệu giúp đánh giá
mức độ thiếu sót dữ liệu trong tập dữ liệu từ đó đưa ra các quyết định về việc xử lý
dữ liệu.
Vì tỷ lệ giá trị bị thiếu thấp (0.3%) nên chúng có thể loại bỏ các hàng chứa giá trị
bị thiếu mà không gây ảnh hưởng đáng kể đến dữ liệu.
Ở tập dữ liệu trên chúng cần xử lý 2 loại giá trị là các giá trị số liệu và giá trị phân
loại vậy nên chúng sẽ tách da frame thành 2 cột là cột số liệu (numerical) và cột
danh mục (categorical)
Chọn cột có dữ liệu phân loại (categorical):
Sử dụng phương thức select_dtypes(include=['object']) để chọn các cột có dữ liệu
thuộc loại 'object', tức là dữ liệu phân loại, chuyển đổi kết quả thành danh sách các
cột bằng list()
Chọn cột có dữ liệu số liệu (numerical):
Sử dụng phương thức select_dtypes(include=['float', 'int']) để chọn các cột có dữ
liệu số liệu, bao gồm cả số nguyên và số thực, chuyển đổi kết quả thành danh sách
các cột bằng list()
Đếm số lượng cột phân loại và số liệu:
Sử dụng phương thức select_dtypes(include=['object']) để chọn các cột và sử dụng
hàm len() để đếm số lượng cột.
Tiến hành phân tích Numerical columns
Xem qua mô tả các giá trị của các cột số liệu
Nguồn: Tác giả tự tổng hợp
Tạo ra một bảng thống kê tóm tắt về các đặc điểm thống kê của các cột numericals.
Bằng cách này, chúng có thể hiểu được phân phối, giá trị trung bình, độ lệch chuẩn
và các thông tin thống kê khác của các biến số trong tập dữ liệu. Điều này giúp có
cái nhìn tổng quan về tính chất của dữ liệu số và có thể tiếp tục phân tích chi tiết
hơn nếu cần thiết.
Hiển thị các giá trị duy nhất của từng cột phân loại trong Da Frame. Điều này giúp
hiểu được phạm vi và đa dạng của dữ liệu phân loại, cũng như kiểm tra tính chính
xác của dữ liệu.
Mã hóa các biến phân loại trong Da Frame "df" bằng phương pháp one-hot
encoding. Cụ thể, các cột "Gender", "Customer Type", "Type of Travel", và "Class"
sẽ được mã hóa thành các biến giả (dummy variables).
Chuyển đổi cột "Satisfaction" trong Da Frame "df_encoded" thành một biến nhị
phân. Cụ thể, các giá trị trong cột này sẽ được chuyển đổi thành 1 nếu hài lòng
('Satisfied') và 0 nếu trung lập hoặc không hài lòng ('Neutral' hoặc 'Dissatisfied').
’Sắp
xếp lại các cột trong Da Frame "df_encoded" theo thứ tự cụ thể đã được chỉ định.
Điều này có thể giúp trong việc quản lý và trực quan hóa dữ liệu một cách dễ dàng
hơn.
Hiển thị 3 hàng đầu tiên của Da Frame "df_encoded" và kiểm tra dữ liệu
Phân tích biểu đồ tròn
Tiến hành vẽ biểu đồ phân phối của "Satisfaction" trong Da Frame. Biểu đồ này sẽ
cho biết phân phối của các mức độ hài lòng trong tập dữ liệu. Từ kết quả đưa ra cho
thấy phân phối hướng tới Neutral or Dissatisfied (56.6%). Điều này cho thấy tập dữ
liệu này có độ mất cân bằng nhẹ.
Phân tích bản đồ nhiệt tương quan
Sau khi phân tích Correlation Heatmap (các tính năng đã được mã hóa), nhận
thấy Departure Delay và Arrival Delay có mức tương quan cao với nhau. Mức
tương quan 0.97 thể hiện một mối tương quan tích cực mạnh, có nghĩa là khi độ trễ
xuất phát tăng, có xu hướng rất mạnh mẽ cho độ trễ đến cũng tăng theo. Nói cách
khác, các chuyến bay gặp phải độ trễ xuất phát lâu hơn có khả năng đến muộn hơn
so với những chuyến bay gặp độ trễ xuất phát ít hơn.
Hệ số tương quan chỉ số 0.01 và -0.01 giữa gender và satisfaction, cho thấy không
có mối quan hệ gần nào giữa gender và satisfaction. Điều này có nghĩa là giới tính
không phải là một yếu tố dự đoán mạnh mẽ về sự hài lòng của khách hàng trong tập
dữ liệu này. Hay có thể thấy Departure and Arrival Time Convenience có hệ số -
0.05, do đó đây không phải là một yếu tố dự đoán mạnh mẽ về sự hài lòng của
khách hàng trong tập dữ liệu này. Hệ số tương quan giữa Ease of Online Booking và
Satisfaction là 0.17 cũng cho thấy đây là một mối quan hệ yếu giữa, và cũng không
phải là một dự đoán mạnh mẽ về sự hài lòng của khách hàng.
Hệ số tương quan của khách hàng lần đầu tiên (Customer Type_First-time) là
-0.19 với sự hài lòng và 0.19 với khách hàng quay lại (Customer Type_Returning),
ý nghĩa rằng khách hàng đã bay với hãng hàng không trước đây có xu hướng cảm
thấy hài lòng hơn với trải nghiệm của họ so với những người đang bay với hãng
hàng không lần đầu tiên. Minh họa cụ thể như hình dưới đây, khách hàng quay lại
chiếm ưu thế hơn, tuy nhiên trạng thái Neutral or Dissatisfied vẫn nhiều hơn so với
Satisfied.
Hình : Biểu đồ so sánh giữa khách hàng quay lại và khách hàng lần đầu
Hệ số tương quan 0.45 cho loại hình du lịch "Công việc" (Type of
Travel_Business) và -0.45 cho loại hình du lịch "Cá nhân" (Type of
Travel_Personal) đều là những mối quan hệ tương quan trung bình, cho thấy khách
hàng đi công việc thường có xu hướng cảm thấy hài lòng hơn với trải nghiệm của
họ so với những người đi du lịch cá nhân. Minh họa cụ thể hơn như hình dưới đây,
hành khách thuộc Type of Travel_Business có tỉ lệ khách hàng hài lòng nhiều hơn
so với Neutral or Dissatisfied, tuy nhiên khách hàng thuộc Type of Travel_Personal
lại có tỉ lệ Neutral or Dissatisfied cao hơn rất nhiều.
Hình : Biểu đồ so sánh loại hình du lịch cá nhân và công việc
Mối liên hệ giữa “Departure Delay” và “Arrival Delay” gần như là một đường thẳng
tuyến tính. Nếu chuyến bay của khách hàng của hãng hàng không bị chậm một
khoảng thời gian nhất định lúc khởi hành thì chuyến bay đó sẽ bị chậm một khoảng
thời gian tương tự lúc hạ cánh (với điều kiện là máy bay không tăng tốc trong
chuyến bay để bù lại thời gian đã mất).
Tạo ra biểu đồ cột thể hiện số lượng cá nhân hài lòng và không hài lòng trong
mỗi nhóm tuổi và nhóm người lớn khác nhau.
Biểu đồ 1 (Theo Nhóm Tuổi): Đầu tiên, chúng chia dữ liệu thành các nhóm tuổi
(Child, Adolescent, Adult, Elderly) và tính toán số lượng cá nhân hài lòng và không
hài lòng trong mỗi nhóm tuổi. Biểu đồ này giúp chúng nhận biết sự phân phối của
sự hài lòng theo độ tuổi của hành khách.
Biểu đồ 2 (Theo Nhóm Người Lớn (Adult)): Tiếp theo, chúng ta chia dữ liệu thành
các nhóm người lớn khác nhau (20s, 30s, 40s, 50s) và tính toán số lượng cá nhân hài
lòng và không hài lòng trong mỗi nhóm người lớn. Biểu đồ này giúp chúng ta nhận
biết mối quan hệ giữa độ tuổi và sự hài lòng của hành khách, đặc biệt là trong nhóm
người lớn.
Cả hai biểu đồ đều giúp chúng ta hiểu rõ hơn về phân phối và mối quan hệ giữa tuổi
tác và sự hài lòng của hành khách, từ đó giúp điều chỉnh các chiến lược quản lý và
cải thiện trải nghiệm của hành khách.
Tổng quan:
Tất cả các nhóm tuổi hầu hết đều trung lập hoặc không hài lòng.
Hầu hết hành khách là người lớn ở độ tuổi 20-60, chiếm ưu thế ở độ tuổi 40.
Ở hạng hành khách người lớn, hành khách càng lớn tuổi thì tổng số hành khách
trung lập hoặc không hài lòng càng giảm.
Hành khách hài lòng nhất là hành khách ở độ tuổi 40
Tạo biểu đồ cột thể hiện số lượng cá nhân hài lòng và không hài lòng trong
từng nhóm khoảng cách bay.
Hành khách của hãng hàng không này chủ yếu là những người thực hiện các chuyến
bay trung bình, với khoảng cách từ 1,500 đến 4,100 km. Điều này có thể ám chỉ
rằng hãng hàng không này có một mạng lưới đường bay tốt trong phạm vi trung
bình, phục vụ nhu cầu di chuyển của đa số hành khách.
Phần lớn hành khách đều có cảm xúc trung lập hoặc không hài lòng. Tuy nhiên,
điều đáng chú ý là những hành khách thực hiện các chuyến bay dài hơn thường có
xu hướng hài lòng hơn với dịch vụ của hãng hàng không. Điều này có thể do các
dịch vụ và tiện ích được cung cấp trên các chuyến bay dài giúp làm giảm căng thẳng
và tăng sự thoải mái cho hành khách, từ đó tạo ra trải nghiệm tích cực hơn.
Biểu đồ cột thể hiện số lượng cá nhân hài lòng và không hài lòng trong từng
nhóm thời gian trễ xuất phát.
Trực quan hóa số lượng khách hàng hài lòng và không hài lòng dựa trên thời gian
chờ. Biểu đồ giúp hiểu rõ hơn về mối quan hệ giữa thời gian chờ và sự hài lòng của
khách hàng từ đó có thể đưa ra những quyết định hoặc cải thiện trong dịch vụ của
doanh nghiệp để nâng cao sự hài lòng của khách hàng.
Dựa trên bản đồ nhiệt tương quan, độ trễ khởi hành và độ trễ đến có mối tương quan
chặt chẽ với nhau nên khi độ trễ khởi hành tăng thì độ trễ đến cũng sẽ tăng. Như có
thể thấy trên biểu đồ, tổng số hành khách là như nhau cho mỗi lần khởi hành và đến
trễ.
Đa phần hãng hàng không gặp tình trạng chậm trễ dưới 15 phút.
Sự hài lòng của hành khách giảm khi thời gian trì hoãn tăng lên.
1. Hành khách có cảm xúc Neutral or Dissatisfied chiếm ưu thế trong tất cả các
danh mục.
2. Cả hai giới tính đều chủ yếu Neutral or Dissatisfied. Hệ số tương quan chỉ số 0.01
và -0.01 cho satisfaction. Điều này cho thấy không có mối quan hệ gần như nào
giữa gender và satisfaction. Điều này có nghĩa là giới tính không phải là một yếu tố
dự đoán mạnh mẽ về sự hài lòng của khách hàng trong tập dữ liệu này.
3. Khách hàng quay lại chiếm ưu thế trong các danh mục hài lòng nhưng hầu hết họ
đều ở trạng thái Neutral or Dissatisfied. Hệ số tương quan của khách hàng lần đầu
tiên là -0.19 với sự hài lòng và 0.19 với khách hàng quay lại cho thấy có một mối
quan hệ yếu giữa customer loyalty và satisfaction. Điều này có nghĩa là khách hàng
đã bay với hãng hàng không trước đây có xu hướng cảm thấy hài lòng hơn với trải
nghiệm của họ so với những người đang bay với hãng hàng không lần đầu tiên.
4. Hành khách có nhu cầu công việc thường hài lòng. Hệ số tương quan chỉ số mối
quan hệ tích cực trung bình cho nhu cầu kinh doanh và mối quan hệ tiêu cực trung
bình cho nhu cầu cá nhân. Điều này có nghĩa là khách hàng đi công việc có xu
hướng cảm thấy hài lòng hơn với trải nghiệm của họ so với những người đi du lịch
cá nhân.
5. Hành khách trong hạng ghế thương gia thường hài lòng hơn so với hạng ghế phổ
thông. Từ biểu đồ đếm và heatmap tương quan cho thấy khi hạng ghế của chuyến
bay di chuyển từ phổ thông đến các hạng cao hơn, có xu hướng hài lòng tăng lên.
Nói cách khác, hành khách đi trong các hạng cao hơn nói chung cảm thấy hài lòng
hơn so với những người đi trong hạng phổ thông.
6. Mặc dù hành khách thường hài lòng với Departure and Arrival Time
Convenience, nhưng tổng thể họ chủ yếu là Neutral or Dissatisfied. Hệ số tương
quan là -0.05, điều này có nghĩa là Departure and Arrival Time Convenience không
phải là một yếu tố dự đoán mạnh mẽ về sự hài lòng của khách hàng trong tập dữ
liệu này.
7. Hành khách chủ yếu là trung lập hoặc không hài lòng với sự thuận tiện của việc
đặt vé trực tuyến. Điều này có nghĩa là đối với hầu hết họ, việc đặt vé trực tuyến vẫn
phức tạp hoặc khó khăn. Một hệ số tương quan là 0.17 cho thấy một mối quan hệ
yếu giữa sự Thuận Tiện của Online Booking và Satisfaction, vì vậy nó không phải
là một dự đoán mạnh mẽ về sự hài lòng của khách hàng.
8. Hành khách chủ yếu là trung lập đến hài lòng với check-in service. Một hệ số
tương quan là 0.24 cho thấy một mối quan hệ tích cực yếu giữa hai biến số. Điều
này có nghĩa là khi sự hài lòng với check-in service, có một xu hướng nhỏ cho sự
hài lòng của hành khách nói chung cũng tăng.
9. Hành khách chủ yếu hài lòng với việc online boarding, nhưng những hành khách
trung lập hoặc không hài lòng với việc lên máy bay trực tuyến cũng cảm thấy trung
lập hoặc không hài lòng với dịch vụ hàng không tổng thể. Hệ số tương quan là 0.50
cho thấy mối quan hệ tích cực vừa phải. Điều này có nghĩa là khi sự hài lòng với
quy trình đặt vé trực tuyến tăng, có xu hướng sự hài lòng của hành khách tổng thể
cũng tăng.
10. Hành khách chủ yếu là trung lập đến hài lòng với Gate Location của hãng hàng
không. Từ heatmap, không có mối quan hệ nào với sự hài lòng tổng thể, vì vậy Gate
Location không phải là một yếu tố quan trọng đối với sự hài lòng của hành khách.
11. Hành khách hài lòng với On-board Service, Seat Comfort, Leg Room Service,
Cleanliness, Food & Drink, In-Flight Services, In-Flight Enter inment, and Baggage
Handling. Nhưng đối với hành khách không hài lòng với các dịch vụ này cũng có
khả năng không hài lòng với dịch vụ hàng không tổng thể. Heatmap tương quan cho
thấy mối quan hệ tích cực giữa sự hài lòng và các dịch vụ này, có nghĩa là khi các
dịch vụ này tăng, sự hài lòng của hành khách cũng tăng, đặc biệt là đối với In-Flight
Enter inment.
12. In-flight Wifi Service chủ yếu bị các hành khách cảm thấy trung lập hoặc không
hài lòng. Heatmap tương quan cho thấy mối quan hệ tích cực giữa sự hài lòng và
dịch vụ Wifi trên chuyến bay. Điều này có nghĩa là khi In-flight Wifi Service cải
thiện, có xu hướng có một sự tăng tương ứng trong sự hài lòng của hành khách với
hãng hàng không.
Cải thiện hiệu suất của mô hình phân loại KNN bằng cách sử dụng phép chuẩn hóa
dữ liệu. Đầu tiên, sử dụng phương pháp chuẩn hóa để đảm bảo rằng các đặc trưng
trong tập dữ liệu có cùng tỷ lệ và phân phối tương tự. Sau đó, nó huấn luyện một mô
hình phân loại KNN trên các đặc trưng đã được chuẩn hóa và tạo ra một báo cáo
phân loại dựa trên dữ liệu kiểm tra. Bằng cách này, giúp cải thiện hiệu suất của mô
hình KNN trên dữ liệu mới bằng cách chuẩn hóa đầu vào trước khi áp dụng mô
hình.
Kết luận
Bộ dữ liệu về mức độ hài lòng của hành khách hàng không bao gồm 129.880 hàng
và 23 cột. Tập dữ liệu hơi mất cân bằng và có các ngoại lệ ở một số tính năng. Mã
hóa một lần cho các tính năng và mã hóa nhãn cho biến mục tiêu để chuyển đổi các
cột không phải số thành số. Sau quá trình mã hóa, tập dữ liệu có 28 đặc trưng, tiến
hành chia tập dữ liệu thành 80% dữ liệu huấn luyện và 20% dữ liệu kiểm tra. Vì tập
dữ liệu là dữ liệu nhiều chiều, có các giá trị ngoại lệ và biến mục tiêu là nhị phân (1:
hài lòng, 0: trung lập hoặc không hài lòng), do đó trước khi thực hiện chuẩn hóa dữ
liệu, hiệu suất KNN không thực sự tốt, Sau đó, tiến hành chia tỷ lệ tiêu chuẩn để cải
thiện hiệu suất KNN đã thấy sự tiến triển, KNN cần chuẩn hóa dữ liệu để xử lý các
ngoại lệ trước khi đạt được điểm đánh giá tốt nhất. Đó là do hoạt động của KNN rất
nhạy cảm với ngoại lệ và quy mô của các tính năng đầu vào. Đối với ba mô hình
này, tập dữ liệu hơi mất cân bằng không ảnh hưởng quá nhiều đến hiệu suất của
chúng.