You are on page 1of 20

TRƯỜNG ĐẠI HỌC KINH TẾ TP.

HCM

KHOA CÔNG NGHỆ THÔNG TIN KINH DOANH

----------

BÁO CÁO CUỐI KỲ


Ứng dụng máy học vào phân nhóm và dự đoán
giá phòng cho thuê Airbnb tại Mỹ năm 2020

Môn học: Khoa học dữ liệu - 21D1INF50905914

Giảng viên: Ths. Nguyễn Mạnh Tuấn

Sinh viên thực hiện: Nguyễn Phương Linh - 31171021011

TP. Hồ Chí Minh 06/2021

1
DANH MỤC BIỂU ĐỒ

Biểu đồ 1 Dữ liệu Data theo giá và loại phòng ----------------------------- 11


Biểu đồ 2 Số lượng phòng cho thuê theo loại căn hộ ---------------------- 12
Biểu đồ 3 Số lượng phòng cho thuê theo thành phố ----------------------- 12
Biểu đồ 4 Tỷ lệ phân bố các loại phòng cho thuê theo khu vực ---------- 12
Biểu đồ 5 Minh họa Sihouette Plot ------------------------------------------ 19
Biểu đồ 6 Minh họa Scatter Plot (Price/Avalibility_365) ----------------- 19

DANH MỤC HÌNH ẢNH

Hình 1: Mô hình phân lớp dữ liệu -------------------------------------------- 6


Hình 2 Ví dụ sơ đồ cây quyết định ------------------------------------------- 7
Hình 3 Sơ đồ tổng quát SVM -------------------------------------------------- 7
Hình 4 Ví dụ sơ đồ kNN ------------------------------------------------------- 8
Hình 5 Mô hình phân cụm dữ liệu -------------------------------------------- 8
Hình 6 Mô hình bài toán 1 ---------------------------------------------------- 14
Hình 7 Kết quả dự báo (1) ---------------------------------------------------- 15
Hình 8 Mô hình bài toán 2 ---------------------------------------------------- 16
Hình 9 Kết quả dự báo (2) ---------------------------------------------------- 17
Hình 10 Mô hình bài toán 3 -------------------------------------------------- 18

DANH MỤC BẢNG

Bảng 1 Mô tả biến ------------------------------------------------------------- 10


Bảng 2 Kết quả Test & Score (1) -------------------------------------------- 14
Bảng 3 Kết quả Confusion Matrix (1) --------------------------------------- 15
Bảng 4 Kết quả Test & Score (2) -------------------------------------------- 16
Bảng 5 Kết quả Confusion Matrix (2) --------------------------------------- 17
Bảng 7 Kết quả k-Means ------------------------------------------------------ 18

2
MỤC LỤC
CHƯƠNG I: TỔNG QUAN --------------------------------------------------------- 4
1.1 L Ý DO CHỌN ĐỀ TÀI ----------------------------------------------------------- 4
1.1.1 Mục tiêu nghiên cứu ----------------------------------------------------- 4
1.1.2 Đối tượng nghiên cứu --------------------------------------------------- 4
1.2 M Ô TẢ BÀI TOÁN -------------------------------------------------------------- 5
1.3 M Ô TẢ PHƯƠNG PHÁP --------------------------------------------------------- 6
1.3.1 Phương pháp phân lớp (Classification) ------------------------------- 6
1.3.2 Phương pháp phân cụm (Clustering) ---------------------------------- 8
1.4 M Ô TẢ DỮ LIỆU -------------------------------------------------------------- 10
CHƯƠNG II: QUY TRÌNH TH ỰC HIỆN & KẾT QUẢ --------------------- 11
2.1 P HÂN TÍCH VÀ TI ỀN XỬ LÝ DỮ LIỆU ---------------------------------------- 11
2.1.1 Phân tích dữ liệu ------------------------------------------------------ 11
2.1.2 Tiền xử lý dữ liệu ------------------------------------------------------ 13
2.2 B ÀI TOÁN 1: D Ự ĐOÁN PHÂN LO ẠI ĐỐI TƯỢNG CHO THUÊ THEO LO ẠI
PHÒNG CỦA A IRBNB H OA K Ỳ THÁNG 10/2020. -------------------------------- 14
2.2.1 Quy trình thực hiện: --------------------------------------------------- 14
2.2.2 Đánh giá và kết quả --------------------------------------------------- 14
2.3 B ÀI TOÁN 2: D Ự BÁO GIÁ PHÒNG CHO THUÊ LO ẠI “H OTEL ROOM ”------ 16
2.3.1 Quy trình thực hiện: --------------------------------------------------- 16
2.3.2 Đánh giá và kết quả --------------------------------------------------- 16
2.4 B ÀI TOÁN 3: P HÂN CỤM CÁC PHÒNG CHO THUÊ LO ẠI “S HARED ROOM ” 18
2.4.1 Quy trình thực hiện: --------------------------------------------------- 18
2.4.2 Đánh giá & kết quả --------------------------------------------------- 18
TÀI LIỆU THAM KHẢO --------------------------------------------------------- 20

