Determining Bug Prioritization Using Feature Reduction and Clustering With Classification

Assigning accurate and timely priorities to bugs manually is resource consuming and effects addressing important bugs. In the existing work single feature is used which leads to information loss because bugs have a lot of features including “severity”, “component”, “operation system”, “owner”, “status”, “assigned to”, “summary” etc. In this research, the authors proposed an improved model based on problem title, severity, and component for bug prioritization. We converted these textual features to numeric features using Term Frequency Inverse Document Frequency. During conversion, 5591 new features are generated, which increase complexity and running time of algorithms. To minimize these aspects, non-negative Matrix Factorization (NMF) and Principal Component Analysis (PCA) algorithms are used. Our proposed model is a combination of feature reduction, clustering, and classification algorithms. Clustering is performed on all and reduced features. For clustering X-Mean and K-Mean algorithms are used. SVM and Naive Bayes classifiers are applied on all features, reduced features, and on clustered features. For experiments chromium, eclipse, net beans, mozilla, and free desktop datasets are used. Experimental results reveal better performance of model, both with all features and with reduced features in terms of precision, recall, f-score, and accuracy. Maximum improvement is achieved with reduced features. With all features chromium, eclipse, free desktop, mozilla and net beans achieved 22.46%, 8.32%, 30.93%, 25.79% and 37.78% respectively improvement in accuracy. With reduced features chromium, elipse, free desktop, mozilla, net beans achieved 14.64%, 8.81%, 33.22%, 34.37% and 41.01% accuracy respectively. Overall classification with clustering and reduced features performed better than classification on all features, classification with clustering on all features, and classification on reduced features. In all the approaches SVM classifier outperformed Naive Bayes in terms of precision, recall, f-score, and accuracy. On average maximum accuracy is achieved by SVM with NMF and X-Mean clustering.


I. INTRODUCTION
Software systems are becoming necessary for every business. Many organizations depend on software to deal with their day-to-day operations and deliver services to their clients. Thus, the increasing demand for quality software also increases software maintenance costs. According to [1] approximately 90% of software life-cycle cost is consumed by software maintenance activities. With maintenance, software testing is also performed to check the quality of The associate editor coordinating the review of this manuscript and approving it for publication was Mamoun Alazab .
software. In software testing, one of the most important activities is Bug Triaging. Critical decisions can be taken in bugs fixing with the help of bug triaging. It also helps in finding duplicate reported bugs, correct and incorrect reported bugs, bugs that require immediate attention, and which does not, and assigning an appropriate developer to it. However, manual bug triaging is a tedious, time, and resource-consuming process. This problem is addressed by different researchers in [2]- [6] and Uddin et al. [7]. According to Guo et al. [8] and Uddin et al. [7] up to August 2009, the Eclipse bug database contains over 250,000 and the Mozilla bug database over 500,000 bug reports. On average, Eclipse received 120 and VOLUME 8, 2020 This work is licensed under a Creative Commons Attribution 4.0 License. For more information, see https://creativecommons.org/licenses/by/4.0/ Mozilla 170 new bug reports on each day from January to July 2009. So, it is a very time consuming and tedious job for bug triager to triage these bugs daily. In a normal bug triaging process, when a new bug enters the bug repository, the triager analyzes the bug report in two ways for taking decisions i.e. Repository Oriented Decisions (ROD) and Development Oriented Decisions (DOD). In ROD, once it is verified that the reported bug is not duplicate its validity is checked i.e. it is Correct or Incorrect. This verification and validation help discard the bug reports which do not need to be resolved. In DOD, the triager assigns Severity and Priority to bug reports. So that critical bugs should be fixed on priority bases [2], [7]. In the end, the triager writes his remarks regarding the reported bug, and the bug is assigned to the appropriate developer for resolution. Hence an automated system is required to assign accurate and timely priority to newly reported bugs. For achieving this task researchers have used different data mining techniques like clustering, classification, etc. But still, improvement is required because assigning correct priority to reported bugs plays an important role in fixing critical bugs on time. An improved model has been proposed in this work to achieve this task. According to [6], [9], [10] when non-supervised machine learning algorithms are applied as preprocessing steps like Clustering, before applying supervised machine learning algorithms like Classification on data, it improves results. This approach is the first time used by Goyal et al. [6].

A. RESEARCH SIGNIFICANCE
The proposed model has significant effects on bug prioritization. It has enhanced the accuracy of bug prediction and is helpful for open source software (Chromium, Eclipse, NetBeans, Mozilla, and FreeDesktop) for fixing their critical bugs on a priority basis. The proposed model can be implemented in software houses for the improvement of their software quality. The remainder of this research article is organized as follows. Section II provides an overview of bug prioritization and literature review. This chapter discusses the different techniques used by researchers. The review of comparative published literature and evaluation criteria is also discussed. Section III presents the research methodology. The first phase presents the steps for analysis of the existing bug prioritization model, finding problems in the existing model, and propose improvements. Second phase incorporating proposed improvements in the existing system. Section IV presents and discusses the experimental results of the proposed system and compare results with existing approaches. Section V concludes this papers with accomplished goals and contributions.

