1. Trang chủ
  2. » Tất cả

Tìm hiểu về machine learning và ứng dụng vào việc dự đoán giá nhà đất ở tp hồ chí minh

55 221 3
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm hiểu về machine learning và ứng dụng vào việc dự đoán giá nhà đất ở TP Hồ Chí Minh
Tác giả Mai Anh Nghĩa
Người hướng dẫn Nguyễn Thị Thanh Trúc
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Khoa Công Nghệ Phần Mềm
Thể loại Đồ Án
Năm xuất bản 2022
Thành phố Hồ Chí Minh
Định dạng
Số trang 55
Dung lượng 3,65 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ngoài ra, phát triển xây dựng mô hình dự đoán giá nhà ở Thành phố Hồ Chí Minh là một chủ đề khá hot trong những năm gần đây, nhất là trong thời đại mà giá của BĐS ngày càng tăng

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

Sinh viên thực hiện:

19521896 - Mai Anh Nghĩa

TP Hồ Chí Minh, ngày 13 tháng 12 năm 2022

Trang 2

LỜI CẢM ƠN

Trong quá trình học tập, nghiên cứu và phát triển đề tài “Tìm hiểu về Machine Learning và ứng dụng vào việc dự đoán giá nhà đất ở TP Hồ Chí Minh” em đã nhận được sự giúp đỡ, chỉ bảo

nhiệt tình của cô Nguyễn Thị Thanh Trúc để hoàn thành đồ án này

Em xin chân thành gửi lời cảm ơn đến cô Nguyễn Thị Thanh Trúc – Giảng viên Khoa Công nghệ phần mềm, Trường Đại học Công nghệ thông tin, Đại học Quốc gia Thành phố Hồ Chí Minh – giảng viên dạy hướng dẫn môn Đồ án 2, đã tận tình hướng dẫn và giúp đỡ về kiến thức, phương pháp cho chúng em trong suốt quá trình thực hiện và hoàn thành đồ án

Mặc dù đã có nhiều cố gắng trong suốt quá trình thực hiện đề tài, song không thể tránh khỏi những hạn chế, thiếu sót Chúng em mong rằng sẽ nhận được những đóng góp và nhận xét chân thành từ các cô để ngày càng hoàn thiện hơn nữa

Em xin chân thành cảm ơn

Thành phố Hồ Chí Minh, ngày 13 tháng 12 năm 2022

Trang 3

LỜI NHẬN XÉT CỦA GIẢNG VIÊN

………

………

………

……… ………

………

……… ………

………

……… ………

.……… …………

………

……… ………

………

……… ………

………

… ………

……… ………

………

……… ………

………

……… ………

……… ……

………

……… ………

………

………

Trang 4

Table of Contents

CHƯƠNG 1 7

TỔNG QUAN 7

1.1 GIỚI THIỆU CHUNG 7

1.2 CÁC NGHIÊN CỨU LIÊN QUAN ĐẾN ĐỀ TÀI 7

1.3 CÁC PHƯƠNG PHÁP VÀ MỤC TIÊU THỰC NGHIỆM 8

1.3.1 Các phương pháp 8

1.3.2 Mục tiêu 9

CHƯƠNG 2 9

CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ 9

2.1 ĐÔI NÉT VỀ MACHINE LEARNING 9

2.1.1 Khái niệm 9

2.1.2 Workflow trong Machine Learning 10

2.1.3 Các phương pháp Machine Learning 11

2.1.3.1 Supervised Learning – Học có giám sát 11

2.1.3.2 Unsupervised Learning – Học không giám sát 13

2.1.3.3 Semi-Supervised Learning – Học bán giám sát 14

2.1.3.4 Reinforcement Learning – Học tăng cường 15

2.1.4 Các thuật toán trong Machine Learning sẽ được sử dụng 16

2.1.4.1 Random Forest (Rừng ngẫu nhiên) 16

Trang 5

2.1.4.2 Linear Regression (Hồi quy tuyến tính) 19

2.1.4.3 Decision Tree (Cây quyết định) 21

2.1.4.4 Support Vector Regression (SVM) 22

2.2 CÁC CÔNG CỤ ĐƯỢC SỬ DỤNG TRONG BÀI TOÁN “D Ự ĐOÁN GIÁ NHÀ ĐẤT Ở TP HỒ CHÍ MINH” 24

2.2.1 Python 24

2.2.1.1 Ngôn ngữ Python 24

2.2.1.2 Thư viện Matplotlib 24

2.2.1.3 Thư viện Pandas 25

2.2.1.4 Thư viện NumPy 26

2.2.1.5 Thư viện Scikit-learn 27

2.2.1.6 Thư viện Seaborn 29

2.2.2 Selenium 29

2.2.3 Beautiful Soup 30

2.2.4 Google Colab 31

2.2.5 MySQL Workbench 31

2.2.6 Flask 31

CHƯƠNG 3 32

PHÂN TÍCH VÀ THIẾT KẾ 32

