Đồ án 1: Phân tích dữ liệu và dự báo trong kinh doanh bất động sản (UIT)

Tài liệu đồ án phân tích dữ liệu, dự báo giá bất động sản. Ứng dụng thuật toán Random Forest để xây dựng mô hình, xử lý và trực quan hóa dữ liệu.

2024

60
1
0

Phí lưu trữ

30 Point

Tóm tắt

I. Tổng quan về Đồ án Phân tích Dữ liệu Dự báo giá Bất động sản

Đồ án Phân tích Dữ liệu & Dự báo giá Bất động sản là một dự án học tập toàn diện nhằm ứng dụng các kỹ thuật machine learningphân tích dữ liệu trong lĩnh vực kinh doanh bất động sản. Đề tài được thực hiện tại Trường Đại học Công nghệ Thông tin, Đại học Quốc gia TP. HCM, dưới sự hướng dẫn của Ths. Trần Anh Dũng. Mục đích chính của đồ án là xây dựng mô hình dự báo giá nhà ở bằng cách phân tích và xử lý các dữ liệu thực tế từ thị trường bất động sản. Thông qua đó, giúp các nhà đầu tư, người mua bán và các chuyên gia trong lĩnh vực có thể đưa ra quyết định kinh doanh chính xác và hiệu quả hơn.

1.1. Lý do và mục đích chọn đề tài

Trong lĩnh vực bất động sản, việc xác định giá cả là một thách thức lớn do ảnh hưởng từ nhiều yếu tố phức tạp như diện tích, vị trí, pháp lý. Phân tích dữ liệu bất động sản giúp xây dựng các mô hình dự báo chính xác, tiết kiệm thời gian và chi phí. Đề tài hướng tới việc tự động hóa quá trình định giá và cung cấp công cụ hỗ trợ quyết định cho các bên liên quan trong ngành bất động sản.

1.2. Phạm vi và đối tượng nghiên cứu

Phạm vi nghiên cứu bao gồm các dữ liệu giá nhà ở thực tế tại thị trường bất động sản TP. HCM. Đối tượng sử dụng đề tài hướng tới các nhà phát triển phần mềm, chuyên gia phân tích dữ liệu, nhà đầu tư bất động sản và các tổ chức môi giới bất động sản. Nghiên cứu tập trung vào các đặc trưng dữ liệu như diện tích, loại nhà, vị trí địa lý, giấy tờ pháp lý để xây dựng mô hình dự báo giá bất động sản hiệu quả.

II. Công cụ Thư viện và Xử lý Dữ liệu

Để thực hiện đồ án phân tích dữ liệu bất động sản, dự án sử dụng nhiều công cụ và thư viện lập trình hiện đại. Jupyter Notebook được lựa chọn làm nền tảng chính cho phép viết code, chạy thử và trực quan hóa kết quả trong một môi trường tích hợp. Thư viện scikit-learn cung cấp các thuật toán machine learning mạnh mẽ, trong khi pandas, numpy, matplotlib hỗ trợ xử lý dữ liệu bất động sản và tạo biểu đồ trực quan. Quá trình xử lý dữ liệu bao gồm làm sạch dữ liệu, loại bỏ giá trị rỗng, chuyển đổi kiểu dữ liệu và xử lý các outlier để đảm bảo chất lượng dữ liệu đầu vào cho mô hình.

2.1. Lợi ích của Jupyter Notebook trong Phân tích Dữ liệu

Jupyter Notebook cung cấp môi trường tương tác giúp phân tích dữ liệu bất động sản dễ dàng hơn. Nó hỗ trợ GPU và TPU miễn phí, cho phép tính toán nhanh chóng trên dữ liệu lớn. Khả năng lưu trữ trên đám mây và tích hợp trực quan hóa dữ liệu giúp nhà phân tích hiểu rõ xu hướng giá bất động sản và các mối tương quan giữa các biến trong dữ liệu.

2.2. Quy trình Xử lý và Làm sạch Dữ liệu