II. LITERATURE
Different Researchers have worked on bug reports, detecting duplicate bugs, assigning severity, priorities, and developer to a bug. There is a number of studies in this field, different bug-finding tools are developed to find bugs from source code and prioritize them, but the usually high false-positive rate is observed in prioritization. A lot of researchers proposed different ways of bug prioritization improvement.

A. BUG FINDING TOOLS
Kim and Ernst [11] applied three bug-finding tools FindBugs, JLint, and PMD on open source projects Columba Lucene, and Scarab to assign priority levels and analyzing the lifetime of a bug. Software change history (history-based data) is used for analyzing bug lifetime and a higher priority is assigned to bug with a shorter life. Kim and Ernst [12] also worked on the weight of bug categories. The weight of a bug category depends on the resolution of a bug in that category. When a bug is resolved in a bug category, that category weight is increased. Kremenek and Engler [13] also used bug-finding tools for prioritization based on a frequency count of successful and failed checks. Based on the tool's analysis decisions successful and failed checks are classified.

B. MACHINE LEARNING ALGORITHMS
Anvik et al. [14] applied machine learning algorithms on bug reports for assigning developers automatically to the newly reported bug. Decision Trees (DT), Naive Bayes (NB), and SVM were used on Firefox, Eclipse, and GCC open-source projects. Among DT, NB, and SVM, high precision was achieved by SVM. Anvik and Murphy [15] compared their approaches by retrieving the expertise of developers from source code repositories and bug repositories. They found that both approaches are good at assigning appropriate developers for bug fixing. Anvik and Murphy [2] proposed a model for building recommenders for the variation of DODs. e.g. finding people interested in a bug, predicting component of newly reported bug, and assigning a developer to the new bug. GCC, Bugzilla, Eclipse, Mylyn, and Firefox open-source projects are used for the evaluation of recommenders and achieved more than 70% precision. For the recommender's configuration, an automatic approach is proposed which reduced configuration efforts. Researchers have used different classification techniques for predicting suitable developers. In the proposed work of Murphy and Cubranic [16] supervised Bayesian learning approach is used, which can accurately assign 30% of the reports to developers. Anvik et al. [14] used a supervised ML algorithm and presented a semi-automatic approach for assigning bug reports to a developer with his appropriate expertise for bug resolution. Ahsan et al. [17] used SVM, Naive Bayes, Decision Tree, Random Forest, Reduces Error Pruning (REP) Tree, Tree-J48, and Radial Basis Function (RBF) Network and presented comparative analysis in order to automatically assign bug report to a developer in an optimized way. Lamkanfi et al. [18] analyzed the textual description of bug reports by using text mining algorithms, for predicting the severity of bug reports accurately. Studies [3] extended their previous work by using SVM, K-Nearest Neighbour (KNN), NB, and NB Multinomial Classifiers, and found that NB Multinomial Classifier results best than other proposed algorithm. Chaturvedi and Singh [19] applied SVM, KNN, NB, NB Multinomial, J48, and RIPPER for assigning Severity to reported bug. For assigning bug priority Yao et al. [20] used Artificial Neural Network (ANN) and for increasing the accuracy of the model several strategies are proposed. Kanwal and Maqbool et al. [4] used NB and SVM classifiers for bug prioritization and found SVM perform betters than NB. Also, two new measures (Nearest False Negatives and Nearest False Positives) are proposed by them. Sharma et al. [21] used Neural Network, KNN, NB, and SVM for predicting the priority of new bugs and evaluated their performance on different measures. Pre-processing step including Tokenization and stop word removal applied to a Summary attribute of bug reports. The accuracy of all techniques was better except for NB. Nigam et al. [5] used Inverse Multiquadric, Sigmoid, Radial Basis, Power and Multiquadric Kernel functions with Multi-Class SVM for grouping similar bug reports on Labeled, Unlabeled, and Test data. Experimental results showed that Radial Basis, Multiquadric, and Inverse Multiquadric provided good accuracy. Javed et al. [22] proposed an automated bug classification model. For feature selection, they used Chi-Square and TFIDF and for assigning the correct class to reported bugs they used a multinomial Naive Bayes classifier. Kaur and Jindal [23] performed prediction bug severity of thirteen different apache projects, which were automatically extracted from the Bug Report Collection System tool. They predicted severity on the most frequent terms used in the bug report summary attribute. Initially, they used preprocessing on summary and then applied different machine learning techniques including NB, DT, SVM, RF, KNN, Bagging, Boosting, SLDA, MAXENT, and Glmnet. They found that the Boosting technique outperformed other machine learning techniques. Kukkar et al. [24] proposed a novel deep learning model for multiclass severity classification, using Convolution Neural Network and Random forest with Boosting (BCR). For preprocessing they used the natural language technique on bug report and then n-gram is used for feature extraction. After that CNN extracts important feature patterns of respective severity classes and at the end random forest with boosting classifies the multiple bug severity classes. The average accuracy of the proposed model is 96.34%. Gomes et al. [25] conducted a comprehensive mapping study review of the latest research efforts on automatically bug report severity prediction. They categorize their study into ten different quantitative aspects of experiments reported in different papers. Initially, they selected 50 papers and then filter them to 18 papers and adding more 9 papers to conduct a mapping study review. There gathered data confirms the relevance of the topic, reflects the scientific maturity of the research area, as well as identify gaps, which can motivate new research initiatives. A comprehensive summary of different researcher work is given below in Table 1 while Bugs Report example of each dataset is presented in Table 2.