3.1 QUY TRÌNH ÁP DỤNG XÂY DỰNG BÀI TOÁN “DỰ ĐOÁN GIÁ NHÀ ĐẤT Ở TP HỒ CHÍ MINH” 32

3.1.1 Sơ đồ hoạt động của mô hình 32

3.1.2 Giai đoạn Initial và Plan 34

Trang 6

3.1.2.1 Các yếu tố ảnh hưởng đến giá nhà đất ở TP Hồ Chí Minh 34

3.1.2.2 Split Data thu thập được chia theo tỷ lệ nào ? 35

3.2 XÂY DỰNG DỰ ÁN “DỰ ĐOÁN GIÁ NHÀ ĐẤT Ở TP HỒ CHÍ MINH” 35

3.2.1 Giai đoạn Get Data 36

3.2.2 Giai đoạn Clean Data 38

3.2.2.1 Tổng quan bộ dữ liệu 38

3.2.2.2 Làm sạch dữ liệu 40

3.2.2.3 Visualazation bộ dữ liệu 42

3.2.3 Giai đoạn Train Model 45

3.2.4 Giai đoạn Test Data 46

3.2.5 Giai đoạn Improve 47

3.2.6 Giai đoạn Deploy 48

CHƯƠNG 4 53

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 53

4.1 KẾT LUẬN 53

4.1.1 Kết quả đạt được 53

4.1.2 Đánh giá về hệ thống 53

4.2 HƯỚNG PHÁT TRIỂN VÀ MỞ RỘNG 54

TÀI LIỆU THAM KHẢO 55

Trang 7

CHƯƠNG 1

TỔNG QUAN

1.1 Giới thiệu chung

Machine Learning là một trong những thuật ngữ mà chúng ta thường hay nghe đến trong lĩnh vực công nghệ thông tin cụ thể hơn là trí tuệ nhân tạo Thực chất đây chính là một lĩnh vực của trí tuệ nhân tạo, là một lĩnh vực quan trọng trong khoa học máy tính, được ứng dụng rộng rãi trong khắp các lĩnh vực đời sống trong nền cách mạng công nghiệp 4.0

Hiện nay, Machine Learning tỏ ra cực kỳ hiệu quả, hơn hẳn con người trong cụ thể lĩnh vực mà chúng được áp dụng Trong số đó không thể không kể đến như nhận dạng ảnh, chẩn đoán

y khoa, dự báo thời tiết, …

Bên cạnh Machine Learning, Deep Learning đã cho phép ứng dụng nhiếu vấn đề thực tế của máy học và bằng cách mở rộng lĩnh vực tổng thể của AI Deep learning phá vỡ các cách thức con người làm việc bằng cách làm cho tất cả các loại máy móc trợ giúp có thể thực hiện được, gần hoặc giống hệt con người

Ngoài ra, phát triển xây dựng mô hình dự đoán giá nhà ở Thành phố Hồ Chí Minh là một chủ đề khá hot trong những năm gần đây, nhất là trong thời đại mà giá của BĐS ngày càng tăng vọt nên em nghĩ rằng nếu có thể ứng dụng Machine Learning vào việc dự đoán giá nhà sẽ có tính thực tiễn cao, khi mà nó có thể giúp cho mọi người có cái nhìn tổng quan và có thể dễ dàng

so sánh giá nhà đất giữa những vùng liên quan

Vì vậy, khi nhận thấy được Machine Learning là một lĩnh vực ngày càng phổ biến, có tính ứng dụng cao và rộng rãi với nhiều mặt trong cuộc sống Nhóm em đã quyết định chọn đề tài tìm hiểu về Machine Learning và ứng dụng vào việc dự đoán giá nhà đất ở TP Hồ Chí Minh

1.2 Các nghiên cứu liên quan đến đề tài

Trang 8

Với nội dung của đề tài đồ án thì chúng em đã nghiên cứu, tập trung vào các chủ đề tìm hiểu về Machine Learning và các khía cạnh của bất động sản ở TP Hồ Chí Minh Ta sẽ đi sâu vào việc tìm hiểu các thành phần của một đối tượng bất động sản ví dụ như: chiều dài, chiều rộng, số tầng, số phòng ngủ, số nhà tắm, quận nào, Tiếp theo, ta sẽ tìm hiểu các cách tiếp cận của Machine Learning và áp dụng như thế nào, từ đó có thể chọn ra phương pháp phù hợp nhất cho việc dự đoán giá nhà đất, cụ thể đó là tìm hiểu về phương pháp hồi quy tuyến tính

Tiếp theo, hướng nghiên cứu quan trọng đến đề tài là các nhân tố ảnh hưởng đến giá nhà đất Khi lấy dữ liệu giá nhà đất của một đối tượng, có rất nhiều trường thuộc tính nhưng chỉ có một số ít lại có ảnh hưởng đến giá nhà đất, chứ không phải toàn bộ các trường Khi tìm hiểu, thì