3
CHƯƠNG I: TỔNG QUAN
1.1 Lý do chọn đề tài
Từ khi được thành lập năm 2008, Airbnb phát tri ển mạnh mẽ và thay đổi cách
vận hành truyền thống của ngành khách sạn trên thế giới. Ngày càng nhi ều du khách
lựa chọn Airbnb là nơi tìm ki ếm địa điểm tá túc khi đi du l ịch. Airbnb đặc biệt cung
cấp cho khách du lịch phương thức tìm kiếm nơi lưu trú dễ dàng – độc đáo – cá nhân
hóa hơn.
Đặc biệt, Airbnb có độ phủ sóng cao và là phương ti ện tra cứu quen thuộc của
khách du lịch có nhu cầu nghỉ dưỡng hoặc trải nghiệm văn hóa ở Mỹ. Vì vậy, phân
tích số liệu phòng cho thuê tại Airbnb Hoa Kỳ - một khía cạnh nào đó – có thể nhận
biết nhu cầu và xu hướng thực tế của khách du lịch đối với từng loại phòng ở hoặc
từng địa phương.
Ngoài ra, dữ liệu về giá cho thuê dựa trên cung – cầu thực tế của khách thuê tại
Airbnb có thể sử dụng để dự báo hoặc đưa ra mức định giá hợp lý cho các đối tượng
cho thuê tương ứng.
Quan trọng, bộ dữ liệu về nhà ở cho thuê của Airbnb qua các năm đư ợc cung
cấp công khai và phi thương m ại bởi bên thứ ba: http://insideairbnb.com/ . Điều này
giúp sinh viên thu thập nhanh chóng và chính xác ngu ồn dữ liệu từ thực tế.
Từ những lý do trên, sinh viên l ựa chọn đề tài “Ứng dụng máy học vào phân
nhóm và dự đoán giá của phòng cho thuê Airbnb t ại Mỹ năm 2020” làm báo cáo
kết thúc môn học.

1.1.1 Mục tiêu nghiên cứu


Ba mục tiêu chính của đề tài tương ứng với ba bài toán cần giải quyết:
- Dự đoán phân loại đối tượng theo nhóm 4 loại phòng có trong Airbnb -
giúp khách hàng dễ dàng tìm kiếm loại phòng phù hợp theo nhu cầu.
- Định khoảng giá cho các đối tượng cho thuê loại phòng “Hotel room”
trong Airbnb theo các tiêu chí có sẵn - giúp người cho thuê lựa chọn mức giá cho
thuê phù hợp với thị trường.
- Gom cụm các đối tượng cho thuê loại phòng “Shared home” t ồn tại trên
hệ thống của Airbnb – để doanh nghiệp có thể phát triển thêm những dịch vụ tăng
cường riêng cho từng nhóm khách hàng.

1.1.2 Đối tượng nghiên cứu


Sử dụng bộ dữ liệu bao gồm các thông tin công khai về danh sách cho thuê trên
Airbnb tại các thành phố ở Hoa Kỳ mà insideairbnb.com cung c ấp.