C. INTERACTIONS WITH A BUG REPORT
People play different roles as they interact with reports in a bug repository. The person who submits the report is known as a reporter or the submitter of the report. The triager is the person who decides if the report is meaningful and who assigns the responsibility of the report to a developer. The one that resolves the report is the resolver. A person that contributes a fix for a bug is called a contributor. A contributor may also contribute comments about how to resolve a bug or additional information that leads to the resolution of a report. A person may assume any one of these roles at any time. For example, a triager may resolve a report as a duplicate of an existing report. Alternatively, a developer may submit a report, assign it to himself, contribute a fix, and then resolve the report. For that report, a single person has fulfilled all the roles [14].

D. PROBLEM BACKGROUND
Software development organizations use their significant portion of resources in handling user-submitted bug reports. In the overall life cycle of the software product, 70% of the cost is consumed by maintenance [29]. The software which is commonly used by society, the number of reported bugs typically exceeds the resources available to triage them. As a result, important bugs are entertained very late. According to Anvik et al. [14], 3426 bug reports were submitted for Eclipse over the four-month period, averaging 29 reports per day. Manually assigning priorities to this bug is a time and resource-consuming process. Automated bug prioritization will reduce the time and effort of resources. In the bug tracking system, the reported bug severity is assigned by the user, and priority is assigned by the developer. One serious issue in the submitted report is the assigning of accurate severity. In most of the cases, the user is unaware of the difference between categories (Herraiz et al. 2008). Developer assigns priorities and allocates their time and resources accordingly. Accurate prioritization helps in bug fixing schedule and resource allocation, otherwise important bugs resolution will be delayed [21].

E. PROBLEM STATEMENT
Manual bug triaging is a very tedious, time and resourceconsuming process, due to which important bugs are entertained very late [6]. In the existing model single feature is used for bug prioritization, which leads to information loss, because bugs have a lot of features like ''severity'', ''component'', ''operation system'', ''owner'', ''status'', ''assigned to'' and ''summary''. To improve the result, we will use three features for bug prioritization i.e, problem title, severity, and component. These are text and categorical features and will be transformed into numeric features because clustering and classification algorithms accept numeric data as input. When converting text and categorical features to numeric features, the total number of features increases to 5591, and these features will increase more if a large number of bug's dataset is used. A large number of features will increase complexity and obviously running time of algorithms. In the existing model, Naive Bayes provides better results but Naive Bayes does not perform well with high dimension data [4].

F. RESEARCH SCOPE
This research emphasizes the prioritization of bugs. To evaluate the proposed improved model, different bug datasets will be used such as Chromium, Eclipse, NetBeans, Mozilla, and FreeDesktop. Each dataset contains 19917, 10000, 9909, 3398, and 2184 bugs respectively. For a comparison of the proposed model with an existing model of Goyal et al. [6], evaluation criteria like accuracy, F-score, precession, and recall will be utilized.

G. EXISTING BUG PRIORITIZATION MODEL
In the existing model single feature is used for bug prioritization [6]. The existing model is shown in Figure 1. Numeric features are extracted from a single feature problem title, which leads to information loss. Three clustering algorithms X-Mean, K-Mean, and Expectation Maximization are used. Classification with clustering performs better results. The clustering result of each algorithm is given to three different classification algorithms Random Forest, Naive Bayes, and Sequential Minimal Optimization. Results of all combinations are compared, and it was found that X-Mean clustering performs better results with Naive Bayes. The dotted line is used in Figure 1 to highlight the best combination.

III. METHODOLOGY
This research starts with the study of the existing bug prioritization model; to determine the strengths and weaknesses of the existing model Goyal et al. [6]. After the in-depth study of the existing bug prioritization model, few limitations were recognized as explained in the problem statement in Section II-F. The proposed model will overcome the weakness of the existing model. A comparison with the existing model will be carried out in order to determine if the proposed model succeeds to get the best results? In the proposed framework weakness and strengths of the existing bug, the prioritization model is studied. After finding weaknesses new features are added to improve the performance of the existing model. Figure 2 shows the proposed framework.

