Aiming to the problem of weak primary user signal detection rate in low signal-to-noise ratio environments, we propose a novel spectrum sensing method based on the principal component analysis (PCA) and random forest (RF). From the received radio signal, a set of cyclic spectrum features are first calculated, and the PCA is applied to extract the most discriminate feature vector for classification. Furthermore, the detecting signal is classified by the trained random forest to test whether the primary user exists. Compares with MME, SVM, RF, our proposed algorithm is evaluated through simulations. Experimental results show that the performance of our proposed algorithm is much better than compared algorithms in low signal-to-noise ratio environments.