Phân tích dữ liệu 9 2.2, Bài Toán: Dự báo giá thuê phòng trong Airbnb theo các tiêu chí được có sẵn từ đó giúp khách hàng có thế đễ dàng lựa chọn được các căn hộ khách sạn phù hợp với b
Trang 1BO GIAO DUC VA DAO TAO DAI HOC KINH TE TP HO CHi MINH
TRUONG CONG NGHE VA THIET KE
UEH UNIVERSITY
DO AN MON HOC
DE TAI:
PHAN TICH DU LIEU, PHAN NHOM VA DU DOAN GIA
PHONG CHO THUE QUA WEB AIRBNB TAI SINGAPORE
NAM 2019 BANG PHAN MEM ORANGE
HOC PHAN: KHOA HOC DU LIEU
NHOM SINH VIEN:
1 NGUYEN DUC TUAN MINH
2 DIEU CHINH KHOA
CHUYEN NGANH: KY THUAT PHAN MEM
KHOA: K47
GIANG VIEN: TS DANG NGOC HOANG THANH
TP Hồ Chí Minh, ngày 28 tháng 9 năm 2022
Trang 2MUC LUC
CHƯƠNG 1: TỎNG QUAN (- th HH Hư 2
1.1 Giới thiệu về Python và phần mềm Orange 2
1.5.1 Phương pháp Cây quyết định (Decision Tree) 3 1.9.2 Phương pháp SVM (Support Vector Miachine) 4 1.9.3 — Phương pháp KNN (K- Nearest Neighbor) 5 1.9.4 Phương pháp phân cựm (Clustering) 5
CHƯƠNG 2: QUY TRÌNH THỰC HIỆN c5 S2 2 2213 21 211221012 9
211 Phân tích dữ liệu 9
2.2, Bài Toán: Dự báo giá thuê phòng trong Airbnb theo các tiêu chí được có sẵn từ đó giúp khách hàng có thế đễ dàng lựa chọn được các căn hộ khách sạn phù hợp với budget của mình
12
2.2.1 QQUV TrÌHH LHỰC HẲỆH, Ăn TY TH HT TH HT HT T0 TH 12 2.2.2 Đánh giá và kẾI quả ăcSẶĂc ST HH HH1 ke 13
Page | 1
Trang 3CHUONG 1: TONG QUAN
1.1 Giới thiệu về Python và phần mềm Orange
- Python là một ngôn ngữ lập trình hướng đối tượng và là một ngôn ngữ bậc cao ngữ nghĩa động Với hình thức sáng sủa, cầu trúc rõ ràng, thuận tiện cho người mới học lập trình và là ngôn ngữ lập trình dễ học, được sử dụng rộng rãi Được ra mắt vào năm 1991, Python hiện tại đã trở thành top 3 trong tất cả các ngôn ngữ lập trình phô biến nhất trên thế giới Và tat nhiên, Python rất mạnh trong công việc khai thác dữ liệu
- Orange là một phần mềm trực quan đề trực quan hóa dữ liệu, khai thác dữ liệu cũng như là phân tích dữ liệu một cách thông minh, đơn giản, được xây dựng từ ngôn ngữ Python với giao diện trực quan và tương tác dé dàng Với nhiều chức năng, phần mềm này có thê phân tích được những dữ liệu từ đơn giản đến phức tạp, tạo ra những
đồ họa đẹp mắt và thú vị và còn giúp việc khai thác dữ liệu và học máy trở nên dễ dàng hơn cho cả người dùng mới và chuyên gia
- Orange cung cấp các widgets mang đến các khả năng đọc dữ liệu, hiện thị dữ liệu dạng table, cũng như lọc, huấn luyện và dự báo
1.2 Ly do chon dé tai
- Là những sinh viên ngành Kỹ thuật phần mềm và thuộc trường Đại Học UEH nói chung, thì việc kết hợp công nghệ khai phá dữ liệu cũng như công nghệ thông tin
với các kiến thức kinh tế sẽ giúp sinh viên chúng tôi hiểu rõ hơn về việc kinh doanh,
nghiên cứu thị trường và doanh nghiệp
- Airbnb là một trong những business mà đã thay đôi hoàn toàn cách mà các khách sạn, homestay hoạt động Đây là một dịch vụ di động nhằm kết nối người cần
thuê nhà, chỗ ở với những người có nhu cầu cho thuê nhà và chỗ ở Người cần thuê chỉ
cần nhập nơi mong muốn, xác nhận thì địa chỉ của căn hộ sẽ được gửi đến Tất cả việc thanh toán sẽ được thông qua ứng dụng này và nó sẽ thu khoản phí trung gian với cả người thuê và người cho thuê Chỉ trong hơn một thập kỷ nó đã phát triển rất nhanh
Thành lập năm 2008, Airbnb đã trở thành doanh nghiệp hằng đầu về booking khách
sạn, có độ phủ sóng cao, và nhu cầu booking, đặt thuê của các khách hàng qua Airbnb
là rất lớn Tuy nhiên, điều mà khách hàng rất quan tâm nhất khi sử dụng dịch vụ đó là
Page | 2
Trang 4giá cả, chi phi dé thuê phòng Airbnb đã phủ sóng gần như trên thê giới nói chung và Đông Nam Á nói riêng Với việc phân tích số liệu của Airbnb của Singapore thì chúng
ta đã có thê tìm hiểu được một khía cạnh nào đó nhu cầu, xu hướng, lẫn cả dự báo được giá cả thuê phòng của Đông Nam Á nói chung và từ đó đưa ra được định giá tốt nhất cho các phòng cho thuê tương ứng
- Với bộ dữ liệu chính xác của Airbnb được chia sẻ năm 2019 về Nhà ở cho thuê ở Singapore được thu thap tai https://www.kagele.com/datasets/jojoker/singapore-
airbnb
> Từ những lý do này, sinh viên nghiên cứu lựa chọn đề tai PHAN TICH
DU LIEU, PHAN NHOM VA DU DOAN GIA PHONG CHO THUE QUA WEB AIRBNB TAI SINGAPORE NẤM 2019 để làm đồ án cuỗi kỳ môn học Khoa học dữ
liệu
1.3 — Mục tiêu nghiên cứu
- Dự báo được giá thuê phòng loai Private Room trong Airbnb theo các tiêu chí được có sẵn từ đó giúp khách hàng có thể dễ dàng lựa chọn dịch vụ phù hợp với budget của mình
1.4 — Đối tượng nghiên cứu
Ở đồ án này, chúng tôi sử dụng bộ dữ liệu “Sizgapore Airbnb” được thu thập từ InsideAirbnb vào ngày 28 tháng 8 năm 2019 và được chia sẻ trên kaggle.com Bộ dữ liệu này cung cấp thông tin về danh sách chỉ tiết về dữ liệu cho thuê trên Airbnb tại Singapore năm 20 19
1.5 Mô tả phương pháp
1.5.1 Phương pháp Cây quyết định (Decision Tree)
- 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 nhằm mô tả, phân loại và tổng quát hóa tập đữ liệu cho trước
Page | 3
Trang 5Play (Y) or Not (N)
outlook?
sunny
overcast
humidity?
high 7 \normail
Hinh 1: Vidu vé Decision Tree trong thoi tiét
15.2 Phuong phap SVM (Support Vector Machine)
- Là một thuật toán có giám sát, ŠVM nhận dữ liệu vào, xem chúng như những các vector trong không giian 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
SVM có thể phù hợp với các bài toán phân loại khác nhau
4'2/
Hình 2 Ví dụ về SVM
Page | 4
Trang 61.5.3 Phuong phap KNN (K- Nearest Neighbor)
- Là thuật toán đơn giản trong những thuật toán supervised-learning nhung lai 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 đữ liệu mới thì thuật toán này thực hiện tính toán
to classify Class A
2“ #*| `
Hình 3 Ví dụ về K-Nearest Neighbor 15.4 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
e Các đối tượng thuộc nhóm/cụ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ế
Page | 5
Trang 7
Hinh 4 Vi du vé Clustering
Đặ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
e Độ tương ty giữa các cụm thấp
- Các ứng dụng điền hình
e Công cụ phân cụm dữ liệu độc lap
° 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 /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 nồi tiếng nhu: Euclid, Cosin, Minkowski,
Page | 6
Trang 816 Mo tadirligu
Chúng tôi sử dụng bộ dữ liệu “Sngaore Airbnb ” được thu thập từ InsideArrbnb vào ngày 28 tháng 8 năm 2019 và được chia sẻ trên kaggle.com Bộ dữ liệu này cung cấp thông tin về danh sách chỉ tiết về dữ liệu cho thuê trên Airbnb tại Singapore năm
2019
Bộ dữ liệu gồm các thuộc tính:
price Giá phòng mỗi ngày (Đơn vị USD)
host name Tên của chủ nhà/người cho thuê
id Mã định danh của đối tượng cho thuê
host 1d Mã định danh của chủ nhà
neighbourhood_ øroup Tên của nhóm khu vực lân cận
neighborhood Tên của khu vực lân cận
room type Loại phòng của đối tượng cho thuê
minumum_ nights Số đêm lưu trú tôi thiêu của đối tượng
cho thuê
number of reviews Số lượng đánh giá của đối tượng cho
thuê
last_ review Ngày đánh giá gần nhất
Page | 7
Trang 9
reviews per month Số lượt đánh giá trung bình mỗi tháng
caculated_host_listings count Số lượng phòng cho thuê cùng thành
phố mà chủ nhà sở hữu có trong danh sách hiện tại
avallability 365 Tính khả dụng trong một năm
Bảng 1 Chú thích tên Các Thuộc Tính
Page | 8
Trang 10CHUONG 2: QUY TRINH THUC HIEN 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 như sau:
- Mỗi hàng là một đối tượng cho thuê, mỗi cột là các thuộc tính của đối tượng đó
- Dữ liệu gốc chứa 7907 đối tượng và 13 đặc tính
- Trong cột dữ liệu về loại phòng (room type) có 3 loại thuộc tính như sau: Entire home/apt (Toàn bộ căn hộ), Private Room (Phòng riêng trong một căn hộ), Shared Room (Phong 6 chung với khách khác)
- Trong bộ dữ liệu thì chúng ta thây được tỉ lệ loại phòng Entire home/apt và Private Room cao hon hoan toàn so với loại phòng còn lại đó là Shared room (Entire home/apt chiếm 52.26% và Private room chiếm 42.76% còn lại Shared room chỉ chiếm 4.98%)
- Hai khu vực có lượng phòng nhiều nhất là Kallang với tỉ lệ phòng cho thuê ở khu vực này là 13.19% và Geylang với tỉ lệ là 12.579
- Giá phòng chủ yếu phân bố từ $0 - $1000, mức độ giá này cũng khác nhau theo
các loại phòng, chúng ta có thê thấy rẻ nhất vẫn là Shared Room rồi đến Private Room
va đắt nhất là Entire Room/apt Có một vài đối tượng có giá thuê cao hơn mức bình thường và có lên tới mức $10000
Page | 9
Trang 11
9 2500,
2500 - 5000
7500 - 10000
Biểu đồ 1 Dữ liệu theo loại phòng và giá (Scatter Plot)
@ Frere bomalapt
@ mate room
© shared room,
Ere ronenet man nen Snvetroyr
renee
Biểu đồ 2 Số lượng đối tượng theo loại căn hộ
Page | 10
Trang 12Ệ
Freaerey
i
© racer ==
© shared room
ni ee
Biểu đồ 3 Tỉ lệ các loại phòng cho thuê theo khu vực
2.1.2 Tiền xử lý dữ liệu
- Bộ dữ liệu được sử dụng đã được xác minh và đã được qua xử lý trước khi thu thập Vì vậy, cơ bản sẽ không có missing data
308
os
rs
=
8
Hình 5 Bộ dữ liệu gốc
- Tách dữ liệu gốc thành các bộ dữ liệu riêng chỉ bao gồm Private Room
- Loại bỏ các giá trị ngoại lai (Outliers) trong bộ Private Room
Page | 11
Trang 13- Thêm biến Price Range vào bộ dữ liệu về Private Room, tương ứng với nó là các khoảng giá thuê phòng trong cột Price Chúng tôi chia theo từng khoảng gia sao cho số lượng phòng theo các khoảng giá đó là đều nhau
Hình ó Bộ dữ liệu sau khi tiền xử lý
Bang 2 Chú thích cách đặt biến Price Range 2.2 — Bài Toán: Dự báo giá thuê phòng trong Airbnb theo các tiêu chí được có sẵn từ đó giúp khách hàng có thể dễ dàng lựa chọn được các căn hộ khách sạn phù hợp với budget của mình
2.2.1 Quy trình thực hiện
Page | 12
Trang 14* Evaluation Results
3 : TT
£ Trang Di 5 J Test and Score Confusion Matrix
SA ở
LD) = [Tạ SVM
§ «$
Original Data Separate Data Š 2
s Fg
% Neural Network £
2
9 Š kNN
s
Meg,
Random Forest
Ấy
Predictions — Dats Selected Data — Data
C212 ba Đredcbons Predictions Data
Hình 7 Mô hình giải trên phần mềm Orange
- Bước l: Sử dụng widget File trong Orange đề load file Private Room.csv và chọn Price Range làm Target
- Bước 2: Chia dữ liệu gốc thành 2 phần 70 — 30 bằng widget Data Sampler Phần Data Sampling dùng để huấn luyện, còn phần Remaining Data dùng đề dự báo
- Bước 3: Dùng các phương pháp phân loại dữ liệu là SVM, Neural Network, kNN, Random Forest Từ đó đánh giá hiệu quả của các phương pháp bằng widget Test and Score va Confusion Matrix
- Bước 4: Chọn ra được phương pháp tốt nhất, và dùng nó để dự báo cho Training Data thong qua widget Predictions
2.2.2 Danh gid va két qua
- Kết qua str dung Test and Score:
Page | 13
Trang 15
© ross validation Evaluation results for target (None, show average over dasses) ~
Number offolds: lo Model AUC CA FI Precision Recall
@ Stratified kNN 0599 0337 0336 0342 0337
Cross validation by feature SVM 0553 0311 0224 0356 0311
Random Forest 0995 0954 0954 0955 0954
Random samping Neural Network 0.500 0.244 0234 0251 0.244
Training set size: 66% v
G Stratified
O Leave one out
O Test on train data Compare models by: Area under ROC curve x_ [ ]Neghgble díf.: 0.1
O Test on test data kNN SVM Random Forest Neural Network
kNN 1,000 0,000 1.000
Random Forest 1.000 1.000 1.000
Neural Network 0.000 0.000 0.000
sẽ ona dus da cas fo dn aod dn ob nln need Go sd Gn =
probability that the difference is negligible
2 | 3] 2360) -|mmmm)|- [3 2360) 4x2360
Hinh tt Test and Score Result
- Danh gia ket qua bang Confusion Matrix :
23! Confusion Matrix - Orange — n x Learners
SVM
Neural Network
Random Forest
Output
@ Predictions
C) Probabilities
@® Apply Automatically
Predicted
(50;69] (69;100] <=50 >100 › (50;69] 291% 27.9% 243% 157% 653 (69100] 237% 279% 209% 197% 551
z <=50 273% 148% 391% 172% 630
>100 199% 295% 157% 47.5% 526
x 1986 61 115 198 2360
Select Correct Select Misdassified Clear Selection
2 B | 4 4x2360 B 1812360
Hình 9 Kết quả Confusion Matrix cla SVM
Page | 14