Real Estate Price Prediction / Dự đoán giá bất động sản
- Notebook:
Source_2200009905_VoTrungNhan.ipynb - Dữ liệu mẫu:
real_estate_listings.csv - Demo chính: huấn luyện mô hình Random Forest và XGBoost để dự đoán giá nhà, trực quan hóa phân phối dữ liệu và tầm quan trọng của đặc trưng.
- Xử lý dữ liệu giá bất động sản từ file CSV.
- Chuẩn hóa giá (tỷ/triệu) về đơn vị VNĐ bằng hàm
convert_price_v2. - Trích xuất diện tích đất từ chuỗi mô tả bằng
extract_land_area. - Tiền xử lý tự động: xử lý missing values, chuẩn hóa đặc trưng số, one-hot encoding cho biến phân loại.
- Huấn luyện và so sánh 2 mô hình hồi quy: Random Forest và XGBoost.
- Đánh giá mô hình bằng MAE, RMSE, R².
- Trực quan hóa dữ liệu và kết quả mô hình (histogram, boxplot, heatmap, scatter thực tế vs dự đoán, feature importance).
- Ngôn ngữ: Python
- Thư viện phân tích dữ liệu:
pandas,numpy - Học máy:
scikit-learn,xgboost - Trực quan hóa:
matplotlib,seaborn - Môi trường chạy: Jupyter Notebook / VS Code Jupyter
Kiến trúc đơn giản, chạy hoàn toàn trong Notebook:
- Data Source: File CSV
real_estate_listings.csvchứa thông tin bất động sản. - Data Processing Layer:
- Hàm xử lý giá và diện tích (
convert_price_v2,extract_land_area). - Pipeline tiền xử lý với
ColumnTransformer(numeric + categorical pipeline).
- Hàm xử lý giá và diện tích (
- Model Layer:
RandomForestRegressor(scikit-learn).XGBRegressor(xgboost).
- Evaluation & Visualization:
- Tính toán MAE, RMSE, R².
- Vẽ các biểu đồ phân phối và feature importance.
Hiện tại project chỉ là mô hình phân tích ngoại tuyến (offline), chưa có backend/API hay frontend riêng.
TieuLuan_2200009905_VoTrungNhan/
├── Source_2200009905_VoTrungNhan.ipynb # Notebook chính: xử lý dữ liệu, huấn luyện & đánh giá mô hình
├── real_estate_listings.csv # Dữ liệu bất động sản dạng bảng
└── README.md # Tài liệu mô tả dự án- Python 3.8+
- Jupyter Notebook hoặc VS Code với Jupyter Extension
Tạo môi trường ảo (khuyến khích) và cài đặt các thư viện cần thiết:
python -m venv .venv
.venv\Scripts\activate
pip install pandas numpy scikit-learn matplotlib seaborn xgboost- Mở file
Source_2200009905_VoTrungNhan.ipynbbằng Jupyter hoặc VS Code. - Đảm bảo file dữ liệu
real_estate_listings.csvnằm cùng thư mục với notebook. - Chạy lần lượt các cell từ trên xuống dưới.
Project sử dụng file CSV thay cho cơ sở dữ liệu truyền thống. Cấu trúc chính của real_estate_listings.csv (theo kỳ vọng trong notebook):
Location: Vị trí, khu vực của bất động sản.Price: Giá bất động sản (dạng chuỗi, ví dụ:5 tỷ 500 triệu,2.3 tỷ,900 triệu) – được chuyển về VNĐ.Type of House: Loại hình nhà (nhà phố, căn hộ, biệt thự, ...).Land Area: Diện tích đất (chuỗi có thể kèm đơn vị, ví dụ50 m²,Ngang 4m x Dài 10m).Bedrooms: Số phòng ngủ.Toilets: Số phòng vệ sinh.Total Floors: Tổng số tầng.Main Door Direction: Hướng cửa chính.Balcony Direction: Hướng ban công.Legal Documents: Tình trạng pháp lý (sổ hồng, sổ đỏ, giấy tay, ...).
Nếu cần đưa vào CSDL (MySQL/PostgreSQL, …), có thể tạo bảng real_estate_listings với các cột tương ứng, trong đó Price và Land Area nên lưu ở kiểu số (BIGINT/FLOAT).
Hiện tại project chưa triển khai API. Mô hình được sử dụng trực tiếp trong Notebook.
Gợi ý nếu mở rộng thành dịch vụ web:
POST /api/predict– Nhận thông tin bất động sản (JSON) và trả về giá dự đoán.GET /api/health– Kiểm tra trạng thái dịch vụ.
Võ Trung Nhân
- 📧 Email: nhantrung297@gmail.com
- 💼 LinkedIn: https://www.linkedin.com/in/vtn2907/
- 🐙 GitHub: @VTNMT2930
- 🌐 Portfolio: https://nhanit.io.vn/
Made with ❤️ by Nhân IT
⭐ Star this repo if you find it helpful!