--- tags: - model_hub_mixin - pytorch_model_hub_mixin license: mit --- # CustomerSegmentationModel: Autoencoder for Customer Segmentation ## Model Details - **Model Architecture:** Autoencoder - **Framework:** PyTorch - **Input Dimension:** User-defined (`input_dim`) - **Output:** Reconstructed customer features - **Dataset:** [Predicting Credit Card Customer Attrition](https://www.kaggle.com/datasets/thedevastator/predicting-credit-card-customer-attrition-with-m) ## Model Description The **CustomerSegmentationModel** is an **autoencoder** designed to extract low-dimensional representations of customer data. It consists of: - An **encoder** that compresses the input into a **2D latent space**. - A **decoder** that reconstructs the original input from the compressed representation. This approach enables **customer segmentation** based on the learned latent space. ## Training Details - **Loss Function:** Smooth L1 Loss - **Optimizer:** Adam - **Batch Size:** 256 - **Number of Epochs:** 100 - **Regularization:** Dropout (50%) and Layer Normalization ### Model Architecture ```python class CustomerSegmentationModel(nn.Module, PyTorchModelHubMixin): def __init__(self, input_dim): super(CustomerSegmentationModel, self).__init__() self.encoder = nn.Sequential( nn.Linear(input_dim, 256), nn.ReLU(), nn.Dropout(0.5), nn.Linear(256, 128), nn.ReLU(), nn.Dropout(0.5), nn.LayerNorm(128), nn.Linear(128, 64), nn.ReLU(), nn.Dropout(0.5), nn.LayerNorm(64), nn.Linear(64, 2), ) self.decoder = nn.Sequential( nn.Linear(2, 64), nn.ReLU(), nn.Dropout(0.5), nn.Linear(64, 128), nn.ReLU(), nn.Dropout(0.5), nn.Linear(128, 256), nn.ReLU(), nn.Dropout(0.5), nn.Linear(256, input_dim), nn.Sigmoid(), ) def forward(self, x): x = self.encoder(x) x = self.decoder(x) return x This model has been pushed to the Hub using the [PytorchModelHubMixin](https://huggingface.co/docs/huggingface_hub/package_reference/mixins#huggingface_hub.PyTorchModelHubMixin) integration: - Library: [More Information Needed] - Docs: [More Information Needed]