4
1.2 Mô tả bài toán
Sử dụng Excel và phần mềm Orange để xử lý dữ liệu và giải quyết các bài toán
sau:
- Bài toán 1: Dự đoán phân đối tượng cho thuê theo loại phòng của Airbnb
Hoa Kỳ (bài toán phân l ớp đa lớp)
- Bài toán 2: Dự báo giá phòng cho thuê loại “Hotel room” (bài toán phân
lớp đa lớp)
- Bài toán 3: Phân c ụm các phòng cho thuê lo ại “Shared room” (bài toán
gom cụm dữ liệu).

5
1.3 Mô tả phương pháp
1.3.1 Phương pháp phân lớp (Classification)
Phân lớp dữ liệu là quá trình phân một đối tượng dữ liệu vào một hay nhiều lớp
(loại) đã cho trước nhờ một mô hình phân lớp. Mô hình này đã được xây dựng dựa
trên một tập dữ liệu đã được gán nhãn trước đó. Quá trình gán nhãn cho một đối
tượng dữ liệu chính là quá trình phân l ớp.

Hình 1: Mô hình phân lớp dữ liệu

Quá trình phân lớp dữ liệu gồm 3 bước:


- Bước 1: Xây dựng mô hình (giai đoạn “huấn luyện”).
• Dữ liệu đầu vào là dữ liệu mẫu đã được gán nhãn và ti ền xử lý.
• Các thuật toán phân lớp: Cây quyết định, SVM, …
• Kết quả của bước này là mô hình phân lớp đã được huấn luyện (trình phân
lớp).
- Bước 2: Đánh giá mô hình (kiểm tra tính đúng đắn)
• Dữ liệu đầu vào: là một tập dữ liệu mẫu khác đã được gắn nhãn và tiền
xử lý. Tuy nhiên lúc đưa vào mô hình phân l ớp, ta sẽ “lờ” đi thuộc tình đã được gắn
nhãn.
• Tính đúng đắn của mô hình sẽ được xác định bằng cách so sánh thuộc tính
gắn nhãn của dữ liệu đầu vào và kết quả phân lớp mô hình.
- Bước 3: Phân lớp dữ liệu mới
Phân loại bài toán phân lớp: Nhiệm vụ của bài toán phân lớp là phân loại đối
tượng dữ liệu vào n lớp cho trước nếu:
• n = 2: Thuộc bài toán phân lớp nhị phân.

6
• n > 2: Thuộc bài toán phân lớp đa lớp.
Các phương pháp phân l ớp được sử dụng trong bài:
- Cây quyết định (Decision Tree): Trong lý thuy ết quản trị, cây quyết định
là đồ thị các quyết định cùng các kết quả khả dĩ đi kèm nhằm hỗ trợ quá trình ra
quyết định. Trong lĩnh v ực khai thác dữ liệu, cây quyết định là phương pháp mô tả,
phân loại và tổng quát hóa tập dữ liệu cho trước.

Hình 2 Ví dụ sơ đồ cây quyết định

- SVM (Support Vector Machine) là m ột thuật toán có giám sát, SVM nhận
dữ liệu vào, xem chúng như các vector trong không gian và phân lo ại chúng vào các
lớp khác nhau bằng cách xây dựng một siêu phẳng trong không gian nhiều chiều làm
mặt phân cách các lớp dữ liệu. Để tối ưu kết quả phân lớp thì phải xác định siêu
phẳng (hyperplane) có khoảng cách đến các điểm dữ liệu (margin) của tất cả các lớp
xa nhất có thể. SVM có nhiều biến thể để phù hợp với nhiều bài toán phân loại khác
nhau.

Hình 3 Sơ đồ tổng quát SVM

7
- KNN (K-nearsest neighbor) là thu ật toán đơn giản nhất trong những thuật
toán supervised-learning nhưng lại hiểu quả trong một số trường hợp. Thuật toán
này không cần học từ dữ liệu huấn luyện, khi cần dự đoán kết quả của dữ liệu mới
thì thuật toán này mới thực hiện tính toán. KNN có thể áp dụng trên cả hai loại bài
toán phân loại và hồi quy.

Hình 4 Ví dụ sơ đồ kNN

1.3.2 Phương pháp phân cụm (Clustering)