Xử lý dữ liệu bất động sản bao gồm nhiều bước: chuyển đổi kiểu dữ liệu, loại bỏ các hàng có giá trị rỗng, áp dụng One-Hot Encoding cho dữ liệu phân loại, và sử dụng phương pháp IQR để loại bỏ outlier. Các bước này đảm bảo dữ liệu đầu vào có chất lượng cao, giúp mô hình dự báo giá nhà ở hoạt động chính xác và hiệu quả hơn.

III. Xây dựng Mô hình Dự báo với Thuật toán Random Forest

Thuật toán Random Forest được lựa chọn làm phương pháp chính để xây dựng mô hình dự báo giá bất động sản. Đây là một thuật toán machine learning mạnh mẽ, tạo ra nhiều cây quyết định độc lập thông qua bootstrapping và kết hợp kết quả của chúng để đưa ra dự đoán chính xác. Ưu điểm của Random Forest bao gồm khả năng xử lý dữ liệu phức tạp, tự động xử lý các giá trị rỗng, và cung cấp chỉ số tầm quan trọng đặc trưng. Quá trình xây dựng mô hình bao gồm chia dữ liệu theo tỷ lệ 80:20 cho huấn luyện và kiểm tra, sử dụng Grid Search để tối ưu hóa các thông số, và đánh giá độ chính xác mô hình bằng các metric như R² score và Mean Absolute Error.

3.1. Cơ chế hoạt động của Random Forest

Random Forest xây dựng mô hình dự báo bất động sản bằng cách chia dữ liệu thành nhiều mẫu con (bootstrapping), sau đó xây dựng các cây quyết định độc lập trên mỗi mẫu. Kết quả cuối cùng được xác định bằng cách lấy trung bình (đối với hồi quy) hoặc bầu cử theo đa số (đối với phân loại). Cách tiếp cận này giúp giảm overfitting và tăng độ chính xác dự báo giá nhà ở.

3.2. Tối ưu hóa Thông số và Đánh giá Mô hình

Để đạt mô hình dự báo tốt nhất, dự án sử dụng Grid Search tìm kiếm tất cả các tổ hợp thông số Random Forest. Sau đó, mô hình được huấn luyện với các thông số tối ưu và kiểm tra trên dữ liệu test. Đánh giá độ chính xác mô hình thông qua các metric như R² score, MAE giúp xác định hiệu suất dự báo giá bất động sản trên dữ liệu chưa từng gặp.

IV. Triển khai và Ứng dụng Thực tế

Sau khi hoàn thành xây dựng mô hình dự báo giá bất động sản, dự án tiến hành đóng gói mô hình và lưu trữ nó để sử dụng trong các ứng dụng thực tế. Mô hình được tích hợp vào API cho phép người dùng nhập dữ liệu thông tin bất động sản thực tế và nhận được dự báo giá nhà ở tức thì. Đề tài hướng tới việc cung cấp công cụ hỗ trợ quyết định cho nhà đầu tư bất động sản, môi giới, và các chuyên gia phân tích thị trường. Kết quả của dự án chứng minh rằng phân tích dữ liệu và machine learning có thể cải thiện đáng kể độ chính xác định giá và hỗ trợ tối ưu hóa các quyết định kinh doanh trong lĩnh vực bất động sản.

4.1. Đóng gói và Triển khai Mô hình

Mô hình Random Forest được đóng gói thành một file duy nhất, cho phép tải lại và sử dụng mà không cần huấn luyện lại. Quá trình triển khai mô hình dự báo bất động sản bao gồm lưu các tham số huấn luyện, scaler dữ liệu, và encoder phân loại. Điều này đảm bảo mô hình hoạt động nhất quán khi xử lý dữ liệu bất động sản mới.

4.2. Xây dựng API và Hướng phát triển

API dự báo giá bất động sản cho phép nhập thông tin bất động sản thực tế và nhận kết quả dự báo giá nhà ở trong vài giây. Hướng phát triển tương lai bao gồm tích hợp dữ liệu thị trường real-time, mở rộng phạm vi dự báo đến các khu vực khác, và cải thiện độ chính xác mô hình bằng các thuật toán học sâu hiện đại.

28/12/2025

Trích đoạn nội dung tài liệu