em sẽ phân tích từng khía cạnh, thuộc tính để có thể chọn ra các yếu tố ảnh hưởng nhất đến giá nhà, từ đó có thể xây dựng mô hình với độ chính xác cao nhất Tiếp theo, tìm hiểu tất cả các thuật toán mà Machine Learning sử dụng, thử từng phương pháp mà từ đó có thể cho ra đời mô hình với độ chính xác cao nhất, bước này là bước khá quan trọng khi cần phải nắm rõ các kĩ thuật để chọn ra loại tốt nhất cho bước train model và improve

1.3 Các phương pháp và mục tiêu thực nghiệm

1.3.1 Các phương pháp

Để hoàn thành đồ án và bài báo cáo này, nhóm em đã tham khảo các tài liệu hướng dẫn được tìm thấy trên internet và các trang hướng dẫn Đầu tiên, nhóm em tìm hiểu về Machine Learning và các quy trình có trong một dự án Machine Learning đó là: Get Data, Clean Data, Train Model, Test Model, Improve Sau đó, nhóm em sẽ tiến hành tìm hiểu về các nhân tố trong bất động sản ảnh hưởng đến giá nhà đất

Rồi thực hiện theo quy trình Machine Learning: lấy dữ liệu crawl được từ trang web alonhadat, thực hiện làm sạch và train model ở trên Google Colab và tiến hành test với bộ dữ liệu khi được chia theo tỉ lệ 9:1 Có nghĩa là, khi dữ liệu đã được làm sạch, em sẽ tiến hành chia bộ dữ liệu này random ra 2 phần theo tỉ lệ 9:1 Phần nhiều nhất sẽ được sử dụng để train model và phần

Trang 9

còn lại sẽ được dùng để test Bước cuối cùng, em sẽ improve model theo các phương pháp khác nhau, đến khi model đưa ra kết quả với độ chính xác cao nhất

1.3.2 Mục tiêu

Mục tiêu của nhóm trước nhất là tìm hiểu về lĩnh vực Machine Learning Từ đó áp dụng các kiến thức thuật toán, thư viện, công cụ, ngôn ngữ lập trình… để có thể giải quyết bài toán dự đoán giá nhà đất

Tiếp theo, mục tiêu là tìm hiểu các phương pháp để trực quan hoá hệ thống, giúp người dùng dễ dàng sử dụng thông qua các thao tác đơn giản là nhập các thông số và dự đoán

Qua đó, có thể phần nào điều chỉnh các thông số phù hợp, có những bước xử lý dữ liệu đúng đắn để cải thiện các đặc tính về tốc độ và độ chính xác của mô hình nhóm đã chọn

Trong tương lai, chúng em có mong muốn sẽ xây dựng một hệ thống giúp người dùng có thể dự đoán giá nhà đất không chỉ ở khu vực TP Hồ Chí Minh mà còn ở các khu vực khác Hơn nữa, hi vọng hệ thống có thể cung cấp các thông tin về giá nhà đất theo thời gian thực khi data được lấy từ trang web và train liên tục

CHƯƠNG 2

CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ

2.1 Đôi nét về machine learning

2.1.1 Khái niệm

Machine learning (ML) hay máy học là một nhánh của trí tuệ nhân tạo (AI), nó là một lĩnh vực nghiên cứu cho phép máy tính có khả năng cải thiện chính bản thân chúng dựa trên dữ liệu

Trang 10

mẫu (training data) hoặc dựa vào kinh nghiệm (những gì đã được học) Machine learning có thể

tự dự đoán hoặc đưa ra quyết định mà không cần được lập trình cụ thể

Quá trình học bắt đầu bằng các quan sát hoặc dữ liệu Ví dụ, để tìm kiếm các mẫu trong dữ liệu và đưa ra quyết định tốt hơn trong tương lai dựa trên chính các ví dụ mà chúng được cung cấp Mục đích chính là cho phép các máy tính tự động học mà không cần sự can thiệp hay trợ giúp của con người và điều chỉnh các hành động tương ứng

Deep Learning là một tập hợp con của Machine Learning, có khả năng khác biệt ở một số khía cạnh quan trọng so với Machine Learning nông truyền thống, cho phép máy tính giải quyết một loạt các vấn đề phức tạp không thể giải quyết được

2.1.2 Workflow trong Machine Learning

Nhìn chung, Machine Learning có 5 bước quan trọng như sau:

1 Data collection – thu thập dữ liệu: để máy tính có thể học được bạn cần có một bộ dữ liệu (dataset), bạn có thể tự thu thập chúng hoặc lấy các bộ dữ liệu đã được công bố trước đó Lưu ý là bạn phải thu thập từ nguồn chính thống, có như vậy dữ liệu mới chính xác và máy có thể học một cách đúng đắng và đạt hiệu quả cao hơn