A. PROPOSED BUG PRIORITIZATION MODEL
The proposed bug prioritization model is shown in Figure 3. Three features are used for bug prioritization, ''problem title'', ''component'' and ''severity''. Modification / New additions including ''features reduction techniques'' and ''classification algorithms'' are shaded in 3. In each dataset, 60% data is used for training and 40% data is used for testing. The implementation of the proposed model can be divided into four categories.
• Classification on all features. • Clustering on all features and then apply classification on clustered data.
• Features reduction and then apply classification on reduced features.
• Feature reduction, then apply clustering on reduced features and finally apply classification on clustered data. The proposed model is discussed in subsequent sections.

1) FEATURE EXTRACTION
The bug reports have many features, some are filled during processing the reports, and some are filled by the user at the reporting time. The features we will be used for classification are ''problem-title'', ''component'' and ''severity''. Problem Title is a text feature while component and severity are categorical features. The algorithms we will be used for clustering and classification work on numeric features. So, we need to transform these categorical and text features to numeric features, for which below information retrieval techniques are used.

2) PRE-PROCESSING
The summary attribute of the bug report contains the unstructured text. It may have some special characters, other language alphabets, sentences, etc, which make this inappropriate for any type of analysis. To make this fit for analysis the text should be passed through the following stages.
• Tokenization: In this step, text provided by the user in the problem title feature is converted to lower case and then divided into tokens (words). Punctuations, symbols such as hyphens, brackets, and nonalphabetic constructs are removed.
• Stop Word Removal: In this step, common words, like is, am, are, the, and, a, with, for, etc are removed. Because these words do not mean anything special.
• Lemmatization: Words appearing in the problem title of a bug report can appear in different forms. For example, the word ''connect'' can appear as ''connected'', ''connection'', ''connections'' and ''connecting''. With the help of lemmatization, all these words will be converted to their ground word ''connect''.
• Term Frequency-Inverse Data Frequency: In the end, TF-IDF is applied to the words obtained from the previous step to convert them into numeric features. It is one of the most widely used techniques for processing textual data [30]. It is an information retrieval technique that evaluates a term's frequency (TF) and its inverse document frequency (IDF). Each word or term has its own TF and IDF score. The product of the TF and IDF scores of a term is called the TF*IDF score of that term. The TF*IDF algorithm is used to assign the importance to a word based on the number of times it appears in the bug report. More importantly, it checks how relevant the word is throughout the bug reports. For a word v in a bug report b, the weight Wv,b of word v in a bug report is given by Wv, b = TFv, blog(N /DFv) Where TFv,b is the number of occurrences of v in bug report b, DFv is the number of bug reports containing the word v, and N is the total number of bug reports in a dataset.

3) NON-NEGATIVE MATRIX FACTORIZATION
NMF also is known as positive factorization or non-negative rank factorization has been studied by different researchers in the past few decades [31], [32]. It got popularized when Lee and Seung [33] discovered that with the help of it, images of visual objects can be decomposed into meaningful parts. According to Cichocki and Phan [34] NMF has emerged as a very helpful technique for data mining, information retrieval, blind source separation (BSS), and clustering applications.
There are a lot of good algorithms produced by NMF including geometry-based methods [35] and optimization-based methods [34], [36]. NMF belongs to the unsupervised matrix decompositions category in which it is guaranteed that the values of attributes will be not negative [37]. In many applications, Non-negativity is a valid constraint, due to which NMF got success by providing interpretable and meaningful results, even ''correct'' results sometimes [38]. Matrix decomposition methods such as Singular-Value Decomposition (SVD), Independent Component Analysis (ICA), and Principal Component Analysis (PCA) decomposes the matrix into positive and negative value matrices, which are very hard to interpret [37]. NMF is different from these decomposition methods, it does not allow negative values in matrix decomposition/factorization. As compared to other dimensionality reduction methods like SVD, We can reconstruct the original matrix from NMF decomposition by using no subtractive and only additive combination of basic elements [39]. NMF decomposes the matrix ''M'' of size ''m * n'' into factors ''W'' and ''H'' i.e. M = WH , where W is of size m * r and H is of size r * n. Additionally, the reduced rank r is generally chosen as (n + m) r < m * n, hence the compression effect is accomplished. As a result, M is able to be estimated as a linear combination of the vectors of the basis matrix W and gains matrix H. The nonnegative rank may be higher than the usual matrix rank over the real field due to nonnegative constraints.