Chương 1.1 Lý do chọn đề tài: Việc phân tích và định giá bất động sản luôn gặp nhiều khó khăn vì có rất nhiều yếu tố đi kèm ảnh hưởng đến giá của một bất động sản. Việc xây dựng một mô hình dự đoán sẽ giúp cho việc định giá bất động sản được thực hiện dễ dàng hơn, giúp nhà đầu tư có thể định giá bất động sản dựa dữ liệu đáng tin cậy. Đây là một giải pháp thiết thực, đáp ứng nhu cầu của các nhà đầu tư. Tích hợp các công nghệ phân tích và mô hình hóa dữ liệu sẽ bổ trợ thêm cho khả năng định giá của nhà đầu tư.

Việc sử dụng nguồn dữ liệu để xây dựng mô hình dự đoán sẽ làm rõ các yếu tố ảnh hưởng đến giá bất động sản một cách khách quan và chính xác. Sự kết hợp này mang đến một phương pháp giúp ước định giá trị bất động sản Đề tài này giúp nhóm phát triển kỹ năng chuyên môn và kiến thức học thuật, rèn luyện khả năng giải quyết vấn đề, làm quen với công nghệ và công cụ hiện đại, áp dụng kiến thức vào thực tế, từ đó nâng cao trình độ chuyên môn và kỹ năng nghề nghiệp. Ứng dụng còn có tiềm năng phát triển và mở rộng lớn. Nó có thể mở rộng ra các thị trường tài chính khác, hướng đến các tệp người dùng có nhu cầu tìm hiểu về một thị trường tài chính khác, mở ra nhiều cơ hội kinh doanh và hợp tác trong tương lai.

Với những lý do này, em tin rằng đề tài “Phân tích dữ liệu và dự báo tình hình kinh doanh bất động sản” không chỉ mang lại nhiều lợi ích 6 thực tiễn mà còn có nhiều tiềm năng phát triển thành một dự án tiềm năng trong tương lai.2 Mục đích nghiên cứu: 1.1 Khách quan ● Đánh giá hiệu quả và độ chính xác của mô hình dự đoán giá bất động sản. ● Đánh giá mức độ tin cậy của mô hình dự đoán khi tích hợp các yếu tố ảnh hưởng đến lên giá trị bất động sản 1.2 Chủ quan ● Khám phá các mối liên hệ giữa các yếu tố khác nhau ảnh hưởng lên việc định giá ● Tìm hiểu các phương thức định giá bất động sản ● Nghiên cứu các mô hình dự đoán và sơ đồ hóa dữ liệu.3 Đối tượng nghiên cứu 1. Các công nghệ nghiên cứu ● Ngôn ngữ chính sử dụng: python ● Các thư viện xử lý, sàng lọc và trực quan hóa dữ liệu: numpy, pandas ● Thư viện hỗ trợ xây dựng mô hình dự đoán: scikit-learn 1. Đối tượng sử dụng đề tài hướng đến ● Đối tượng sử dụng dữ liệu phân tích là các nhà đầu tư, người muốn tìm hiểu thêm về thị trường bất động sản và những người muốn nghiên cứu dữ liệu ● Cụ thể, ứng dụng dự đoán kinh doanh bất động sản đưa ra một hướng phân tích các yếu tố ảnh hưởng đến giá - y ếu t ố quan trọng nhất của kinh doanh bất động sản 7 ● Mục tiêu cung cấp một phương thức định giá cũng như giá tham khảo trung bình của một bất động sản theo khu vực một cách khách quan và đáng tin cậy 1.

