ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
ĐỀ TÀI: “TÌM HIỂU VỀ MACHINE LEARNING VÀ
ỨNG DỤNG VÀO VIỆC DỰ ĐỐN GIÁ NHÀ”.
Sinh viên thực hiện:
Nguyễn Chí Thành 18520360
Giảng viên hướng dẫn:
Nguyễn Thị Thanh Trúc
Tp Hồ Chí Minh, Tháng 6 năm 2022
Nhận xét của giảng viên:
Phụ lục:
Chương 1. Giới thiệu đề tài
1.1 Bối cảnh
1.2 Mục đích
1.3 Ý nghĩa
1.4 Nhiệm vụ
1
1
2
2
2
Chương 2. Cơ sở lý thuyết
3
2.1 Các thuật toán Hồi quy
3
2.1.1 Hồi quy đơn thức
a. Thuật toán
b. Ứng dụng
2.1.2 Hồi quy đa biến:
a. Thuật toán
b. Ứng dụng
2.1.3 Hồi quy đa thức:
a. Thuật toán
b. Ứng dụng
2.1.4 Support Vector Regression:
a. Thuật toán
b. Ứng dụng
2.2 Các thuật toán Phân loại:
2.2.1 Logistic Regression:
a. Thuật toán
b. Ứng dụng:
2.2.2 Decision Tree:
a. Thuật toán:
b. Ứng dụng:
2.3 Thuật toán phân cụm:
2.3.1 K-Mean Clustering:
a. Thuật tốn:
b.Ứng dụng:
Chương 3. Tìm hiểu về bài tốn phổ biển
3.1 Recommend System – Hệ thống gợi ý
3.1.1 Sơ lược về hệ thống gợi ý
3.1.2 Các thành phần cơ bản của một hệ gợi ý.
3.1.3 Phân loại hệ thống gợi ý
3.1.4 Xây dựng hệ thống gợi ý
3
3
11
17
17
17
21
21
23
25
25
29
34
34
34
45
49
49
78
80
80
80
89
92
92
92
93
94
95
3.2 Phân loại bình luận tích cực, tiêu cực
3.2.1 Sơ lược
3.2.2 Xây dựng tính năng
102
102
103
Chương 4. Ứng dụng thuật tốn đã tìm hiểu vào dự đốn giá nhà
4.1 Thu thập dữ liệu:
4.2 Tiền xử lý dữ liệu:
4.3 Huấn luyện model:
4.4 Kết quả thử nghiệm:
106
106
109
123
127
Chương 5. Tổng kết
5.1 Kết quả đạt đạt được:
5.2 Hướng phát triển:
129
129
129
Danh mục tham khảo
130
Chương 1. Giới thiệu đề tài
1.1 Bối cảnh
Số tiền dành cho mua nhà là khơng nhỏ, vì vậy việc người mua quan tâm không chỉ ở
việc lựa chọn được một ngơi nhà ưng ý mà cịn xem giá cả có hợp lý hay không.
Việc đánh giá giá trị của một bất động sản không phải là một việc dễ dàng. Để đánh
giá chính xác giá của một căn nhà, người ta khơng chỉ địi hỏi một sự hiểu biết
chun mơn về thị trường bất động sản (một thị trường rất biến động) mà còn đòi hỏi
một sự hiểu biết thật sự tường tận về bản thân các thuộc tính của bất động sản đó
Những kiến thức này thường chỉ được lưu trữ bởi các đại lý kinh doanh bất động sản.
Nếu chúng ta có thể nắm bắt kiến thức này bằng cách thu thập dữ liệu, sử dụng các
dữ liệu mở, tận dụng sự giúp sức của các thuật toán, chương trình máy tính, các kiến
thức này trở nên dễ tiếp cận hơn với các người dân bình thường, giúp đưa ra quyết
định mà không cần dựa vào chuyên gia vì khơng may vị chun gia đó có thể tư vấn
theo chiều hướng có lợi cho họ.
Ước lượng giá bất động sản là một vấn đề hết sức quan trọng trong quy hoạch các
thành phố lớn tại Việt Nam. Hiện nay, ở Việt nam chúng ta chủ yếu ước lượng giá bất
động sản dựa trên các phương pháp truyền thống như phương pháp so sánh trực tiếp,
chiết trừ, thu nhập, thặng dư, hệ số điều chỉnh. Các phương pháp này chủ yếu nhờ sự
phân tích và can thiệp của nhân viên định giá nên rất khó tránh khỏi sai lầm do chủ
quan hoặc khơng minh bạch.
Ngồi các phương pháp truyền thống, trên thế giới đã và đang nghiên cứu và áp dụng
rộng rãi các phương pháp có sử dụng đến các mơ hình tốn học để xác định giá trị bất
động sản.
Với một nền kinh tế giàu tiềm năng và phát triển nhất nước, Tp.HCM được xem như
một trong những thị trường năng động nhất về lĩnh vực bất động sản, thu hút sự chú ý
và đầu tư của rất nhiều doanh nghiệp trong và cả ngoài nước và được đánh giá là cao
nhất trong khu vực. Tiềm năng hơn cả là các quận trung tâm của thành phố, đã trở
thành các vị trí vàng cho đầu tư bất động sản.
Đối với khu vực thành phố, do dân cư đông đúc, việc sống trong căn hộ, chung cư trở
nên không còn xa lạ với chúng ta, trở thành một trong những loại hình đầu tư phổ
biến bậc nhất. Chính vì vậy, đối tượng mà nhóm hướng tới nghiên cứu là một mơ
hình học máy nhằm giúp người mua dự đốn tương đối chính xác giá trị của các các
bất động sản loại chung cư căn hộ.
1
1.2 Mục đích
Đề tài được thực hiện nhằm hai mục đích:
● Tìm hiểu về Machine Learning và các thuật tốn được sử dụng trong Machine
Learning
● Tìm hiểu về thị trường bất động sản, cách hoạt động của nó cũng như dự đoán
giá bất động sản.
1.3 Ý nghĩa
Trước hết, đề tài TÌM HIỂU VỀ MACHINE LEARNING VÀ ỨNG DỤNG VÀO
DỰ ĐỐN GIÁ NHÀ là một đề tài thể hiện việc áp dụng những kiến thức đã được
các thầy cô của trường Đại học Cơng nghệ Thơng tin đã nhiệt tình truyền thụ lại cho
chúng em. Và đặc biệt là sự theo dõi và quan tâm giúp đỡ của cô Nguyễn Thị Thanh
Trúc trong suốt thời gian nhóm chúng em thực hiện đề tài này.
Thứ hai, những kinh nghiệm mà nhóm có được trong quá trình thực hiện đề tài sẽ là
hành trang giúp ích rất nhiều cho cơng việc sau này của mỗi thành viên trong nhóm.
1.4 Nhiệm vụ
● Tìm hiểu các thuật toán machine learning
● Huấn luyện một module nhằm giúp người dùng có thể dự đốn được một cách
tương đối giá bất động sản dựa trên những thuộc tính của nó.
2
Chương 2. Cơ sở lý thuyết
2.1 Các thuật toán Hồi quy
2.1.1 Hồi quy đơn thức
a. Thuật toán
Là một trong những thuật tốn đầu của Machine Learning, thuộc nhóm Supervised
learning ( Học có giám sát ).
Hồi quy tuyến tính đơn thức là một mơ hình hồi quy gồm hai biến là biến độc lập và
biến phụ thuộc, nó liên quan đến các điểm mẫu trong không gian hai chiều sao cho từ
một biến độc lập ta có thể tìm ra một biến phụ thuộc tương ứng nhờ vào một hàm
tuyến tính (một đường thẳng), chính xác nhất có thể, dự đốn các giá trị dựa trên hàm
tuyến tính để tìm ra kết quả. Hàm dự đoán liên quan đến một yếu tố dự đốn duy nhất.
Mơ hình hồi quy mơ tả mối quan hệ giữa các biến bằng cách vẽ một đường thẳng một
đường thẳng để khít với bộ quan sát với bộ dữ liệu quan sát nhất có thể. Các mơ hình
hồi quy tuyến tính sử dụng một đường thẳng, trong khi các mơ hình hồi quy logistic
và phi tuyến tính sử dụng một đường cong. Hồi quy cho phép ước tính cách một biến
phụ thuộc thay đổi khi (các) biến độc lập thay đổi.
Hồi quy đơn thức đã biến nghĩa là ta đi tìm một đường thẳng(cơng thức) để fit nhất
với tập dữ liệu đã có.
Hồi quy tuyến tính đơn biến được sử dụng để ước tính mối quan hệ giữa hai biến định
lượng. Sử dụng hồi quy tuyến tính đơn biến khi bạn muốn biết:
-Mối quan hệ chặt chẽ như thế nào giữa hai biến số (ví dụ mối quan hệ giữa lượng
mưa và xói mịn đất).
-Giá trị của biến phụ thuộc tại một giá trị nhất định của biến độc lập (ví dụ: lượng đất
xói mịn ở một mức độ mưa nhất định).
3
Ví dụ:
Một nhà nghiên cứu về xã hội quan tâm đến mối quan hệ giữa thu nhập và hạnh
phúc(thu nhập bao nhiêu đó thì độ hạnh phúc của chúng ta như thế nào). Họ khảo sát
500 người có thu nhập từ 15 nghìn USD/năm đến 75 nghìn USD/năm và yêu cầu họ
xếp hạng mức độ hạnh phúc của họ trên thang điểm từ 1 đến 10.
Biến độc lập (thu nhập) và biến phụ thuộc (hạnh phúc) của bạn đều là định lượng(biến
độc lập thu nhập quy định về biến phụ thuộc hạnh phúc), vì vậy ta có thể thực hiện
phân tích hồi quy để xem mối quan hệ tuyến tính giữa chúng
Nếu có nhiều hơn một biến độc lập, sử dụng hồi quy tuyến tính đa biến để thay thế
thay vì hồi quy tuyến tính đơn biển
Đi tìm mơ hình hồi quy tuyến tính đơn biến là đi tìm mơ hình có dạng theo cơng thức:
Trong đó:
Y là biến phụ thuộc
X1 là biến độc lập
B0 : hằng số
B1 : hệ số
Chẳng hạn như lương sẽ phụ thuộc vào số kinh nghiệm. Khi ta làm việc lâu, lương sẽ
tăng lên do kinh nghiệm này một nâng lên.
4
Chiếu từ số năm kinh nghiệm lên điểm dữ liệu rồi từ điểm dữ liệu chiều qua trục tung
ta thấy được số lương tương ứng
Vậy trong mối quan hệ trong biểu thức đâu là y và đâu là x
5
Trong trường hợp này Salary sẽ là y và Experience là x, số lương sẽ phụ thuộc vào
vào số năm kinh nghiệm. Experience là biến độc lập và Salary là biến phụ thuộc
Thuật tốn sẽ tìm vơ số các đường thẳng và nó tìm đến khi nào khoảng cách giữa các
điểm dữ liệu thật đến đường thẳng(đường thẳng dự đoán) là bé nhất.
6
Hằng số B0 là nơi mà đường thẳng dự đoán cắt trục tung, trục tưng ở đây là số lương.
Trong trường hợp này đường thẳng dự đoán cắt trục tung ở điểm khoanh đỏ ví dụ là
30k/năm.
7
Cịn b1 là hệ số của phương trình, ở đây là độ dốc của đường thẳng. Trong biểu đồ minh
họa bên dưới, thơng qua độ dốc ta có thể thấy rằng trong khoảng thời gian một năm
(+1yr), đối chiếu lên trục tung thơng qua phương trình ta tìm được khoảng tăng của
Salary là +10k
Từ các điểm dữ liệu thật vẽ đường thẳng song song với trục tung về phía đường thẳng
được thuật toán tạo ra.
Khoảng cách từ điểm dữ liệu đến đường thẳng được gọi là phương sai.
8
9
Thuật toán sẽ đoản bảo sao cho tổng của (y-y^)2 sao cho là bé nhất.
10
b. Ứng dụng
Tìm hiểu thuật tốn trên bộ dữ liệu tương ứng.
Tập dữ liệu gồm 30 mẫu, cột đầu là số năm kinh nghiệm (Years Experience) và cột
theo sau là lương (Salary) dựa trên số năm kinh nghiệm tương ứng. Số năm kinh
nghiệm là biến độc lập, còn lương là biến phụ thuộc.
Nhìn vào tập dữ liệu ta nhận xét được là gì, số tăng kinh nghiệm tăng, đồng nghĩa với
việc kéo theo số lương tăng theo, hai giá trị này tăng theo chiều tuyến tính và tương
quan với nhau.
11
Thử trực quan hóa dữ liệu bằng thư viện matplotlib của python:
Dữ liệu tăng dần tuyến tính, theo chiều tăng dần số năm kinh nghiệm, mức lương sẽ
tăng theo.
12
Đầu tiên, cần phải import các thư viện cần sử dụng, ở đây ta cần dùng numpy,
matplotlib, pandas.
Đọc file dữ liệu vào, file dữ liệu ở đây là file “Salary_Data.csv”. Tách ra thành hai
trường, trường dữ liệu X và y, trong đó X là số năm kinh nghiệm và y số lương.
Tách mỗi phần dữ liệu ra làm 2 phần, nghĩa là tách X ra làm 2 và y ra làm 2, tổng
cộng ta sẽ có 4 phần dữ liệu: X_train, X_test, Y_train, Y_test. Trong đó, X_train và
Y_train dùng để huấn luyện dữ liệu còn X_test, Y_test dùng để kiểm tra kết quả đầu
ra của dữ liệu.
13
Trực quan hóa dữ liệu bằng thư viện matplotlib của python:
Ở hình trên, thư viện matplotlib đã giúp chúng ta trực quan hóa mối quan hệ của thuộc
tính số năm kinh nghiệm và thuộc tính kết quả là mức lương. Tiếp theo ta sẽ tiến hành
huấn luyện model với dữ liệu trên.
Tiến hành training trên tập dữ liệu đã tách ra.
14
Sau đó dùng thư viện của matplotlib để trực quan hóa dữ liệu và xem tập training dữ
liệu
Trực quan hóa tập dữ liệu X_test, Y_test để xem và đối chiếu kết quả
15
Hệ số và hằng số của phương trình
Vậy phương trình từ tập dữ liệu huấn luyện của dataset salary là:
Y = 26816 + 9346*X
Thử dự đoán lương của nhân viên có 13 năm kinh nghiệm:
16
2.1.2 Hồi quy đa biến:
a. Thuật tốn
Về cơ bản khơng có sự khác biệt giữa hồi quy tuyến tính 'giản đơn' và 'đa biến'. Cả hai
đều làm việc tuân theo ngun tắc OLS và thuật tốn để có được đường hồi quy tối ưu
nhất cũng tương tự. Trong trường hợp sau, phương trình hồi quy sẽ có một hình dạng
như sau:
Y=B0+B1*X1+B2*X2+B3*X3.....
Trong đó:
Bi: Các hệ số khác nhau
Xi: Các biến độc lập khác nhau
b. Ứng dụng
Chúng ta sẽ thực hiện huấn luyện một model dự đốn giá nhà dựa trên mơ hình multi
Linear Regression.
Tập dữ liệu đầu vận dụng mỗi hàng là một cơng ty, mỗi cơng ty có 5 trường là chi phí
R&D, chi phí của bộ phận admin, marketing, quốc gia và cuối cùng là lợi nhuận sau
khi đã trừ hết chi phí. Bài tốn vận dụng đặt ra là nếu có chi phí R&D, admin,
marketing của một quốc gia và phải dự đoán được lợi nhuận từ quốc gia đó.
17
Tập dữ liệu chi phí đầu tư của những cơng ty ở các nước khác nhau:
Đầu tiên chúng ta cần khai báo một số thư viện cần thiết:
Sau đó, ta sẽ import bộ dữ liệu có sẵn vào bằng hàm read_csv() của thư viện pandas
18
In ra xem thử bộ dữ liệu có đúng hay chưa
19
Tiền hành encode dữ liệu và xem thử encode đúng chưa:
Sau đó tách dữ liệu ra làm 2 phần test và train, sau đó tiến hành train, và đây là kết
quả:
20