4) PRINCIPAL COMPONENT ANALYSIS
On a daily basis,k bugs are reported, due to which datasets are increasing and are often difficult to interpret. PCA is one of the most widely used techniques for reducing the dimensionality of such datasets. It increases the interoperability of data with minimum information loss [40]. PCA finds patterns in data, and express the data by highlighting their variations and similarities. It is hard to discover patterns in high-dimensional data sets where graphic representation luxury is not available. PCA is a powerful analysis tool for this data. When patterns are found in data, the number of dimensions can be reduced by using compression. Understanding variance, standard deviation, and covariance are very important for understanding the working of PCA. PCA algorithm is a six-step process. 1) Load dataset.
2) Find the mean of each data dimension and subtract values from mean. 3) Find the covariance matrix of the dataset. 4) Find eigenvalues and eigenvector of the covariance matrix. 5) Select Components( Eigenvectors) and form a feature vector (matrix of eigenvectors). 6) Deriving the new dataset.

5) K-MEANS Clusterink2g
K-means clustering is a kind of unsupervised learning, that is used for unlabeled data. The aim of this algorithm is to classify your objects into the K number of the group based on attributes/features. K is a positive integer number. The grouping is carried out by reducing the sum of distance squares between data in the matching cluster center. Hence, the aim of K-mean clustering is to categorize the data into K groups. Below are the steps of the K-mean algorithm. 1) Define the K value. (How many clusters or groups of data are required). 2) Randomly select ''K'' number of centroids from data. 3) Calculate the distance of each data item from each centroid. 4) Group data items based on minimum centroid distance.

5) Repeat steps ''c'' and ''d'' until the data item clusters
have not been changed.

6) X-MEANS CLUSTERING
X − means is an extended version of the K − mean algorithm. X − mean was first introduced by Yahoo. This algorithm consists of the below steps. 1) Traditional K-Mean algorithm 2) Improve Structure 3) If K > Kmax stops and reports the best scoring model found during the search. Else go to step 1. Once the K-mean algorithm executes. In step 2 it is tried to split the resulted centroids into two centroids if possible. There are two approaches used for splitting the final centroids provided by K-mean. Approach one is to pick each centroid one by one, split the selected centroid into two centroids, run K-mean to completion and use Bayesian Information Criterion (BIC) or Akaike Information Criterion (AIC) measure to see if the new resulting model scores better. If it does, accept the new centroid, otherwise return to the previous structure. In the first approach, each centroid is tested for a split which is an expensive process and will need O (Kmax). To overcome this expensive process second approach is to pick half of the centroids according to some heuristic criterion for how promising they are to split. Split them, run K-means, and check if the resulting model scores better than the original using BIC or AIC measure. Accept the split, if it performs better, otherwise return to the previous structure.

7) SUPPORT VECTOR MACHINE
SVM is a supervised machine learning algorithm also known as maximal margin classifier and is used both for regression and classification. The goal of SVM is to discover hyperplane in an N-dimensional area that clearly categorizes the data points. To categorize data points of different classes, multiple hyperplanes exists that can be chosen. Discovering a plane that has maximum margin should be objective, i.e the maximum distance between data points of different categories. Margin and supporting vectors are shown in Figure 4.

8) SUPPORT VECTORS AND HYPERPLANE
The hyperplane is boundaries that help in separating data points of different categories. The number of hyperplanes VOLUME 8, 2020 is dependent on a number of features. In the case of two features, the hyperplane will be a single line. In the case of three features, a two-dimensional plane will be the hyperplane. Support vectors are data points that are nearer to the hyperplane and affect the position and orientation of the hyperplane. Using these support vectors, the margin of the classifier is maximized. The location of the hyperplane is updated if support vectors are deleted.

9) NAIVE BAYES
Naive Bayes is built on Bayes' theorem with an assumption of independence between indicators. It is a commonly used machine learning classifier due to its effectiveness and simplicity. It assumes the occurrence of a feature in a group/class is not linked to the occurrence of any other feature. Using maximum posterior decision rules in the Bayesian setting, it makes probabilistic classifications. It is commonly used for text classification and spam detection problem. Bayes theorem gives a way of calculating posterior probability P(c|x) from P(c), P(x), and P(x|c) as shown in the following equation: P(c|x) is the posterior probability of class (c, target) given predictor (x, attributes). P(c) is the prior probability of a class, P(x|c) is the likelihood which is the probability of predictor given class while P(x) is the prior probability of predictor. The prior probability represents uncertainty before sampling any data. The posterior probability represents uncertainty after sampling data. The probability is the likelihood of an already occurred event that will produce a specific outcome. The events which are going to occur in the future refer to probability, while the events which occurred in the past with known outcomes refer to the likelihood.

B. EXPERIMENTAL STUDY
The following are the research questions of the proposed research work that will be ascertained in the subsequent results section.
• Does the addition of the SVM classifier and increasing the number of features improve the bug prioritization model?
• Does feature reduction techniques improve the performance of the bug prioritization model? While the following are the research objectives of the proposed research work.
• To propose an improved model for bug prioritization using clustering with classification.
• To evaluate the impact of features reduction techniques on the bug prioritization model.