Phân cụm dữ liệu là quá trình gom cụm/nhóm các đối tượng/dữ liệu có đặc điểm
tương đồng vào các cụm/nhóm tương ứng. Trong đó:
- Các đối tượng trong cùng một cụm sẽ có những tính chất tương tự nhau.
- Các đối tượng thuộc cụm/nhóm khác nhau s ẽ có các tính chất khác nhau.
Lưu ý: Dữ liệu của bài toán phân cụm là dữ liệu chưa được gán nhãn. Đây là d ữ
liệu tự nhiên thường thấy trong thực tế.

Hình 5 Mô hình phân cụm dữ liệu

Đặc điểm:
- Nhiệm vụ chính là tìm ra và đo đ ạc sự khác biệt giữa các đối tượng dữ
liệu.
- Phân cụm thuộc nhóm phương pháp h ọc không giám sát (unsupervised
learning) vì không biết trước được số nhóm (khác với bài toán phân l ớp)
- Một phương pháp phân c ụm tốt là phương pháp tạo ra các cụm có chất
lượng cao:
• Độ tương đồng bên trong cụm cao
8
• Độ tương tự giữa các cụm thấp (khác biệt cao)
- Các ứng dụng điển hình:
• Công cụ phân cụm dữ liệu độc lập.
• Là giai đoạn tiền xử lý cho các thuật toán khác
Độ đo phân cụm được sử dụng làm tiêu chí nhằm tính toán sự tương đồng hoặc
sai biệt giữa các đối tượng dữ liệu nhằm phục vụ cho quá trình gom c ụm. Một số độ
đo phân cụm: Euclid, Cosin, Minkowski …
Thuật toán K-means:
- Thuộc nhóm thuật toán phân cụm dựa trên phân hoạch.
- Tư tưởng chính: Ta xem m ỗi đối tượng trong tập dữ liệu là một điểm trong
không gian d chiều (với d là số lượng thuộc tính của đối tượng)

9
1.4 Mô tả dữ liệu
Bộ dữ liệu được tổng hợp từ các tập dữ liệu về nhà ở cho thuê Airbnb tại Hoa
Kỳ - được truy xuất tại: http://insideairbnb.com/. Bộ dữ liệu được thu thập vào ngày
20 tháng 10 năm 2020 b ởi Kritik Seth.
Bộ dữ liệu gồm các thông tin:
Thuộc tính Ý nghĩa Mô tả
Mã định danh của Airbnb cho đối tượng
id 1 chuỗi ký tự số
cho thuê
name Tên của đối tượng cho thuê 1 chuỗi ký chữ
Mã định danh của Airbnb cho chủ nhà /
host_id 1 chuỗi ký tự số
người cho thuê

host_name Tên của chủ nhà/ người cho thuê 1 chuỗi ký chữ

1 chuỗi ký tự số
neighbourhood Tên của khu vực lân cận
hoặc chữ
latitude Vĩ độ Số thập phân
longitude Kinh độ Số thập phân
Entire home/apt;
Private room;
room_type Loại phòng của đối tượng cho thuê
Shared room;
Hotel room
price Giá phòng mỗi ngày ($) Số tiền (USD)
Số đêm lưu trú tối thiểu của đối tượng
minimum_nights Số tự nhiên
cho thuê

number_of_reviews Số lượng đánh giá của đối tượng cho thuê Số tự nhiên

reviews_per_month Số lượt đánh giá trung bình mỗi tháng Số thập phân

Số lượng phòng cho thuê cùng thành phố


calculated_host_listings_count mà chủ nhà sở hữu có trong danh sách Số tự nhiên
hiện tại

Tính khả dụng (ngày): Một máy chủ


Airbnb có thể thiết lập lịch cho danh sách
availability_365 Số tự nhiên
của họ để nó chỉ có sẵn trong vài ngày
hoặc vài tuần trong năm.

Asheville, Austin, Boston,


Broward County, Chicago,
city Thành phố tại nơi cho thuê
Clark County, Columbus,
Denver, Hawaii, Cambridge
< $130;
Khoảng định giá phòng / ngày (chỉ có [ $130 ; $190 );
valuation
trong sheet "HR") [ $190 ; $300 );
>= $300
Bảng 1 Mô tả biến

