A Survey on Software Cost Estimation Techniques <s> Learning Oriented Models <s> Estimation of desired effort is one of the most important activities in software project management. This paper presents an approach for estimation based upon machine learning techniques for non-quantitative data and is carried out in two phases. The first phase concentrates on selection of optimal feature set in high dimensional data, related to projects undertaken in past. A quantitative analysis using Rough Set Theory is performed for feature reduction. The second phase estimates the effort based on the optimal feature set obtained from first phase. The estimation is carried out differently by applying Naive Bayes Classifier and Artificial Neural Network techniques respectively. The feature reduction process in first phase considers public domain data (USP05). The performance of the proposed methods is evaluated and compared based on the parameters such as Mean Magnitude of Relative Error (MMRE), Root Mean Square Error (RMSE), Mean Absolute Error (MAE) and Correlation Coefficient. It is observed that Naive Bayes classifier achieved better results for estimation when compared with that by using Neural Network technique. <s> BIB001 </s> A Survey on Software Cost Estimation Techniques <s> Learning Oriented Models <s> In software engineering, estimation plays a vital role in software development. Thus, affecting its cost and required effort and consequently influencing the overall success of software development. The error margin in Expert-Based, Analogy-Based and algorithmic based methods including: COCOMO, Function Point Analysis and Use-Case-Points is quite significant, which exposes software projects to the danger of delays and running over-budget. To obtain better estimation, we propose an alternative method through performing data mining on historical data. This paper suggests performing this prediction using three machine learning techniques that were applied to a preprocessed COCOMO NASA benchmark data which covered 93 projects: Naive Bayes, Logistic Regression and Random Forests. The generated models were tested using five folds cross-validation and were evaluated using Classification Accuracy, Precision, Recall, and AUC. The estimation results were then compared to COCOMO estimation. All the applied techniques were successful in achieving better results than the compared COCOMO model. However, the best performance was obtained using both Naive Bayes and Random Forests. Despite the fact that Naive Bayes outperformed both of the other two techniques in its ROC curve and Recall score, Random Forests has a better Confusion Matrix and scored better in both Classification Accuracy, and Precision measures. The results of this work confirm the validity of data mining in general and the applied technique in particular for software estimation. <s> BIB002
Machine Learning can be said to be a method of data analysis that is used to automate analytical model. It is also a branch of Artificial Intelligence (AI) which can be said to be based on the notion that machines such as robots and other computerized devices can learn from the data  . These approaches have the ability to learn from previous data and predict the future outcome based on the previous data. Some of the common machines learning algorithms that have been exploited in the software cost estimation are neural networks, fuzzy logic, genetic algorithms, Bayesian networks, support vector regression and analogy Journal of Software Engineering and Applications based. Researchers have proposed several machine learning software cost estimation models in order to improve the estimation accuracy  . And several studies have also reported that under the same model when the model is constructed with different historical project datasets or different experimental designs there is a variation in the predicted accuracy [ A number of studies have concluded that machine learning models in software cost estimation outperform non-machine learning models  [2] [9] BIB001 . The use of these machine learning models in the software cost estimation process has gained significant popularity due to the wide margin of error in the classical estimation models BIB002 . There are remendous and continuous improvements in the machine learning algorithms which assists in achieving more accurate predictions when these are applied [2] BIB002 . These learning models consistently predict accurate results because of its learning nature from the previously completed projects. According to Monika et al. BIB001 investigation, it had been concluded that ANN was the prominent methods for developing estimating models. A brief overview of these models along with their strengths and weakness in the context of software cost estimation has been discussed. This will aid the researchers to understand which approach suits best for their methodology. Different machine learning models have different strengths and limitations and thus favor different estimation contexts  .