C. TESTING, COMPARISON, AND ANALYSIS
Recall, Precision, and F-Score are used to test the achievement of the proposed model and are compared with the existing model. The results of the following performance matrices shall be provided in the results section.

IV. RESULTS
This section presents results and a comparison of the proposed model with the existing model [6]. The section is organized as: Section IV-A presents evaluation metrics, Section IV-B discusses experimental datasets, Section IV-C presents a comparison and Section IV-D describes chapter summary.  Table 3.

True Positives (TP):
These are the correctly predicted positive values which mean that the class of a bug report is ''P1'' and the predicted class by the model is also ''P1''.
True Negatives (TN): These are the correctly predicted negative values which mean that the actual class of a bug report is ''P2'' and the predicted class is also ''P2''.
False Positives (FP): When the actual class of a bug report is ''P3'' and the predicted class of a bug report is not ''P3''.
False Negatives (FN): When the actual class of a bug report is ''P2'' but the predicted class of a bug report is not ''P2''.

1) PRECISION
Precision is the ratio of correctly predicted positive bug reports to the total predicted positive bug reports. Precision shows the usefulness of the system and is calculated through the following equation: The recall is the ratio of correctly predicted bug reports in a class to all bug reports in a class and is calculated through the following equation: 3) F SCORE F Score is the weighted average of Precision and Recall. Therefore, this score takes both false positives and false negatives predictions and is calculated through:

4) ACCURACY
Accuracy is the most intuitive performance measure and it is simply a ratio of correctly predicted observation to the total observations. The relevant bugs are denoted with Rel Bugs while the retrieved bugs are presented by Ret Bugs. The following expression computes the accuracy:

C. RESULTS
This section presents the comparison of the proposed bug prioritization model with the existing bug prioritization model [6]. First results are produced for the existing model, then the proposed model results are produced and, in the end, they are compared.

1) EXISTING MODEL RESULTS USING SINGLE FEATURE
The results of using Naive Bayes and SVM classifiers with a single feature are shown in Table 4. In the second approach, K-Mean clustering is applied to each dataset before classification while in the third approach X-Mean clustering is applied to each dataset before classification. In the existing model Naive Bayes performs better while adding SVM in the existing model, SVM performs better than Naive Bayes. Similarly, The experimental results of classification with K-Mean and X-Mean clustering are shown in Table 4.3 and 4.4 respectively. Table 5 presents the experimental results using precision, recall, f-score, and accuracy for K-Mean clustering with SVM and Naive Bayes classification. The columns show the precision, recall, f-score, and accuracy of both approaches i.e. K-Mean with SVM and K-Mean with Naive Bayes. Whereas, the rows of the table show the datasets used. From Table 5 it can be observed that K-Mean with SVM approach outperforms K-Mean with Naive Bayes. It improves the accuracy for all the datasets by a minimum 5.8% to a maximum 22.79%. Table 6 presents the experimental results using precision, recall, f-score, and accuracy for X-Mean clustering with SVM and Naive Bayes classification. The columns show the precision, recall, f-score, and accuracy of both approaches i.e. X-Mean with SVM and X-Mean with Naive Bayes. Whereas, the rows of the table show the datasets used. It can be observed that X-Mean with SVM approach outperforms X-Mean with Naive Bayes. It improves the accuracy for all the datasets by a minimum 4.8% to a maximum 21.4%.    Figure 5 presents the precision, recall, f-score, and accuracy of different algorithmic approaches for chromium. It can be seen from Figure 5 that K-Mean + SVM approach has outperformed X-Mean + SVM an SVM approach. Figure 6 presents the comparison of different algorithmic approaches for the eclipse. It can be seen from Figure 6 that X-Mean + SVM approach has outperformed K-Mean + SVM and SVM approach. Figure 7 presents the comparison of different algorithmic approaches for free desktop. It can be seen from Figure 7 that K-Mean + SVM approach has outperformed X-Mean + SVM and SVM approach. Figure 8 presents the comparison of different algorithmic approaches for Mozilla. It can be seen from 8 that X-Mean + SVM approach has outperformed K-Mean + SVM and SVM approach.   Figure 9 presents the comparison of different algorithmic approaches for Net Beans. It can be seen from Figure 9 that K-Mean + SVM approach has outperformed X-Mean + SVM and SVM approach.

