# 🏠 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: ```bash 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: ```python 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