From Model to HDB App

- 23 mins read

Author: See Hiong

In this post, I demonstrated how to deploy a Jupyter notebook using the jupyter-tensorflow-full image in Kubeflow, develop an HDB resale price predictor app with Streamlit, and access it via port forwarding. The setup runs locally and showcases how to bring together machine learning, visualization, and interactivity in a seamless development workflow within Kubeflow.
In this post, I explore the impact of different feature sets on XGBoost model performance for HDB resale price prediction. By combining numerical, categorical, and engineered features, I conducted a series of experiments and tracked their performance using MLflow. The results reveal how thoughtful feature engineering and selection can significantly influence metrics like RMSE, MAE, and R²—offering valuable insights into building more accurate predictive models.
In this post, I walk through building a simple feedforward neural network using TensorFlow to classify handwritten digits from the MNIST dataset. From data preprocessing to training, evaluation, and visualizing predictions, this hands-on project reinforces key deep learning concepts covered in Andrew Ng’s course. The model achieved over 97% accuracy on the test set, and I also explored prediction confidence and misclassified samples. A solid foundation for experimenting with more advanced architectures ahead.
Enhance your Vue.js application by integrating chat capabilities with Chart.js and LLMs like OpenAI and Deepseek-R1. This post walks through adding a chat node to the Micronaut-Optimizer workflow, enabling dynamic interactions with optimization results. Learn how to configure environment variables, connect workflow nodes, and send Chart.js data to LLMs. See it in action with sample inputs and responses, and explore running Deepseek-R1 locally with Ollama.
JDK Mission Control (JMC) is a powerful tool for low-overhead Java application profiling and performance analysis. In this post, I explore JMC’s capabilities while optimizing inference performance for Micronaut-Llama3 with DeepSeek-R1. I walk through setup, profiling with Flight Recorder, and identifying bottlenecks using flame graphs. Key optimizations, such as refining ByteVector operations, significantly enhance performance. A comparison with VisualVM highlights JMC’s advantages, making it the go-to tool for in-depth Java profiling. If you’re looking to fine-tune your Java applications, JMC provides essential insights for optimization.
In this post, I’ll walk you through the development of a Vue.js frontend application designed to complement my previous work on a flexible optimizer framework built with Micronaut. This frontend provides a visual interface for designing, managing, and optimizing workflows, with a focus on solving combinatorial optimization problems like the Traveling Salesman Problem (TSP). The app features a drag-and-drop UI, enabling users to define optimization problems graphically without relying on tools like Postman. By connecting inputs, transformations, and outputs through Workflow Nodes, users can visualize and compare the performance of backend optimization algorithms across different datasets.