2 Preprocessing – tiền xử lý: bước này dùng để chuẩn hóa dữ liệu, loại bỏ các thuộc tính không cần thiết, gán nhãn dữ liệu, mã hóa một số đặc trưng, trích xuất đặc trưng, rút gọn dữ liệu nhưng vẫn đảm bảo kết quả… Bước này tốn thời gian nhất tỉ lệ thuận với số lượng dữ liệu bạn có Bước 1 và 2 thường chiếm hơn 70% tổng thời gian thực hiện

3 Training model – huấn luyện mô hình: bước này là bước bạn huấn luyện cho mô hình hay chính là cho nó học trên dữ liệu bạn đã thu thập và xử lý ở hai bước đầu

4 Evaluating model – đánh giá mô hình: sau khi đã huấn luyện mô hình xong, chúng ta cần dùng các độ đo để đánh giá mô hình, tùy vào từng độ đo khác nhau mà mô hình

Trang 11

cũng được đánh giá tốt hay không khác nhau Độ chính xác của mô hình đạt trên 80% được cho là tốt

5 Improve – cải thiện: sau khi đã đánh giá mô hình, các mô hình đạt độ chính xác không tốt thì cần được train lại, chúng ta sẽ lặp lại từ bước 3, cho đến khi đạt độ chính xác như

kỳ vọng Tổng thời gian của 3 bước cuối rơi vào khoảng 30% tổng thời gian thực hiện

Hình 1 Các bước cơ bản trong một dự án Machine Learning

2.1.3 Các phương pháp Machine Learning

2.1.3.1 Supervised Learning – Học có giám sát

Phần lớn các ứng dụng học máy thực tế đều sử dụng học tập có giám sát – supervised learning

Học tập có giám sát là nơi bạn có các biến đầu vào (X) và biến đầu ra (Y) và bạn sử dụng thuật toán để tìm hiểu hàm ánh xạ từ đầu vào đến đầu ra

Trang 12

Việc học tập có giám sát có thể được nhóm lại thành các vấn đề về phân loại và hồi quy Hai loại tiếp cận đặc trưng của học có giám sát là:

- Phân loại (Classification): Việc phân loại diễn ra khi biến đầu ra là một thể loại nào đó, chẳng hạn như “đỏ” hoặc “xanh” hoặc “bệnh” và “không có bệnh”

- Hồi quy (Regression): Việc hồi quy xảy ra là khi biến đầu ra là một giá trị thực, chẳng hạn như “đô la” hay “trọng lượng”

Một số loại vấn đề phổ biến được xây dựng trên việc phân loại và hồi quy tương ứng với cơ chế gợi ý và dự đoán dãy thời gian

Một số ví dụ phổ biến của thuật toán học máy được giám sát là:

- Hồi quy tuyến tính cho các vấn đề hồi quy

- Nguyên lý “Khu rừng ngẫu nhiên” cho việc phân loại và hồi quy

Trang 13

- Hỗ trợ các hệ máy vector cho các vấn đề về phân loại

Hình 2 Phương pháp học có giám sát 2.1.3.2 Unsupervised Learning – Học không giám sát

Unsupervised Learning là một nhóm thuật toán hay phương pháp kỹ thuật cho phép máy

tự học hỏi và tìm ra một mô hình hay cấu trúc nào đó ẩn trong một bộ dữ liệu không được gắn nhãn trước Điều này đồng nghĩa với việc chúng ta chỉ có bộ dữ liệu đầu vào và hoàn toàn không

biết outcome là gì

Mục tiêu của Học Không Giám Sát là mô hình hóa cấu trúc, nền tảng hoặc sự phân bổ trong

bộ dữ liệu để hiểu hơn về nó Các thuật toán Unsupervised Learning được tạo ra để khám phá, phân tích và thể hiện những cấu trúc có ích ẩn bên trong bộ dữ liệu được nạp vào

Không giám sát thường được sử dụng cho dữ liệu giao dịch

Học máy không giám sát là nơi bạn chỉ có dữ liệu đầu vào (X) và không có biến đầu ra tương ứng

Trang 14

Mục tiêu của việc học không giám sát là để mô hình hóa cấu trúc nền tảng hoặc sự phân bố trong dữ liệu để hiểu rõ hơn về nó

Đây được gọi là học tập không giám sát vì không giống như việc học có giám sát ở trên, không có câu trả lời đúng và không có vị “giáo viên” nào cả Các thuật toán được tạo ra chỉ để khám phá và thể hiện các cấu trúc hữu ích bên trong dữ liệu

Hình 3 Phương pháp học không giám sát 2.1.3.3 Semi-Supervised Learning – Học bán giám sát

Khi bạn xây dựng mô hình trên một lượng lớn dữ liệu đầu vào (X) mà chỉ có một số dữ liệu được dán nhãn (Y) được gọi là việc học tập có giám sát một phần

Học bán giám sát nằm giữa việc học tập được giám sát và không giám sát

Học bán giám sát là một lớp của kỹ thuật học máy, sử dụng cả dữ liệu đã gán nhãn và chưa gán nhãn để huấn luyện - điển hình là một lượng nhỏ dữ liệu có gán nhãn cùng với lượng lớn dữ