10
CHƯƠNG II: QUY TRÌNH TH ỰC HIỆN & KẾT QUẢ
2.1 Phân tích và tiền xử lý dữ liệu
2.1.1 Phân tích dữ liệu
Phân tích dữ liệu của các đặc trưng có tính phân loại:
- Mỗi hàng đại dện cho 1 đối tượng cho thuê, mỗi cột chứa các thuộc tính
của đối tượng.
- Dữ liệu thô chứa 65.535 hàng (đối tượng) và 15 cột (đặc trưng).
- Trong cột dữ liệu về loại phòng có 4 thuộc tính là: nhà nguyên căn/ căn
hộ, phòng ở riêng, phòng ở chung, phòng khách sạn.
- Tổng số lượng thuê phòng loại nhà/ căn hộ nguyên căn cao hơn rất nhiều
so với các loại phòng còn lại ( phòng “Entire home/apt” chi ếm 77,36%)
- Hawaii, Broward Country và Au stin là 3 thành ph ố có số lượng phòng cho
thuê nhiều nhất (lần lượt là 26,53% - 16,57% - 15,92% trên tổng số phòng cho thuê
Airbnb tại Mỹ).
- Mức độ phân bố giá phòng tập trung mạnh mẽ trong khoảng từ $0 đến
$2000, mức độ giá tập trung cũng khác nhau theo loại phòng, lần lượt từ rẻ đến đắt
nhất là: Phòng chung -> Phòng KS -> Phòng riêng -> Nhà nguyên căn.

Biểu đồ 1 Dữ liệu Data theo giá và lo ại phòng

11
60000 20000
17385
50697 18000

Số lượng phòng cho thuê


50000 16000
Số lượng phòng cho thuê 14000
40000 12000 10436 10858
10000 8408
30000 8000 6397
6000 4200
3339
20000 4000 2074
13430 1029 1409
2000
10000 0
816 592
0
Entire Hotel room Private room Shared room
home/apt
Loại căn hộ Thành phố

Biểu đồ 2 Số lượng phòng cho thuê theo lo ại căn hộ Biểu đồ 3 Số lượng phòng cho thuê theo thành ph ố

100%
90%
80%
70%
60%
50%
40% Shared room

30% Private room


20% Hotel room
10% Entire home/apt
0%
Broward
Asheville Austin Boston Cambridge Chicago Clark County Columbus Denver Hawaii
County
Shared room 7 134 8 162 9 90 66 17 44 55
Private room 364 2202 1142 2295 484 1833 2291 346 935 1538
Hotel room 19 15 27 134 73 330 3 35 180
Entire home/apt 1684 8085 2162 8267 536 4401 5721 1043 3186 15612

Biểu đồ 4 Tỷ lệ phân bố các loại phòng cho thuê theo khu vực

12
2.1.2 Tiền xử lý dữ liệu
- Xử lý dữ liệu:
• Báo cáo sử dụng bộ dữ liệu được tổng hợp từ trang insideairbnb.com, đã
được xác mình và xử lý cơ bản nên không có dữ liệu thiếu.
• Loại bỏ biến ngoại lai (Outliers) trong sheet “SR” có giá (“Price”) =
10.000.
- Phân chia dữ liệu: Lọc từ dữ liệu gốc “AB_US_2020” thành các sheet
chứa dữ liệu theo từng loại phòng khác nhau: “HR” ; “SR” ; “EH” ; “PR”.
- Thêm biến phân loại: Thêm cột Định giá (“Valuation”) trong sheet “HR”
- gán các khoảng giá tương ứng với giá trị trong cột Giá (“Price”). Các mốc giá
được phân chia dựa trên mật độ phòng cho thuê t ại các mức giá trong khoảng đó là
đều nhau.

Price Valuation
0 <= P < 130 < $130
130 <= P < 190 [ $130 ; $190 )
190 <= P < 300 [ $190 ; $300 )
P >= 300 >= $300

13
2.2 Bài toán 1: Dự đoán phân loại đối tượng cho thuê theo loại phòng của
Airbnb Hoa Kỳ tháng 10/2020.
2.2.1 Quy trình thực hiện:

Hình 6 Mô hình bài toán 1

- B1: Chọn dữ liệu File AB_US_2020_1.xlsx sheet “Data” và ch ọn cột