Phạm vi nghiên cứu Đối với việc phân tích, sàng lọc và trực quan hóa dữ liệu: ● Phân tích dữ liệu: Phân tích đặc tính của tệp dữ liệu gồm các thành phần nào ● Sàng lọc dữ liệu: Lọc ra các cột dữ liệu không đạt chuẩn và định dạng lại dữ liệu để phục vụ cho các bước xây dựng mô hình và trực quan hóa dữ liệu ● Trực quan hóa dữ liệu: Hiện thực dữ liệu trước và sau phân tích thành các biểu đồ dạng cột, thanh,. Đối với việc xây dựng mô hình dự đoán: ● Cần lựa chọn mô hình phù hợp để đưa ra kết quả một cách khách quan nhất dựa trên các yếu tố ảnh hưởng 8 Chương 2: Công cụ và thư viện sử dụng 2.1 Khái niệm ● Jupyter là một thuật ngữ được ghép từ ba ngôn ngữ lập trình Julia, Python và R. Trước đây Jupyter Notebook có tên là IPython Notebook, đến năm 2014 tách ra khỏi IPython và đổi tên thành Jupyter Notebook ● Jupyter Notebook là một nền tảng tính toán khoa học mã nguồn mở, có thể sử dụng để tạo và chia sẻ các tài liệu có chứa code trực tiếp, phương trình, trực quan hóa dữ liệu và văn bản tường thuật ● Jupyter Notebook được coi là môi trường điện toán tương tác đa ngôn ngữ, hỗ trợ hơn 40 ngôn ngữ lập trình cho người dùng ● Với Jupyter Notebook, người dùng có thể đưa dữ liệu, code, hình ảnh, công thức, video,. vào trong cùng một file, giúp cho việc trình bày trở nên dễ dàng hơn.

Có thể vừa trình chiếu vừa chạy code để tương tác trên đó, cốt lõi của việc này là Markdown. 9 hình 1: Logo của jupyter notebook 2.2 Lợi ích mà Jupyter Notebook mang lại ● Được viết bằng các ngôn ngữ như Python, R và Julia, nền tảng này hiện đang được sử dụng rộng rãi. Bên cạnh đó, Jupyter còn tạo ra tài liệu, trực quan hóa dữ liệu và lưu trữ chúng một cách dễ dàng hơn rất nhiều: ● Phân tích và khám phá dữ liệu a. Jupyter cho phép người dùng xem kết quả của code in- line (mã inline) mà không cần phụ thuộc vào các phần khác của code.

Trong Notebook mọi ô của code có thể được kiểm tra bất cứ lúc nào, điều này đã giúp Jupyter trở nên khác biệt so với các ID như Pycharm, VSCode. Việc Jupyter có thể xuất code in-line đã giúp ích rất nhiều trong quá trình phân tích khám phá dữ liệu (EDA). ● Bộ đệm dễ dàng trong ô tích hợp a. Từng ô tự duy trì trạng thái hoạt động sẽ hơi khó, nhưng với Jupyter, công việc này sẽ được thực hiện tự động.

Vì Jupyter lưu trữ kết quả hoạt động của mọi ô đang chạy, cho dù là code đang đào tạo mô hình machine learning hay code đang tải xuống gigabyte dữ liệu từ một máy chủ từ xa. ● Độc lập ngôn ngữ 10 a. Jupyter Notebook ở định dạng JSON, vì thế nó được biết đến là một nền tảng độc lập cũng như độc lập về ngôn ngữ. ● Trực quan hóa dữ liệu a.

Jupyter Notebook hỗ trợ trực quan hóa dữ liệu và hiển thị thêm một số đồ họa và biểu đồ. Những điều này được tạo ra từ code với sự trợ giúp của các mô -đun như Matplotlib, Plotly hoặc Bokeh. Ngoài ra, Jupyter còn cho phép người dùng cùng chia sẻ code và bộ dữ liệu hoặc thay đổi tương tác với nhau. ● Tương tác trực tiếp với code a.

Jupyter Notebook sử dụng "ipywidgets" packages, cung cấp cho người dùng giao diện chuẩn nhằm khám phá sự tương tác trực tiếp với code và với dữ liệu. Người dùng có thể chỉnh sửa và chạy code, làm cho code của Jupyter non-static. ● Các mẫu code tài liệu: a. Jupyter giúp người dùng dễ dàng giải thích từng dòng code của họ với các phản hồi được đính kèm.