2) RESULTS OF THE PROPOSED MODEL USING THREE FEATURES
In the proposed model three features are used for clustering and classification. The results are divided into two main sections. Each section is further divided into three subsections.  Tables 7, 8 and 9. Comparison of direct classification, classification with K-Mean and X-Mean of each dataset are shown in Figures 10, 11,12,13, and 14 respectively. Figure 10 presents the comparison of different algorithmic approaches for Chromium. It can be seen from Figure 10 that K-Mean + SVM approach has outperformed X-Mean + SVM and SVM approach. Figure 11 presents the comparison of different algorithmic approaches for Eclipse. It can be seen from Figure 11 that X-Mean + SVM approach has outperformed K-Mean + SVM and SVM approach. Figure 12 presents the comparison of different algorithmic approaches for the Free Desktop. It can be seen from    Figure 12 that X-Mean + SVM approach has outperformed K-Mean + SVM and SVM approach. Figure 13 presents the comparison of different algorithmic approaches for Mozilla. It can be seen from Figure 13 that X-Mean + SVM approach has outperformed K-Mean + SVM and SVM approach. Figure 14 presents the comparison of different algorithmic approaches for Net Beans. It can be seen from Figure 14 that X-Mean + SVM approach has outperformed K-Mean + SVM and SVM approach. Table 7 presents the experimental results for SVM and Naive Bayes. Table 8 presents the experimental results of SVM and Naive Bayes with K-Mean clustering while Table 9 presents the experimental results of SVM and Naive Bayes with X-Mean clustering. Overall in all three approaches, SVM outperformed Naive Bayes in terms of precision, recall, VOLUME 8, 2020   f-score, and accuracy. In Table 7 minimum 6.41% and maximum 26.38% accuracy is improved. In Table 8 minimum 4.5% and maximum 35.57% accuracy is improved while in Table 9 Table 10 represents NMF feature reduction followed by SVM and Naive Bayes classifier. Each dataset features are reduced to 1-feature and 10-features using NMF feature reduction and then SVM and NB classifiers are applied (i.e NMF-SVM and NMF-NB). Overall SVM classifier performed better than the Naive Bayes classifier in terms of Precision, Recall, F Score, and Accuracy.    Table 11 represents PCA feature reduction followed by SVM and Naive Bayes classifier. Each dataset features are reduced to 1-feature and 10-features using PCA feature   from one to 10, NB performance decreases as compared to SVM. Table 12 represents NMF feature reduction with K-Mean clustering followed by SVM and NB classifier. Each dataset features are reduced to 1-feature and 10-features using NMF. After feature reduction K-Mean clustering is applied on reduced features and at the end SVM and NB classifiers are applied on reduced clustered data. Overall SVM classifier performed better with NMF and K-Mean as compare to Naive Bayes classifier in terms of Precision, Recall, F Score and Accuracy. Table 13 represents NMF feature reduction with X-Mean clustering followed by SVM and NB classifier. Each dataset features are reduced to 1-feature and 10-features using NMF. After feature reduction, X-Mean clustering is applied to reduced features, and at the end, SVM and NB classifiers are applied to reduced clustered data. Overall SVM classifier performed better with NMF and X-Mean as compare to the Naive Bayes classifier in terms of Precision, Recall, F Score, and Accuracy. Table 14 represents PCA feature reduction with K-Mean clustering followed by SVM and NB classifier. Each dataset features are reduced to 1-feature and 10-features using PCA. After feature reduction, K-Mean clustering is applied to reduced features, and at the end, SVM and NB classifiers are applied to reduced clustered data. Overall SVM classifier performed better with PCA and K-Mean as compare to the Naive Bayes classifier in terms of Precision, Recall, F Score, and Accuracy. From the experimental results, it is cleared that Naive Bayes does not perform better in high dimensionality. Naive Bayes performs better on 1-feature as compare to 10-features.  In Table 15 represents PCA feature reduction with X-Mean clustering followed by SVM and NB classifier. Each dataset features are reduced to 1-feature and 10-features using PCA. After feature reduction, X-Mean clustering is applied to reduced features, and at the end, SVM and NB classifiers are applied to reduced clustered data. Overall SVM classifier performed better with PCA and X-Mean as compare to the Naive Bayes classifier in terms of Precision, Recall, F Score, and Accuracy.

D. IMPROVEMENT COMPARISON
Comparison is divided into the following categories.     Table 17 represents the proposed model with K-Mean clustering improvement from the existing model. Maximum 24.99% accuracy is improved by K-Mean + SVM. Table 18 represents the proposed model with X-Mean clustering improvement from the existing model. Maximum 28.42% accuracy is improved by X-Mean + SVM.

