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 2LỜ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 3LỜI NHẬN XÉT CỦA GIẢNG VIÊN
………
………
………
……… ………
………
……… ………
………
……… ………
.……… …………
………
……… ………
………
……… ………
………
… ………
……… ………
………
……… ………
………
……… ………
……… ……
………
……… ………
………
………
Trang 4Table 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 52.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 63.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 7CHƯƠ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 8Vớ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 9cò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 10mẫ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 11cũ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 12Việ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 14Mụ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 15liệ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 16có 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 17Hì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 18hai 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 192.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 20họ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 212.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 23nă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 24quả 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 25Cá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 26cô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 27NumPy 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