Dù trong code đã có đầy đủ các chức năng nhưng người dùng vẫn có thể tăng thêm sự tương tác bằng các lời giải thích. 11 hình 2: Giao diện của Jupyter Notebook 2.1 Giới thiệu ● Là một sản phẩm từ Google Research, nó cho phép thực thi các câu lệnh Python trên nền tảng đám mây, đặc biệt phù hợp với những bạn nào làm dự án (project) theo nhóm, hoặc muốn chia sẽ file code Python của mình với người khác. ● Colab không yêu cầu cài đặt hay cần cấu hình máy tính mạnh, mọi thứ có thể chạy thông qua trình duyệt, có thể sử dụng tài nguyên máy tính từ CPU, GPUs, TPUs đều được cung cấp và đặc biệt hoàn toàn miễn phí nếu chọn option mặc định ● Giao diện giống Jupyter Notebook hình 3: Google Colab 2.2 Tại sao nên sử dụng 2.1 Các thư viện phổ biến được cài đặt sẵn ● Colab được cài đặt sẵn các thư viện python phổ biến như : Pandas, Keras, Tensorflow, Matplotlib, Numpy. 12 Đây đều là các thư viện phù hợp cho việc tiền xử lý dữ liệu, phân tích và máy học 2.2 Được lưu trữ trên đám mây ● Các dự án thực hiện trên colab đều được lưu tự động theo quá trình thực hiện, và có được chia sẻ cho nhiều người để cùng hợp tác tham gia vào dự án.

Bên cạnh đó colab còn có lịch sử chỉnh sửa giúp dễ dàng theo dõi sự thay đổi của dự án và trở về các phiên bản trước đó nếu xảy ra lỗi 2.3 Sử dụng GPU và TPU miễn phí ● Mặc định Colab sẽ cấp cho người dùng miễn phí tài nguyên để chạy code python với 13GB RAM, ổ cứng là 127GB -> Chính vì nhiều lợi ích mà colab đem lại, trong phạm vi đồ án này em sẽ sử dụng colab trong việc thao tác cũng như xây dựng mô hình hình 4: Giao diện của colab 13 2.3 Thư viện scikit-learn ● Là một thư viện mã nguồn mở mạnh mẽ được xây dựng trên các thư viện nổi tiếng như NumPy, SciPy và matplotlib. Nó cung cấp các công cụ cần thiết để thực hiện các tác vụ học máy (machine learning) với hiệu suất cao và dễ dàng sử dụng. Scikit-learn được phát triển lần đầu tiên vào năm 2007 bởi David Courneau và kể từ đó, nó đã trở thành một trong những thư viện phổ biến nhất trong cộng đồng học máy 2.1 Các đặc điểm chính của Scikit-learn ● Dễ sử dụng: Giao diện trực quan, đơn giản và nhất quán. ● Đa dạng thuật toán: Bao gồm nhiều thuật toán máy học nổi tiếng như phân loại, hồi quy, clustering, và giảm chiều dữ liệu ● Tích hợp tốt: Scikit-learn hoạt động hiệu quả với các thư viện khác như ● Hiệu suất cao: Được tối ưu hóa để hoạt động nhanh chóng với cả dữ liệu nhỏ và lớn ● Mã nguồn mở: Miễn phí và được cập nhật thường xuyên từ cộng đồng 2.2 Các chức năng chính 1.

Phân loại (Classification) : các thuật toán nổi bật ● Logistic Regression ● Decision Trees ● Random Forest ● Support Vector Machines (SVM) ● K-Nearest Neighbors (KNN) ● Naive Bayes 2. Hồi quy (Regression) ● Linear Regression ● Ridge Regression ● Lasso Regression 14 ● Support Vector Regression ● Elastic Net 3. Phân cụm : Phân loại dữ liệu không có nhãn ● K-Means ● DBSCAN ● Hierarchical Clustering ● Mean-shift Clustering 4. Giảm chiều dữ liệu: Kỹ thuật giảm số lượng đặc trưng trong dữ liệu ● Principal Component Analysis (PCA) ● t-SNE ● Linear Discriminant Analysis (LDA) 5.

Đánh giá mô hình (Model Selection & Evaluation) ○ Cross-validation (K-fold cross-validation) ○ Hyperparameter tuning (GridSearchCV, RandomizedSearchCV) ○ Metrics đánh giá hiệu suất như accuracy, precision, recall, F1-score, ROC-AUC 6. Tiền xử lý dữ liệu ○ Chuẩn hóa dữ liệu: StandardScaler, MinMaxScaler ○ Xử lý dữ liệu thiếu: Imputer ○ Biến đổi dữ liệu danh mục: OneHotEncoder, LabelEncoder 15 2.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