Supplementary code and data of the paper Evaluating network embedding techniques' performances in software bug prediction.
收藏资源简介:
Supplementary code and data of the paper <strong><em>Evaluating network embedding techniques' performances in software bug prediction</em>.</strong> This repo can also be used as a complementary material for our previous paper: Qu, Yu, Ting Liu, Jianlei Chi, Yangxu Jin, Di Cui, Ancheng He, and Qinghua Zheng. "node2defect: using network embedding to improve software defect prediction." In 2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE), pp. 844-849. IEEE, 2018. https://dl.acm.org/doi/abs/10.1145/3238147.3240469 <strong>Steps to Run this dataset:</strong> <strong>First: Generating Class Dependency Network</strong> In each subdirectory, we have already included the corresponding Class Dependency Network (CDN) (classgraph.dot). If you want to generate your own CDN, you can use the Understand Perl Script file -- Class-Graph.pl, after installing the Understand tool, by using the commend: <pre><code class="language-bash">uperl Class-Graph.pl %YourOwnProjectDirectory%</code></pre> <strong>Second: Generating the input file for network embedding algorithms</strong> After generating the CDN, we can use the Driver.py to generate the input file for network embedding algorithms. <pre><code class="language-bash">python Driver.py</code></pre> After executing Driver.py, we can get the "edgelist" file in each directory. Then, for instance, we can use the ProNE implementation to generate the embedding file (classgraph.emd): <pre><code class="language-bash">python proNE.py -graph edgelist -emb1 classgraph.emd -emb2 classgraph-2.emd -dimension 32 -step 10 -theta 0.5 -mu 0.2</code></pre> <strong>Third: Run the experiment</strong> After generating the classgraph.emd file, we can run the experiment by executing Node2Defect-Final-CrossValidation.py: <pre><code class="language-bash">python Node2Defect-Final-CrossValidation.py</code></pre> The overall results are listed in the files like "All-Popt-%s-%s-%s.csv" <strong>Requirements:</strong> python==3.7<br> scipy==1.5.2<br> networkx==2.5<br> scikit-learn==0.23.2<br> numpy==1.19.1<br> pandas==1.1.2 We have used the following implementations of different network embedding algorithms, please refer to their repos for their dependencies: OpenNE<br> ProNE<br> Walklets