Trang 15

liệu chưa gán nhãn Học bán giám sát đứng giữa học không giám sát (không có bất kì dữ liệu có nhãn nào) và có giám sát (toàn bộ dữ liệu đều được gán nhãn)

Nhiều nhà nghiên cứu nhận thấy dữ liệu không gán nhãn, khi được sử dụng kết hợp với một chút dữ liệu có gán nhãn, có thể cải thiện đáng kể độ chính xác

Để gán nhãn dữ liệu cho một bài toán học máy thường đòi hỏi một chuyên viên có kĩ năng

để phân loại bằng tay các ví dụ huấn luyện Chi phí cho quy trình này khiến tập dữ liệu được gán nhãn hoàn toàn trở nên không khả thi, trong khi dữ liệu không gán nhãn thường tương đối rẻ tiền Trong tình huống đó, học nửa giám sát có giá trị thực tiễn lớn lao

Một ví dụ cho kỹ thuật học máy nửa giám sát là đồng huấn luyện (co-training), trong đó một hay nhiều bộ học được huấn luyện cùng một tập ví dụ nhưng mỗi bộ sử dụng một tập đặc trưng khác nhau, lý tưởng nhất là độc lập với nhau

2.1.3.4 Reinforcement Learning – Học tăng cường

Học tăng cường là một lĩnh vực của ML Đó là việc thực hiện hành động phù hợp để tối đa hóa phần thưởng trong một tình huống cụ thể Nó được sử dụng bởi các phần mềm và ML khác nhau để tìm ra hành vi hoặc đường dẫn tốt nhất có thể mà nó nên thực hiện trong một tình huống

cụ thể

Học tăng cường khác với học có giám sát ở chỗ trong học có giám sát, dữ liệu huấn luyện có khóa trả lời với nó, do đó mô hình được huấn luyện với câu trả lời chính xác trong khi trong học củng cố, không có câu trả lời nhưng tác nhân củng cố quyết định phải làm gì để thực hiện nhiệm vụ đã cho Trong trường hợp không có tập dữ liệu đào tạo, nó nhất định phải học hỏi kinh nghiệm của nó

Môi trường thường được biểu diễn dưới dạng một quá trình quyết định Markov trạng thái hữu hạn (Markov decision process - MDP), và các thuật toán học tăng cường cho ngữ cảnh này

Trang 16

có liên quan nhiều đến các kỹ thuật quy hoạch động Các xác suất chuyển trạng thái và các xác suất thu lợi trong MDP thường là ngẫu nhiên nhưng lại tĩnh trong quá trình của bài toán (stationary over the course of the problem)

Khác với học có giám sát, trong học tăng cường không có các cặp dữ liệu vào/kết quả đúng, các hành động gần tối ưu cũng không được đánh giá đúng sai một cách tường minh Hơn nữa, ở đây hoạt động trực tuyến (on-line performance) được quan tâm, trong đó có việc tìm kiếm một sự cân bằng giữa khám phá (lãnh thổ chưa lập bản đồ) và khai thác (tri thức hiện có)

Hình 4 Phương pháp học tăng cường

2.1.4 Các thuật toán trong Machine Learning sẽ được sử dụng

2.1.4.1 Random Forest (Rừng ngẫu nhiên)

Khái niệm:

Trang 17

Hình 5 Thuật toán Random Forest

Rừng ngẫu nhiên là một thuật toán học có giám sát Như tên gọi của nó, Rừng ngẫu nhiên sử dụng các cây (tree) để làm nền tảng

Rừng ngẫu nhiên là một tập hợp của các Decision Tree, mà mỗi cây được chọn theo một thuật toán dựa vào ngẫu nhiên

Decision Tree là tên đại diện cho một nhóm thuật toán phát triển dựa trên Cây quyết định

Ở đó, mỗi Node của cây sẽ là các thuộc tính, và các nhánh là giá trị lựa chọn của thuộc tính đó Bằng cách đi theo các giá trị thuộc tính trên cây, cây quyết định sẽ cho ta biết giá trị dự đoán

Random Forest algorithm có thể sử dụng cho cả bài toán Classification và Regression

Ưu, nhược điểm:

a Ưu điểm:

Random Forests được coi là một phương pháp chính xác và mạnh mẽ vì số cây quyết định tham gia vào quá trình này Nó không bị vấn đề overfitting Lý do chính là nó mất trung bình của tất cả các dự đoán, trong đó hủy bỏ những thành kiến Thuật toán có thể được sử dụng trong cả

Trang 18

hai vấn đề phân loại và hồi quy Random Forests cũng có thể xử lý các giá trị còn thiếu Có hai cách để xử lý các giá trị này:

 Sử dụng các giá trị trung bình để thay thế các biến liên tục

 Tính toán mức trung bình gần kề của các giá trị bị thiếu

 Thuật toán Random Forest gồm nhiều cây quyết định, mỗi cây quyết định đều có những yếu tố ngẫu nhiên:

 Lấy ngẫu nhiên dữ liệu để xây dựng cây quyết định

 Lấy ngẫu nhiên các thuộc tính để xây dựng cây quyết định

