The recent development of microarray gene expression techniques have made it possible to offer phenotype classification of many diseases. However, in gene expression data analysis, each sample is represented by quite a large number of genes, and many of them are redundant or insignificant to clarify the disease problem. Therefore, how to efficiently select the most useful genes has been becoming one of the most hot research topics in the gene expression data analysis. In this paper, a novel unsupervised gene selection method is proposed based on matrix factorization, such that the original gene matrix can be optimally reconstructed using those selected genes. To make our algorithm more efficient, we derive a kmeans preclustering approach to accelerate our algorithm, and we also prove theoretically the optimality of this approach. Finally the experimental results on several data sets are presented to show the effectiveness of our method. Keywords. Gene Selection; Matrix Factorization; ...