# Cross-Project Defect Prediction Method Based on Manifold Feature Transformation
## 1 Introduction  
Currently, the complexity of software is increasing, which is mainly reflected in the continuous increase in the number of developers and the scale of the software system. The increase in personnel and scale will inevitably lead to more hidden defects in the software system. However, a comprehensive test of a complex software system requires a considerable amount of resources. Therefore, we hope to know the defect tendency of each module of the software system in advance so as to allocate the test resources of each module in a targeted manner. Software defect prediction technology [1; 2; 3; 4; 5] can help us achieve this goal. Through software defect prediction technology, we can predict the defects of each module of the software project. If the predicted module is defective, then we will focus on testing the module so as to achieve the purpose of allocating testing resources for each software module in a targeted manner. Software defect prediction technology is used to build a software defect prediction model with the help of machine learning methods. The training data are the value of the measurement features extracted from software modules, such as CK metrics [6]. The current research on within-project defect prediction (WPDP) [7; 8; 9; 10] has been established,but WPDP cannot be practical because WPDP requires part of the defect data of the same project or the historical version of the project. However, the software developed in practice is generally a brand new software project, and the brand new software project does not have historical version data. Machine learning methods are data-supported methods; thus, WPDP lacks practicality in the absence of training data. In view of the lack of training data, researchers have proposed cross-project defect prediction (CPDP) [11; 12; 13]. CPDP is based on the labeled defect data of other similar software projects (i.e., source project) to train the model and predict the defects of the software projects under development (i.e., target project). However, due to the large differences in the data distribution of the source project and the target project, the defect prediction model constructed using the source project data cannot achieve good predictive performance on the target project. Therefore, how to reduce the difference in data distribution between the source project and the target project has become the focus of CPDP research. Researchers have proposed a variety of methods and models to reduce the difference in data distribution between projects to improve the performance of CPDP. These efforts include the [PERSON] instance filtering method [14] and [PERSON] instance filtering method [15] based on similarity training data selection, the TNB model based on instance weighting proposed by [PERSON] et al. [16], the large-scale combination model HYDRA based on searching the best instance weights proposed by [PERSON] et al. [17], the source project training data selection method CFPS based on collaborative filtering proposed by [PERSON] et al. [18], the TCA+ method based on feature space transformation proposed by [PERSON] et al. [19], the method based on feature matching and migration proposed by [PERSON] et al. [20], the cross-project defect prediction method based on feature migration and instance migration proposed by [PERSON] [21], etc. In the above methods, we found that research from the perspective of feature space transformation or feature migration can greatly improve the performance of CPDP. However, the results achieved so far are not very satisfactory. The reason for our analysis is that the feature transformation is to map the source project and the target project from the original feature space to the common feature space, and feature migration is to match the features of the source project to the features of the target project in the original feature space. These methods perform feature transformation and feature migration in the original feature space.