Do mỗi cây quyết định trong thuật toán Random Forest không dùng tất cả dữ liệu training, cũng như không dùng tất cả các thuộc tính của dữ liệu để xây dựng cây nên mỗi cây có thể sẽ dự đoán không tốt, khi đó mỗi mô hình cây quyết định không bị overfitting mà có thế bị underfitting, hay nói cách khác là mô hình có high bias

Tuy nhiên, kết quả cuối cùng của thuật toán Random Forest lại tổng hợp từ nhiều cây quyết định, thế nên thông tin từ các cây sẽ bổ sung thông tin cho nhau, dẫn đến mô hình có low bias và low variance, hay mô hình có kết quả dự đoán tốt

Ví dụ: Mọi người muốn mua 1 sản phẩm trên tiki chẳng hạn, khi đọc review sản phẩm, nếu chỉ đọc 1 review thì có thể là ý kiến chủ quan, hoặc là do sản phẩm đó không may bị lỗi gì Chính

vì thế, thông thường để có cái nhìn tốt về sản phẩm, chúng ta nên đọc tất cả review để cho ra quyết định cuối cùng

b Nhược điểm:

Random Forests chậm tạo dự đoán bởi vì nó có nhiều cây quyết định Bất cứ khi nào nó

đưa ra dự đoán, tất cả các cây trong rừng phải đưa ra dự đoán cho cùng một đầu vào cho trước và sau đó thực hiện bỏ phiếu trên đó Toàn bộ quá trình này tốn thời gian Mô hình khó hiểu hơn so

với Decision Tree, nơi bạn có thể dễ dàng đưa ra quyết định bằng cách đi theo đường dẫn trong

Trang 19

2.1.4.2 Linear Regression (Hồi quy tuyến tính)

Khái Niệm:

Hình 6 Thuật toán Hồi quy tuyến tính

Hồi quy tuyến tính là một kỹ thuật phân tích dữ liệu dự đoán giá trị của dữ liệu không xác định bằng cách sử dụng một giá trị dữ liệu liên quan và đã biết khác Nó mô hình toán học biến không xác định hoặc phụ thuộc và biến đã biết hoặc độc lập như một phương trình tuyến tính Trong bài toán dự đoán giá nhà đất ở TP Hồ Chí Minh, mô hình hồi quy tuyến tính có thể được hiểu là khi ta đã có bộ dữ liệu về các bất động sản ở các vùng khác nhau, từ đó ta có thể xây dựng một mô hình hồi quy tuyến tính mà có thể sử dụng để dự đoán giá nhà đất ở các vùng tương tự

hoặc các vùng mới

Các mô hình hồi quy tuyến tính tương đối đơn giản và cung cấp một công thức toán học

dễ giải thích để đưa ra các dự đoán Hồi quy tuyến tính là một kỹ thuật thống kê được sử dụng từ lâu và áp dụng dễ dàng cho phần mềm và tính toán Các nhà khoa học trong nhiều lĩnh vực, bao gồm sinh học và các ngành khoa học hành vi, môi trường, và xã hội, sử dụng hồi quy tuyến tính

để tiến hành phân tích dữ liệu sơ bộ và dự đoán các xu hướng tương lai Nhiều phương pháp khoa

Trang 20

học dữ liệu, chẳng hạn như máy học và trí tuệ nhân tạo, sử dụng hồi quy tuyến tính để giải quyết các bài toán phức tạp

Về bản chất, một kỹ thuật hồi quy tuyến tính đơn giản cố gắng vẽ một đồ thị đường giữa hai biến dữ liệu, x và y Là biến độc lập, x được vẽ dọc theo trục hoành Các biến độc lập còn được gọi là biến giải thích hoặc biến dự báo Biến phụ thuộc, y, được vẽ trên trục tung Bạn cũng

có thể tham chiếu các giá trị y như các biến phản hồi hoặc các biến dự báo

Ưu, nhược điểm:

a Ưu điểm:

 Vì các mạng thần kinh có thể có nhiều lớp (và do đó là các tham số) với các phi tuyến tính, nên chúng rất hiệu quả trong việc mô hình hóa các mối quan hệ phi tuyến tính rất phức tạp

 Chúng tôi nói chung don don phải lo lắng về cấu trúc dữ liệu tại các mạng thần kinh rất linh hoạt trong việc học hầu hết mọi loại mối quan hệ biến đổi tính năng

 Nghiên cứu đã chỉ ra rằng chỉ cần cung cấp cho mạng nhiều dữ liệu đào tạo hơn, cho dù hoàn toàn mới hoặc từ việc tăng bộ dữ liệu gốc, sẽ mang lại hiệu quả cho mạng

