🏠 Mô hình Dự đoán Giá Nhà California (MLP)
📝 Mô tả
Đây là một mô hình multi-layer perceptron (MLP) được huấn luyện trên tập dữ liệu California Housing để dự đoán giá nhà trung bình (MedHouseVal). Mô hình được xây dựng bằng PyTorch, là bản chuyển thể từ mô hình TensorFlow trong Chương 10 của cuốn Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow của Aurelien Geron.
📌 Nhiệm vụ
Dự đoán giá nhà dựa trên các đặc trưng đầu vào dạng bảng (tabular regression).
📥 Đầu vào
Số chiều: [batch_size, 8]
Kiểu dữ liệu: torch.FloatTensor
Các đặc trưng:
- 'MedInc' – Thu nhập trung vị
- 'HouseAge' – Tuổi trung bình của căn nhà
- 'AveRooms' – Số phòng trung bình
- 'AveBedrms' – Số phòng ngủ trung bình
- 'Population' – Dân số
- 'AveOccup' – Số người trung bình trên mỗi hộ
- 'Latitude' – Vĩ độ
- 'Longitude' – Kinh độ
📤 Đầu ra
Kiểu: torch.FloatTensor có shape [batch_size, 1] Ý nghĩa: Một giá trị thực duy nhất dự đoán giá nhà trung bình cho mỗi mẫu.
🛠 Yêu cầu thư viện
Cài đặt thư viện cần thiết bằng:
pip install torch scikit-learn huggingface_hub
🧪 Sử dụng mô hình
Dưới đây là ví dụ về cách sử dụng mô hình:
import torch
import torch.nn as nn
from huggingface_hub import PyTorchModelHubMixin
# Tạo đầu vào mẫu ngẫu nhiên (chuẩn hóa giả định ~ N(0,1))
x_input = torch.randn(1, 8) # 1 mẫu, 8 đặc trưng
print("Mock input:")
print(x_input)
# Định nghĩa lại mô hình
class MLP(nn.Module, PyTorchModelHubMixin):
def __init__(self):
super().__init__()
self.fc1 = nn.Linear(8, 50)
self.fc2 = nn.Linear(50, 50)
self.fc3 = nn.Linear(50, 50)
self.fc4 = nn.Linear(50, 1)
def forward(self, x):
act = torch.relu(self.fc1(x))
act = torch.relu(self.fc2(act))
act = torch.relu(self.fc3(act))
return self.fc4(act)
# Tải mô hình từ Hugging Face Hub
model = MLP.from_pretrained("zhaospei/Model_3")
model.eval()
# Dự đoán với mô hình
with torch.no_grad():
prediction = model(x_input)
print(f"Giá nhà dự đoán (mock input): {prediction.item():.3f}")
🔗 Tham khảo
PyTorchModelHubMixin Documentation