-
Import các thư viện cần thiết:
- Sử dụng TensorFlow, Pandas, NumPy, sklearn, và matplotlib để hỗ trợ việc xử lý dữ liệu và xây dựng mô hình.
-
Chuẩn bị dữ liệu:
- Đọc dữ liệu: Đọc các tệp CSV
X_train.csvvàX_test.csvvào các DataFrameX_trainvàX_predict. - Xử lý cột floor:
- Tách cột
floorthành hai cộtfloor_type(loại tầng) vàfloor_number(số tầng). - Sử dụng LabelEncoder để mã hóa cột
floor_typevà điền giá trị trung bình chofloor_numbernếu có giá trị thiếu.
- Tách cột
- Xử lý cột livingRoom, drawingRoom, kitchen, bathRoom:
- Chuyển đổi các cột này sang kiểu số và điền giá trị trung bình nếu có giá trị thiếu.
- Xử lý cột buildingType:
- Đổi kiểu cột
buildingTypethành số nguyên hoặc NaN nếu giá trị không hợp lệ.
- Đổi kiểu cột
- Xử lý cột constructionTime:
- Giữ lại các năm hợp lệ trong khoảng từ 1800 đến 2024; các giá trị ngoài khoảng này sẽ được đặt là NaN.
- Xử lý cột ladderRatio:
- Kiểm tra điều kiện tỷ lệ thang máy, đặt NaN nếu giá trị vượt quá 1.
- Xử lý cột tradeTime:
- Chuyển đổi cột ngày tháng
tradeTimethànhtradeYear,tradeMonth, vàtradeDay.
- Chuyển đổi cột ngày tháng
- Đọc dữ liệu: Đọc các tệp CSV
-
Chuẩn hóa dữ liệu:
- Sử dụng StandardScaler cho các cột số (
numeric_features) nhưLng,Lat,square,followers,... - Nếu có cột minmax_features cần chuẩn hóa, sử dụng MinMaxScaler để chuẩn hóa riêng.
- Sử dụng StandardScaler cho các cột số (
-
Xử lý dữ liệu X_predict:
- Áp dụng mã hóa và xử lý các cột
floor_type,livingRoom,drawingRoom,kitchen,bathRoom,buildingType,constructionTime,ladderRatio, vàtradeTimetương tự như vớiX_train. - Chuẩn hóa các cột
numeric_featuresvàminmax_featurescủaX_predict.
- Áp dụng mã hóa và xử lý các cột
-
Chuẩn bị dữ liệu huấn luyện và kiểm thử:
- Kết hợp
X_trainvàY_trainđể tạo thànhXY_train_clean. - Tách
X_trainvàY_trainthànhX_learn,X_test,Y_learn,Y_testđể huấn luyện và kiểm thử.
- Kết hợp
-
Huấn luyện với mô hình Random Forest:
- Khởi tạo RandomForestRegressor và huấn luyện trên dữ liệu
X_learnđể tạo ra các dự đoán trung giany_rf_pred.
- Khởi tạo RandomForestRegressor và huấn luyện trên dữ liệu
-
Xây dựng và huấn luyện mô hình MLP:
- Khởi tạo mô hình Sequential với các lớp Dense.
- Biên dịch mô hình với hàm tối ưu Adam, thiết lập các callback như EarlyStopping và ReduceLROnPlateau.
- Huấn luyện mô hình trên
X_learnvày_rf_pred, chia tập dữ liệu để đánh giá hiệu quả mô hình.
-
Đánh giá mô hình:
- Dự đoán trên
X_testvà tính các chỉ số MSE, MAE, RMSE, và R² để đánh giá chất lượng mô hình.
- Dự đoán trên
-
Dự đoán và xuất kết quả:
- Dự đoán trên
X_predict, lưu kết quả thành DataFrame, thêm cột ID để xuất ra thành file CSV.
- Dự đoán trên
-
Vẽ biểu đồ phân bố:
- Sử dụng matplotlib để vẽ biểu đồ phân bố của giá trị dự đoán
Y_predict2nhằm trực quan hóa kết quả.
- Sử dụng matplotlib để vẽ biểu đồ phân bố của giá trị dự đoán
DIYEPH/Beijing_House_Price_Prediction
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|