b Nhược điểm:

 Do sự phức tạp của các mô hình này, chúng không dễ hiểu và để hiểu

 Chúng có thể khá khó khăn và tính toán chuyên sâu để sử dụng, đòi hỏi phải điều chỉnh siêu tham số cẩn thận và thiết lập lịch trình tỷ lệ học tập

 Chúng đòi hỏi rất nhiều dữ liệu để đạt được hiệu năng cao và thường vượt trội hơn so

Trang 21

2.1.4.3 Decision Tree (Cây quyết định)

Khái niệm:

Hình 7 Thuật toán Decision Tree

Cây quyết định (Decision Tree) là một cây phân cấp có cấu trúc được dùng để phân lớp các đối tượng dựa vào dãy các luật Các thuộc tính của đối tượngncó thể thuộc các kiểu dữ liệu khác nhau như Nhị phân (Binary) , Định danh (Nominal), Thứ tự (Ordinal), Số lượng

(Quantitative) trong khi đó thuộc tính phân lớp phải có kiểu dữ liệu là Binary hoặc Ordinal

Tóm lại, cho dữ liệu về các đối tượng gồm các thuộc tính cùng với lớp (classes) của nó,

cây quyết định sẽ sinh ra các luật để dự đoán lớp của các dữ liệu chưa biết

Ưu, nhược điểm:

a Ưu điểm:

 Mô hình dễ hiểu và dễ giải thích

Trang 22

 Cần ít dữ liệu để huẩn luyện

 Có thể xử lý tốt với dữ liệu dạng số (rời rạc và liên tục) và dữ liệu hạng mục

 Mô hình dạng white box rõ ràng

 Xây dựng nhanh

 Phân lớp nhanh

b Nhược điểm:

 Không đảm bảo xây dựng được cây tối ưu

 Có thể overfitting (tạo ra những cây quá khớp với dữ liệu huấn luyện hay quá phức tạp)

 Thường ưu tiên thuộc tính có nhiều giá trị (khắc phục bằng các sử dụng Gain Ratio)

2.1.4.4 Support Vector Regression (SVM)

Khái Niệm:

Hình 8 Thuật toán Support Vector Regression

SVM là một thuật toán giám sát, nó có thể sử dụng cho cả việc phân loại hoặc đệ quy Tuy

nhiên nó được sử dụng chủ yếu cho việc phân loại Trong thuật toán này, chúng ta vẽ đồi thị dữ

Trang 23

năng sẽ là một phần liên kết Sau đó chúng ta thực hiện tìm "đường bay" (hyper-plane) phân chia

các lớp Hyper-plane nó chỉ hiểu đơn giản là 1 đường thẳng có thể phân chia các lớp ra thành hai

phần riêng biệt Support Vectors hiểu một cách đơn giản là các đối tượng trên đồ thị tọa độ quan

sát, Support Vector Machine là một biên giới để chia hai lớp tốt nhất

Là một kĩ thuật phân lớp khá phổ biến, SVM thể hiện được nhiều ưu điểm trong số đó có việc tính toán hiệu quả trên các tập dữ liệu lớn

Ưu, nhược điểm:

a Ưu điểm:

 Xử lý trên không gian số chiều cao: SVM là một công cụ tính toán hiệu quả trong không gian chiều cao, trong đó đặc biệt áp dụng cho các bài toán phân loại văn bản và phân tích quan điểm nơi chiều có thể cực kỳ lớn

 Tiết kiệm bộ nhớ: Do chỉ có một tập hợp con của các điểm được sử dụng trong quá trình huấn luyện và ra quyết định thực tế cho các điểm dữ liệu mới nên chỉ có những điểm cần thiết mới được lưu trữ trong bộ nhớ khi ra quyết định

 Tính linh hoạt - phân lớp thường là phi tuyến tính Khả năng áp dụng Kernel mới cho phép linh động giữa các phương pháp tuyến tính và phi tuyến tính từ đó khiến cho hiệu suất phân loại lớn hơn

Trang 24

quả của việc phân lớp có thể được xác định dựa vào khái niệm margin từ điểm dữ liệu mới đến siêu phẳng phân lớp mà chúng ta đã bàn luận ở trên

2.2 Các công cụ được sử dụng trong bài toán “Dự đoán giá nhà đất ở TP Hồ Chí Minh”

2.2.1 Python

2.2.1.1 Ngôn ngữ Python

Python là một ngôn ngữ lập trình được sử dụng rộng rãi trong các ứng dụng web, phát triển phần mềm, khoa học dữ liệu và máy học (ML) Các nhà phát triển sử dụng Python vì nó hiệu quả,

dễ học và có thể chạy trên nhiều nền tảng khác nhau Phần mềm Python được tải xuống miễn phí,

tích hợp tốt với tất cả các loại hệ thống và tăng tốc độ phát triển