2) EXISTING MODEL VS PROPOSED MODEL (REDUCED FEATURES)
Experimental results are divided into three categories. Improvement in Direct classification, improvement in Classification with K-Mean clustering and improvement in classification with X-Mean clustering. Table 4.17 represents proposed model improvement from the existing model using PCA + SVM. Maximum 34.54% accuracy is improved with PCA + SVM. Table 20 represents proposed model using NMF (1-Feature) + K-Mean clustering followed by SVM classifier, improvement from the existing mode. Maximum 34.71% accuracy is improved. Table 21 represents the proposed model using NMF (1-Feature) + X-Mean clustering followed by the SVM classifier, an improvement from the existing model. A maximum 38.71% accuracy is improved. Table 22 represents proposed model using NMF (10-Feature) + K-Mean clustering followed by SVM classifier. Maximum 41.01% accuracy is improved using NMF (10-Feature) + K-Mean + SVM.     Table 23 represents proposed model using NMF (10-Feature) + X-Mean clustering followed by SVM classifier. Maximum 39.42% accuracy is improved using NMF (10-Feature) + K-Mean + SVM classifier. Table 24 represents proposed model using PCA (1-Feature) + K-Mean clustering followed by SVM classifier. Maximum 33.03% accuracy is improved using PCA (1-Feature) followed by K-Mean and SVM classifier. Table 25 represents proposed model using PCA (1-Feature) + X-Mean clustering followed by SVM classifier. Maximum 42.52% accuracy is improved using PCA (1-Feature) followed by X-Mean and SVM classifier. Table 26 represents proposed model using PCA (10-Feature) + K-Mean clustering followed by SVM classifier. Maximum 34.53% accuracy is improved using PCA (10-Feature) followed by K-Mean and SVM classifier.  Table 27 represents proposed model using PCA (10-Feature) + X-Mean clustering followed by SVM classifier. Maximum 38.91% accuracy is improved using PCA (10-Feature) followed by X-Mean and SVM classifier. Overall SVM classifier performed better or equivalent than Naïve Bayes in every combination of feature reduction and clustering algorithms.

3) PROPOSED MODEL (All FEATURES) VS PROPOSED MODEL (REDUCED FEATURES)
Overall ''reduced features'' proposed model performed better than ''all features'' proposed model. In both, approaches SVM performed outclass than Naïve Bayes. With ''all features'' SVM performed better with K-Mean and X-Mean clustering. On average K-Mean + SVM performed better. With ''reduced features'' SVM performed better with NMF (1-feature) + X-Mean, NMF (10-feature) + X-Mean, PCA (1-feature) + X-Mean and PCA(10-feature) + K-Mean. From the experimental results, it is clear that the reduced feature proposed model performed better than all feature proposed models. Which reduced features execution time algorithms are minimum.

V. CONCLUSION
This research focuses on predicting the priority of reported bugs with the help of data mining algorithms. For this research, we proposed certain changes in the existing model by adding two new features, classification algorithm, and feature reduction techniques.
This research is mainly focused on two aims, the first one is to determine the limitations of the existing bug prioritization model, and the second aim is to solve these limitations by introducing a new improved bug prioritization model.
In order to accomplish these two aims, we have defined two objectives of this research, which are given below: Objective 1: To propose an improved model for bug prioritization using clustering with classification. For the purpose of achieving this objective X-Mean and K-Mean algorithm are used for clustering and then the SVM algorithm is applied for classification. Experiments show that the proposed model produced a much better result than the existing model in terms of precision, recall, f score, and accuracy.
Objective 2: To evaluate the impact of features reduction techniques on the bug prioritization model. For feature reduction, two algorithms are used PCA and NMF. Experiments show that the feature reduction techniques improved results in terms of precision, recall, f score, and accuracy. Eclipse and FreeDesktop performed better with NMF reduction while Mozilla and NetBeans performed better with PCA reduction which ultimately improved the running time of classification and clustering algorithms. Summary of research contributions The SVM classifier is proposed for predicting the priority of a bug report. SVM classifier performs outclass in high dimensional data. Two new feature ''component'' and ''severity'' are added for the classification of the bug report. Also, feature reduction techniques are added for dimensional reduction to improve the running time of algorithms. This research is focused on improving the quality of the bug prioritization model. In this regard, the research contributions are summarized as follows: • Three features (component, severity, and summary) are used for predicting the priority of bug reports.
• Feature Reduction Techniques are added to improve running time.
• We have replaced Naive Bayes with the SVM classifier to predict the priority of bug reports. Future directions: Since our proposed model is a combination of feature reduction techniques, clustering, and classification algorithms and it produced significantly better results. We have used five different datasets for our research. The same model can be applied to other datasets like Open Office, Maemo, and GNOME, etc. The same approach of clustering with classification can be used in other research areas as well to improve their results. Besides, research can be conducted in the following directions as well: • In our proposed work three features (problem title, component, and severity) are used, new features can also be incorporated to enhance the results. There are a lot of other features related to a bug report.
• Neural networks can be incorporated into the proposed model to further improve the results.
• We have used feature reduction techniques which are time-consuming. In the future instead of feature reduction, the feature selection approach can be applied.
• We have applied feature reduction followed by clustering algorithms, which is further followed by classification algorithms for bug prioritization. The same approach can also be applied for Predicting bug severity, identifying valid, invalid, and duplicate bug reports, VOLUME 8, 2020 assigning experienced developers to newly reported bug reports, and finding blocking bug reports.
• The same approach of clustering with classification can be used in security systems.
• This approach may also be helpful in the bioinformatics area.
• The same approach can also be applied to the image processing field.