“room_type” làm Target.
- B2: Dùng Data Sampler chia d ữ liệu làm 2 phần (70-30). Đặt tên File dữ
liệu lớn hơn là “Data train”, File nh ỏ hơn là “Data forecast”.
- B3: Dùng 3 phương pháp: KNN, Neutral Network, Ran dom Forest tiến
hành phân loại loại phòng cho thuê & đánh giá hi ệu quả các phương pháp.
- B4: Chọn phương pháp đư ợc đánh giá tốt nhất, dùng phương pháp đó d ự
báo cho dữ liệu File “Data forecast”.
2.2.2 Đánh giá và kết quả
- Kết quả đánh giá phương pháp của Test & Score

Bảng 2 Kết quả Test & Score (1)

14
- Đánh giá mô hình dựa trên kết quả Confusion Matrix:
• Sai lầm loại 1 và loại 2 của PP cây quyết định ít trọng yếu nhất. Các sai
lầm đều dưới mức 20% và tỷ lệ tập trung cao nhất ở các dự đoán đúng.
• Kết luận: Chọn “Random Forest” là phương pháp đư ợc dùng để phân loại
dữ liệu File “Data forecast”.

Bảng 3 Kết quả Confusion Matrix (1)

- Kết quả dự báo:

Hình 7 Kết quả dự báo (1)

15
2.3 Bài toán 2: Dự báo giá phòng cho thuê lo ại “Hotel room”
2.3.1 Quy trình thực hiện:

Hình 8 Mô hình bài toán 2

- B1: Chọn dữ liệu File AB_US_2020_1.xlsx sheet “ HR” và chọn cột


“Valuation” làm Target.
- B2: Dùng Data Sampler chia d ữ liệu làm 2 phần (70-30). Đặt tên File dữ
liệu lớn hơn là “Data Train”, File nhỏ hơn là “Data Forecast”.
- B3: Dùng 3 phương pháp: SVM, KNN, Random Forest ti ến hành phân loại
giá phòng cho thuê thu ộc khoảng nào & đánh giá hi ệu quả các phương pháp.
- B4: Chọn phương pháp đư ợc đánh giá tốt nhất, dùng phương pháp đó d ự
báo cho dữ liệu File “Data Forecast”.
2.3.2 Đánh giá và kết quả
- Kết quả đánh giá phương pháp của Test & Score

Bảng 4 Kết quả Test & Score (2)

- Đánh giá mô hình d ựa trên kết quả Confusion Matrix:


• Tỷ lệ sai lầm loại 1 và loại 2 của PP cây quyết định nhỏ nhất. Các sai lầm
đều dưới 10%.

16
• Kết luận: Chọn “Random Forest” là phương pháp đư ợc dùng để phân loại
dữ liệu File “Data Forecast”.

Bảng 5 Kết quả Confusion Matrix (2)

- Kết quả dự báo:

Hình 9 Kết quả dự báo (2)


17
2.4 Bài toán 3: Phân c ụm các phòng cho thuê lo ại “Shared room”
2.4.1 Quy trình thực hiện:

Hình 10 Mô hình bài toán 3

- B1: Chọn dữ liệu File AB_US_2020_1.xlsx sheet “ SR”, không chọn


Target.
- B2: Dùng phương pháp k-Means để phân cụm dữ liệu.
- B3: Minh họa các cụm đối tượng cho thuê bằng Sihouette Plot và Scatter
Plot.
2.4.2 Đánh giá & kết quả
- Kết quả phân loại k-Means: Chạy k-Means từ 2 đến 6 cụm, chọn phân 3
cụm tương ứng với điểm Silhouette cao nh ất là 0,626.

Bảng 6 Kết quả k-Means

- Minh họa kết quả phân cụm:


18
Biểu đồ 6 Minh họa Scatter Plot (Price/Avalibility_365)

B i ể u đ ồ 5 M i n h h ọ a S i h o ue t t e P l o t

19
TÀI LIỆU THAM KHẢO
[1] Slide đào tạo môn Khoa học dữ liệu _UEH
[2] https://www.kaggle.com/kritikseth/us -airbnb-open-data
[3] http://insideairbnb.com/get -the-data.html
[4] https://www.youtube.com/c/OrangeDataMining/featured

20

You might also like