Để đánhgiá 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ếtchuyên 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ỏimột sự hiểu biết thậ
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Trang 3Nhận xét của giảng viên:
Trang 53.2 Phân loại bình luận tích cực, tiêu cực 102
Trang 6Chươ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 Để đánhgiá 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ếtchuyên 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ỏimộ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ếnthứ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ị chuyên gia đó có thể tư vấntheo 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ácthà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
Ngoà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ụngrộng rãi các phương pháp có sử dụng đến các mô hình toá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à caonhấ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ự đoán tương đối chính xác giá trị của các cácbất động sản loại chung cư căn hộ
1
Trang 71.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 toán được sử dụng trong MachineLearning
● 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ángiá 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Ự ĐOÁ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ự đoán được một cáchtương đối giá bất động sản dựa trên những thuộc tính của nó
2
Trang 8Chươ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
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ìnhhồ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ếnphụ 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ấtvớ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 địnhlượ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ượngmư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 đấtxói mòn ở một mức độ mưa nhất định)
3
Trang 9Nế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:
Trang 10Chiế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
Trang 11Trong trường hợp này Salary sẽ là y và Experience là x, số lương sẽ phụ thuộc vàovào số năm kinh nghiệm Experience là biến độc lập và Salary là biến phụ thuộc
Thuật toá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
Trang 12Hằ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
Trang 13Còn b1 là hệ số của phương trình, ở đây là độ dốc của đường thẳng Trong biểu đồ minhhọ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ủaSalary 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
Trang 15Thuật toán sẽ đoản bảo sao cho tổng của (y-y^)2 sao cho là bé nhất.
10
Trang 16b Ứng dụng
Tìm hiểu thuật toá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ộttheo sau là lương (Salary) dựa trên số năm kinh nghiệm tương ứng Số năm kinhnghiệ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ớiviệ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ươngquan với nhau
11
Trang 17Thử 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
Trang 18Đầ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 haitrườ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ổngcộ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
Trang 19Trự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
Trang 20Sau đó 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
Trang 222.1.2 Hồi quy đa biến:
a Thuật toá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 nguyên tắc OLS và thuật toán để có được đường hồi quy tối ưunhấ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ạngnhư sau:
Y=B0+B1*X1+B2*X2+B3*X3
Trong đó:
Bi: Các hệ số khác nhauXi: Các biến độc lập khác nhau
17
Trang 23Tậ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
Trang 24In ra xem thử bộ dữ liệu có đúng hay chưa
19
Trang 25Tiề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ếtquả:
20
Trang 262.1.3 Hồi quy đa thức:
a Thuật toán
Nếu giả sử ta có tập dữ liệu:
Nếu như ta dùng thuật toán hồi quy đơn thức
Thì đường thẳng hồi quy đơn thức này sẽ không fit được hoàn toàn tập dữ liệu
21
Trang 27Chính vì thế hồi quy đa thức ra đời để giải quyết trường hợp này.
Như ở hình trên thì dưới tập dữ liệu này là một đường cong nên có có công thức là:
22
Trang 28Công thức tổng quát của hồi quy đa thức:
Trong đó b0, b1,b2,bn là hệ số
x1 là biến độc lập
y là biến phụ thuộc
b Ứng dụng
Dựa vào level để dự đoán số lương
Đầu tiên khai báo thư viện
Phân chia tập dữ liệu thành 2 phần
23
Trang 29Nếu dùng hồi quy đa thức thì sẽ không fit hết được tập dữ liệu:
Nên phải dùng hồi quy đa thức (dạng đường cong) để fit tập dữ liệu Sau khi train dữliệu xong ta trực quan dữ liệu và có kết quả:
Thử dự đoán kết quả
24
Trang 302.1.4 Support Vector Regression:
a Thuật toán
Nếu như hồi quy đơn thức sẽ vẽ một đường thẳng sao cho khoảng cách đến đường dữliệu này là bé nhất
25
Trang 31Thì support vector machine sẽ vẽ một cái tube
Và bề dày mỗi bên của cái tube này gọi là E
Thuật toán sẽ không quan tâm đến những điểm dữ liệu có trong cái tube mà chỉ quantâm đến những điểm dữ liệu ở bên ngoài Và hình dạng của cái tube này được hình
26
Trang 32thành dựa vào tổng các khoảng cách của các điểm bên ngoài sao cho tổng khoảngcách này là bé nhất theo công thức:
27
Trang 33Và những điểm ở bên ngoài có thể tạo thành các vector Các vector này có vai trò hìnhthành nên hình dạng của tube.
28
Trang 34Support vector machine được chia làm 2 loại là linear và nonlinear Linear SVR sẽđược dùng cho những tập dữ liệu tuyến tính, còn những tập dữ liệu không tuyến tínhthì dùng nonlinear SVR.
b Ứng dụng
Sử dụng lại tập dữ liệu Salary ở bài toán hồi quy đa thức, nhưng giờ ta sẽ áp dụngthuật toán SVR:
29
Trang 35Khai báo thư viện:
Đọc file dữ liệu vào và chia thành 2 tập X và y
In ra để xem có chính xác hay không
30
Trang 36Giảm chiều dữ liệu
31
Trang 37Sau đó tiến hành train dữ liệu
Và đây là kết quả:
32
Trang 38Trực quan hóa khi dùng SVR:
33
Trang 392.2 Các thuật toán Phân loại:
2.2.1 Logistic Regression:
a Thuật toán
Logistic Regression là một loại thuật toán Supervised Learning tính toán mối quan hệ
giữa các feature trong input và output dựa trên hàm logistic/sigmoid
Logistic regression là phương pháp hồi quy thông dụng áp dụng cho các biến mục tiêukhông phải là biến định lượng liên tục (continuous variable) Logistic regression đượcứng dụng để dự báo và phân lại giá trị của biến mục tiêu dựa trên dữ liệu có 2 giá trị ví
dụ như có rời dịch vụ hay không rời dịch vụ, phân loại khách hàng có khả năng trả nợ
để cấp phát thẻ tín dụng ( biến mục tiêu có 2 giá trị có hoặc không có khả năng trảnợ)
Khác với hồi quy tuyến tính, kết quả của phương trình hồi quy logistic là xác suất dựavào xác suất để quết định giá trị sau cùng của biến y Đối với hồi quy logistic, biến y
có 2 giá trị ví dụ như có và không, thành công và không thành công, sống và chết,còn sử dụng dịch vụ và không còn sử dụng dịch vụ Thông thường theo thông lệ thì sẽgán y=0 cho các kết quả “không” thất bại, chết, rời dịch vụ và gán y=1 cho giá trị cònlại
Với p là biến phụ thuộc, xác suất khả năng y xẩy ra 0 hoặc 1 (chịu ảnh hưởng của biếnx) là biến chúng ta sẽ dự báo, x là biến độc lập (biến tác động lên biến phụ thuộc) Bo
là giá trị ước lượng cho p khi x đạt giá trị 0, B1 dùng để xác định giá trị trung bình của
p tăng hay giảm khi x tăng
34
Trang 40Trong logistic regression được ứng dụng trong nhiều ngành và lĩnh vực khác nhau,một số ví dụ như:
● Dự báo phân loại email có phải spam hay không spam
● Dự báo khả năng rời hay không rời dịch vụ của khách hàng
● Dự báo tình trạng khối u ung thư là ác tính hay lành tính trong y học
● Dự báo khả năng khách hàng sẽ mua sản phẩm bất kỳ hay đăng ký dịch vụ
● Dự đoán khả năng trả nợ hay không trả nợ của khách hàng
Mô hình hồi quy logistic sẽ hướng đến tính toán, ước lượng xác suất để kết luận giá trịchứ không phải được dùng để tìm ra giá trị sau cùng của y
35
Trang 41Ở bài toán hồi quy đơn thức, ta đã tìm hiểu về bài toán tìm mức lương dựa trên số nămkinh nghiệm
36
Trang 42Hồi quy đơn thức sẽ vẽ vô số đường thẳng và tìm ra đường thẳng “best fit” giữa cácđiểm dữ liệu, và công thức quy về của hồi quy đơn thức là một đường thẳng có dạngy=b0 + b1*x
Giả sử như một người làm trong công ty và người này gửi email để đề nghị kháchhàng mua sản phẩm của bên họ (chẳng hạn như quần áo, mỹ phẩm, đồ lưu niệm, )
Và họ nhận được phản hồi từ phía khách hàng có hai kết quả là “Trả lời mail” vàkhông trả lời email, dựa trên độ tuổi
37
Trang 43Giá trị ouput đầu ra chỉ có giá trị 0 (không trả lời mail) và 1(trả lời lại email) và đượcphân bổ như hình vẽ bên dưới
Ở đây, trục tung sẽ biểu thị cho kết quả dự đoán(hành động trả lời email hay khôngcủa khách hàng) và trục hoành là độ tuổi, giá trị đầu vào để dự đoán Dự vào độ tuổi
dự đoán xem khách hàng người mà ta đề nghị có phản hồi email hay là không
38
Trang 44Nếu như ta dùng thuật toán linergression, đường thẳng này không thể fit được tất cảcác điểm dữ liệu Và đường thẳng khi dùng thuật toán hồi quy đơn thức thì chỉ cóvùng khoanh tròn(hình bên dưới) là hợp lệ ( vì giá trị dự đoán chỉ nằm trong khoảng 0
và 1, không nằm vượt ra bên ngoài) điểm dữ liệu cao nhất theo chiều trục tung là 1 vàthấp nhất là 0 ( hình mũi tên trên hình vẽ bên dưới
39
Trang 45Khoảng đường thẳng nằm ngoài giá trị 0 và 1(theo trục tung sẽ không hợp lệ( vì khảnăng dự đoán sẽ không là 101% hay -1%)
Ta thay thế 2 khoảng đường thẳng nằm ngoài giá trị 0 và 1 này bằng 2 khoảng đườngthẳng trên trục tung như hình bên dưới sẽ giúp fit với tập dữ liệu
40
Trang 46Ta gặp hàm sigmoid
Ta kết hợp với công thức hồi quy đơn thức
Lấy hai biểu thức trên thay vào nhau ta sẽ được công thức của hồi quy logistic
41
Trang 47Dựa vào tập dữ liệu quan sát và dùng công thức của linear regression ta sẽ tìm ra đượcđường thẳng màu xanh fit nhất với tập dữ liệu
Vậy đường thẳng màu xanh là logistic regression ta dùng nó để dự đoán khả năng cóhoặc không của sự vật, hành động nào đó
42
Trang 48Dựa vào hàm, ta có thể dự đoán tỷ lệ trả lời mail của những người có độ tuổi 20, 30,
40 , 50 lần lượt là 0.7; 23; 85 và 99.4
43
Trang 49Nhưng ở đây không phải vậy, thuật toán chỉ tìm ra output p là không hoặc 1 mà thôi.Thuật toán sẽ vẽ đường thẳng trung vị có p là 0.5, những điểm giá trị có chiếu qua trụctung p bé hơn 0.5 sẽ quy về 0, những điểm có giá trị lớn hơn hoặc bằng sẽ quy về 1.
Các ứng dụng trong thực tế:
Logistic Regression là một trong những thuật toán Machine Learning được sử dụng
phổ biến nhất Một vài ứng dụng điển hình là:
● Dự đoán email có phải spam hay không
● Dự đoán giao dịch ngân hàng là gian lận hay không
● Dự đoán khối u lành hay ác tính
● Dự đoán khoản vay có trả được không
● Dự đoán khoản đầu tư vào start-up có sinh lãi hay không
44
Trang 50Mô hình logistic (hay mô hình logic) được sử dụng để dự đoán xác suất của một lớphoặc sự kiện nhất định chẳng hạn như đạt hay không đạt, thắng hay thua, sống hoặcchết , khỏe mạnh hay bệnh tật Nó có thể được mở rộng để áp dụng cho một số lớp sựkiện như xác định xem một hình ảnh có chứa mèo, chó, sư tử, Mỗi đối tượng đượcphát hiện trong hình ảnh sẽ được gán một giá trị từ 0 đến 1, với tổng xác suất của haibiến đối lập là 1.
Hồi quy logistic là một mô hình thống kê sử dụng một hàm logistic để lập mô hìnhmột biến phụ thuộc có hai giá trị là 0 và 1 Trong phân tích hồi quy, hồi quy logistic(hay hồi quy logit) là ước lượng các tham số của mô hình (một dạng của hồi quy nhịphân) Ở mặt toán học, mô hình logistic nhị phân có một biến phụ thuộc với hai giá trị
có thể có, chẳng hạn như đạt hay không đạt được đại diện bởi một biến, trong đó giátrị được gắn nhãn "0" và "1"
Trong mô hình logistic, xác suất của biến phụ thuộc cho giá trị có nhãn là 0 hoặc 1 là
sự kết hợp tuyến tính của một hoặc nhiều biến độc lập (yếu tố dự báo) Mỗi biến độclập có thể là một biến nhị phân (được mã hóa bởi một biến cờ) hoặc một biến liên tục(bất kỳ giá trị thực nào) Xác suất tương ứng của giá trị được gắn nhãn giữa 1 và 0,nếu biến này có giá trị là 0 thì biến kia sẽ có giá trị là 1