With the fast development of mobile computing and the huge market of the health industry, health monitoring based on wearable sensors or smartphones in a ubiquitous way has become emerging in recent years. For health monitoring, human activity recognition has played an important role, especially for recognizing daily indoor activities. A traditional approach of human activity recognition relying on supervised learning requires a great amount of labeled data to train a model. However, data collection of these labeled data is time-consuming and labor-intensive. Hence, in this work, we target an efficient solution for human activity recognition based on a semi-supervised learning approach which can automatically enrich the data set based on a large amount of unlabeled data. Moreover, based on the enriched data set, we apply LightGBM as a robust classifier to improve recognition accuracy and robustness. Using a data set collected from 20 subjects, we investigate the performance of the proposed semi-supervised LightGBM and compare it to some commonly used supervised and semi-supervised learning approaches. The experimental results show that this semi-supervised learning can well enrich the data set with high accuracy and the proposed semi-supervised LightGBM provides the most robust and accurate solution.