Python cho phép các lập trình viên thực hiện viết code ngắn, dễ đọc hơn trong khi các thuật toán phức tạp và quy trình làm việc linh hoạt của Học máy, AI dễ làm hệ thống trở nên phức tạp thì, tính đơn giản của Python là giải pháp cho phép các lập trình viên viết ra các hệ thống đáng tin cậy hơn

Cho phép truy cập vào các thư viện và framework tuyệt vời cho AI và Machine learning (ML)

Việc thực hiện các thuật toán AI và ML có thể rất khó và mất nhiều thời gian nên có một môi trường được cấu trúc tốt và được thử nghiệm tốt là rất quan trọng

Trong bài toán này, nhóm em sử dụng ngôn ngữ Python cho hầu hết các bước trong quá

trình xây dựng đồ án Machine Learning, đó là lấy dữ liệu, xử lý dữ liệu và thực hiện demo

2.2.1.2 Thư viện Matplotlib

Trang 25

Các nhà phát triển sử dụng Matplotlib để hiển thị dữ liệu dưới dạng đồ họa hai và ba chiều (2D và 3D) chất lượng cao Thư viện này thường được sử dụng trong các ứng dụng khoa học Với Matplotlib, bạn có thể trực quan hóa dữ liệu bằng cách hiển thị dữ liệu dưới dạng các biểu đồ khác nhau, chẳng hạn như biểu đồ cột và biểu đồ đường Bạn cũng có thể hiển thị nhiều biểu đồ cùng lúc và các chi tiết đồ họa có thể được di chuyển qua mọi nền tảng

Thành phần:

Các thành phần của một MATPLOTLIB figure:

Figure: Là một khung cửa sổ chứa tất cả những gì chúng ta vẽ trên đó

Axes (những khung nhỏ hơn để vẽ hình lên đó): Thành phần chính của một figure Một

figure có thể chứa một hoặc nhiều axes Có thể hiểu, trong khi figure chỉ là khung chứa thì chính các axes mới thật sự là nơi các hình vẽ được vẽ lên

Axis: Là dòng số giống như các đối tượng và đảm nhiệm việc tạo các giới hạn biểu đồ

Artist: Mọi thứ mà ta có thể nhìn thấy trên figure là một artist như Text objects, Line2D

objects, collection objects Hầu hết các Artists được gắn với Axes

 Sử dụng thư viện Matplotlib trong bài toán này giúp trực quan hoá dữ liệu, giúp người lập trình có cái nhìn tổng quan về sự phân bố dữ liệu để có thể lựa chọn cách xử lý và xây dựng model phù hợp

2.2.1.3 Thư viện Pandas

Trang 26

công cụ quan trọng trong việc hỗ trợ, xử lý và phân tích dữ liệu với mã nguồn mở nhanh, mạnh, linh hoạt và dễ sử dụng

Thành phần:

Hai thành phần chính của Pandas là Series và DataFrame

Một Series về cơ bản là một cột và một DataFrame là một bảng đa chiều được tạo thành

từ một tập hợp các Chuỗi (Series)

Hình 9 Series và Dataframe trong Pandas

Tạo DataFrames ngay bằng Python là điều cần biết và khá hữu ích khi thử nghiệm các phương pháp và chức năng mới trong docs của Pandas

Có rất nhiều các để tạo mới một DataFrame, một trong những lựa chọn tuyệt vời là sử dụng dict

2.2.1.4 Thư viện NumPy

Giới thiệu

Trang 27

NumPy là một thư viện phổ biến mà các nhà phát triển sử dụng để dễ dàng tạo và quản lý nhóm, thao tác với các hình dạng logic và thực hiện các phép toán đại số tuyến tính NumPy hỗ trợ tích hợp với nhiều ngôn ngữ như C và C ++

Numpy (Numeric Python): là một thư viện toán học rât phổ biến và mạnh mẽ của Python NumPy được trang bị các hàm số đã được tối ưu, cho phép làm việc hiệu quả với ma trận và mảng,

đặc biệt là dữ liệu ma trận và mảng lớn với tốc độ xử lý nhanh hơn nhiều lần khi chỉ sử dụng

Python đơn thuần

Ứng dụng:

 Các phép toán toán học và logic trên mảng

 Các biến đổi Fourier và các quy trình để thao tác shape

 Các phép toán liên quan đến đại số tuyến tính NumPy tích hợp sẵn các hàm cho đại số tuyến tính và tạo số ngẫu nhiên

 NumPy - Sự thay thế tốt cho MatLab

2.2.1.5 Thư viện Scikit-learn

Giới thiệu:

Scikit-learn (Sklearn) là thư viện mạnh mẽ nhất dành cho các thuật toán học máy được viết trên ngôn ngữ Python Thư viện cung cấp một tập các công cụ xử lý các bài toán machine learning

và statistical modeling gồm: classification,regression,clustering, và dimensionality reduction

Thư viện được cấp phép bản quyền chuẩn FreeBSD và chạy được trên nhiều nền tảng Linux Scikit-learn được sử dụng như một tài liệu để học tập

Ngày đăng: 01/02/2023, 21:11

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w