Stability of Software Defect Prediction in Relation to Levels of Data Imbalance

Tihana Galinac Grbac and Goran Mausa, University of Rijeka
Bojana Dalbelo–Basic, University of Zagreb

http://ceur-ws.org/Vol-1053/sqamia2013paper1.pdf

Прогнозирование дефектов программного обеспечения считается одним из самых действенных методов повышения эффективности разработки ПО. Основная идея этого подхода заключается в том, что предсказание областей сосредоточения дефектов в системе позволит выработать более эффективные методики их выявления — нанести точечный удар по болевым точкам вместо ковровой бомбардировки всей системы.

Этой проблеме было посвящено ряд исследовательских работ (например, [Hall et al. 2012]), но не было найдено хорошо работающее решение. Основная сложность заключается в построении математической модели, а именно в том, что имеющиеся данные не ложатся на какое-либо из известных вероятностных распределений. Причина тому — сильные искажения, сводящие на нет общепринятые подходы машинного обучения.

Для борьбы с несбалансированностью данных было предложено ряд решений, которые оказались немасштабируемыми на все области применения. Описываемая в этой статье работа ставит перед собой цель продвинуться в этом направлении. Ниже разобрана стратегия исследования зависимости производительности моделей прогнозирования дефектов ПО от степени несбалансированности данных. Заранее условимся, что стратегия будет базироваться на метриках статического анализа кода [McCabe 1976]. В работе используются массив данных программы NASA MDP.

О сложности данных прогнозирования дефектов ПО

Основная задача прогнозирования дефектов ПО — выявление модулей системы (компонент, файлов, классов, методов), склонным к превышению заранее заданного порога дефектов. Несбалансированность данных в этом контексте означает численное преобладание модулей, не склонных к превышению этого порога, над противными. При этом доля первых может варьироваться от 1% до 94% в зависимости от задачи. Такой широкий разброс обосновывает разбиение степени несбалансированности данных на уровни, о чём подробнее будет рассказано в статье.

Как уже было упомянуто выше, измеряемые величины, необходимые для прогнозирования дефектов, могут не попадать под какое-либо известное распределение, что ограничивает применение классического математического аппарата, но открывает дорогу машинному обучению. Помимо прочих методов обучения будет рассмотрена мультивариативная бинарная логистическая регрессия.

Экспериментальный подход

Цель подхода заключается изучении устойчивости оценочных метрик для прогнозирования дефектов ПО в зависимости от различных уровней несбалансированности данных. Помимо этого ставится цель выявления потенциальных источников отклонений с помощью варьирования одного параметра модели. Исследуемые параметры перечисляются позже.

Предлагается выполнить следующие шаги для достижения поставленных целей:

  1. Получение данных: данные берутся из открытых источников и представлятся в виде наборов векторов (X1, …, Xn, Yn), где {Xi} — независимые измеренные величины, Yi — индикатор склонности к ошибке.
  2. Предварительная обработка:
    1. Удаление шума, сэмплирование.
    2. Подготовка к кросс-валидации: k раз случайным образом выделяется тестовая выборка (2/3 исходной) и валидационная выборка (1/3 от исходной). Полученные подвыборки относятся к одному из l уровней несбалансированности данных (степень несбалансированности это количество склонных к ошибкам (Yi = 1) объектов).
    3. Отсев признаков.
  3. Обучение
    1. Построение модели.
    2. Оценка эффективности модели.
  4. Статистический анализ
    1. Вариационный анализ: производится сравнение l уровней несбалансированности данных.
    2. Кросс-валидация.

Несбалансированность данных находится в центре внимания этой работы, потому как эта проблема сильно влияет на эффективность обучения. Особенность задачи заключается в анализе классов-меньшинств (такими чаще оказываются классы объектов, склонных к дефектам, и именно они интересны с точки зрения прогнозирования дефектов). Также стоит учитывать, что цена ложноположительного срабатывания классификатора много больше ложноотрицательного (действительно, если классификатор сообщает, что модуль не имеет склонности к дефектам, то стратегия обнаружения дефектов скорее всего пропускает этот модуль и ошибка просачивается на сторону пользователя; в то время как в другом случае происходит всего лишь лишняя проверка модуля).

Проблемы массива данных

Практика показала, что использование искуственно полученных сбалансированных данных [Wang and Yao 2013] может как помочь, так и навредить [Kamei et al. 2007]. Другая проблема состоит в том, что массивы данных запутанны, нерепрезентативны, чрезмерно многомерны и имеют перекрытия.

Оценочные метрики

Одна из проблем машинного обучения при работе с несбалансированными массивами данных заключается в использовании неподходящих метрик оценивания. Обычно они выводятся из так называемой матрицы неточностей. В них используются счетчики правильных положительных (TP), правильных отрицательных (TN), ложноположительных (FP) и ложноотрицательных (FN) срабатываний. Самые распространённые метрики: достоверность ACC = (TP+TN)/(TP+FP+TN+FN), чувствительность TPR = TP/(TP+FN), точность PR = TP/(TP+FP).

Для иллюстрации применения описываемого подхода и верификации стратегии и определения целей дальнейшей работы был рассмотрен следующий пример.

  1. Выгружен массив данных KC1 из репозитория NASA MDP. Количество признаков (независимых переменных) — 29. Зависимая переменная в этом массиве — количество дефектов в модуле. Выведение бинарной переменной Yi производилось введением порога (всего 10 различных — от 1 до 19 с шагом 2).
    1. Известные проблемы, связанные с этим массивом данных, были решены согласно [Shepperd et al. 2013].
    2. Для каждого из 10 наборов, полученных на шаге 1 было получено 10 случайных разбиений на тестовые и валидационные выборки, ранжирующиеся по степени несбалансированности от 51% до 96%. Этот диапазон был равномерно разбит на 5 уровней.
    3. Была применена прямая и обратная пошаговая выборка [Han and Kambar 2006]. Решение о включении/исключении признаков базировалось на их статистической значимости. Стоит заметить, что некоторые признаки оказались устойчивыми к отсеву вне зависимости от степени несбалансированности данных.
    1. Использовалась мультивариативная бинарная логистическая регрессия.
    2. Вычисляются метрики ACC, TPR, AUC и PR.

В статье рассмотрена задача повышения качества автоматического обнаружения дефектов в программном обеспечении на основе метрик статического анализа. Одна из основных проблем в этой задаче это несбалансированность данных. Авторы статьи исследуют зависимость устойчивости классификаторов склонности модулей к дефектам от степени несбалансированности данных.

  1. C. Andersson and P. Runeson. A replicated quantitative analysis of fault distributions in complex software systems. IEEE Trans. Softw. Eng., 33(5):273–286, May 2007.
  2. A. Andrews and C. Stringfellow. Quantitative analysis of development defects to guide testing: A case study. Software Quality Control, 9:195–214, November 2001.
  3. D. Banthia and A. Gupta. Investigating fault prediction capabilities of five prediction models for software quality. In Proceedings of the 27th Annual ACM Symposium on Applied Computing, SAC ’12, pages 1259–1261, New York, NY, USA, 2012. ACM.
  4. V. R. Basili, L. C. Briand, and W. L. Melo. A validation of object-oriented design metrics as quality indicators. IEEE Trans. Software Engineering, 22(10):751–761, October 1996.
  5. G. E. A. P. A. Batista, R. C. Prati, and M.C. Monard. A study of the behavior of several methods for balancing machine learning training data. SIGKDD Explor. Newsl., 6(1):20–29, 2004.
  6. L. C. Briand, J. W. Daly, V. Porter, and J. Wust. A comprehensive empirical validation of product measures for object-oriented systems, 1998.
  7. L. C. Briand, J. Wust, J. W. Daly, and D. V. Porter. Exploring the relationship between design measures and software quality in object-oriented systems. J. Syst. Softw., 51:245–273, May 2000.
  8. A. Brooks. Meta Analysis–A Silver Bullet for Meta-Analysts. Empirical Softw. Engg., 2(4):333–338, 1997.
  9. T. Fawcett. An introduction to ROC analysis. Pattern Recogn. Lett., 27(8):861–874, Aug. 2006.
  10. N. E. Fenton and N. Ohlsson. Quantitative analysis of faults and failures in a complex software system. IEEE Trans. Softw. Eng., 26(8):797–814, Aug. 2000.
  11. K. Gao and T. M. Khoshgoftaar. Software defect prediction for high-dimensional and class-imbalanced data. In SEKE, pages 89–94. Knowledge Systems Institute Graduate School, 2011.
  12. E. Giger, M. Pinzger, and H. C. Gall. Comparing fine-grained source code changes and code churn for bug prediction. In Proceedings of the 8th Working Conference on Mining Software Repositories, MSR ’11, pages 83–92, New York, NY, USA, 2011. ACM.Stability of Software Defect Prediction
  13. D. Gray, D. Bowes, N. Davey, Y. Sun, and B. Christianson. The misuse of the nasa metrics data program data sets for automated software defect prediction. Processing, pages 96–103, 2011.
  14. D. Gray, D. Bowes, N. Davey, Y. Sun and B. Christianson. Reflections on the NASA MDP data sets. IET Software, pages 549, 5583, 2012.
  15. T. Galinac Grbac, P. Runeson, and D. Huljenic. A second replicated quantitative analysis of fault distributions in complex software systems. IEEE Transactions on Software Engineering, 39(4):462–476, 2013.
  16. T. Hall, S. Beecham, D. Bowes, D. Gray, and S. Counsell. A systematic literature review on fault prediction performance in software engineering. Software Engineering, IEEE Transactions on, 38(6):1276–1304, 2012.
  17. J. Han and M. Kamber. Data mining: concepts and techniques. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2006.
  18. T. Hastie, R. Tibshirani, and J. Friedman. The elements of statistical learning: data mining, inference and prediction. Springer, 2 edition, 2009.
  19. H. He and E. A. Garcia. Learning from Imbalanced Data. IEEE Trans. Knowledge and Data Engineering, 21(9):1263-1284, 2009.
  20. J. Hulse, T. Khoshgoftaar, A. Napolitano. Experimental perspectives on learning from imbalanced data. In in Proc. 24th international conference on Machine learning (ICML ’07), pages 935–942. 2007.
  21. Y. Jiang, B. Cukic, and Y. Ma. Techniques for evaluating fault prediction models. Empirical Softw. Engg., 13:561–595, October 2008.
  22. Y. Kamei, A. Monden, S. Matsumoto, T. Kakimoto, K. Matsumoto. The Effects of Over and Under Sampling on Fault-prone Module Detection. In in Proc. ESEM 2007, First International Symposium on Empirical Software Engineering and Measurement, pages 196–201. IEEE Computer Society Press, 2007.
  23. I. Kaur and A. Kaur. Empirical study of software quality estimation. In Proceedings of the Second International Conference on Computational Science, Engineering and Information Technology, CCSEIT ’12, pages 694–700, New York, NY, USA, 2012. ACM.
  24. T. M. Khoshgoftaar, E. B. Allen, R. Halstead, and G. P. Trio. Detection of fault-prone software modules during a spiral life cycle.
  25. In Proceedings of the 1996 International Conference on Software Maintenance, ICSM ’96, pages 69–76, Washington, DC, USA, 1996. IEEE Computer Society.
  26. T. M. Khoshgoftaar and N. Seliya. Comparative assessment of software quality classification techniques: An empirical case study. Empirical Softw. Engg., 9(3):229–257, Sept. 2004.
  27. T. M. Khoshgoftaar, N. Seliya, K. Gao. Detecting noisy instances with the rule-based classification model. Intell. Data Anal., 9(4):347–364, 2005.
  28. T. M. Khoshgoftaar, K. Gao, N. Seliya. Attribute Selection and Imbalanced Data: Problems in Software Defect Prediction In Proceedings: the 22nd IEEE International Conference on Tools with Artificial Intelligence, 137-144, 2010.
  29. H. Liu, L. Yu. Toward Integrating Feature Selection Algorithms for Classification and Clustering. IEEE Trans. on Knowl. And Data Eng., 17(4):491–502, 2005.
  30. S. Lessmann, B. Baesens, C. Mues, and S. Pietsch. Benchmarking classification models for software defect prediction: a proposed framework and novel findings. IEEE Transactions on Software Engineering, 34(4):485–496, 2008.
  31. G. Mausa, T. Galinac Grbac, and B. Basic. Multivariate logistic regression prediction of fault-proneness in software modules. In MIPRO, 2012 Proceedings of the 35th International Convention, pages 698–703, 2012.
  32. T.J. McCabe. 1976. A complexity measure. IEEE Transactions on Software Engineering, 2:308–320, 1976.
  33. N. Ohlsson, M. Zhao, and M. Helander. Application of multivariate analysis for software fault prediction. Software Quality Control, 7:51–66, May 1998.
  34. F. Provost. Machine Learning from Imbalanced Data Sets 101. In Proc. Learning from Imbalanced Data Sets: Papers from the Am. Assoc. for Artificial Intelligence Workshop, Technical Report WS-00-05, 2000.
  35. S. J. Raudys, A. K. Jain. Small Sample Size Effects in Statistical Pattern Recognition: Recommendations for Practitioners. IEEE Trans. Pattern Anal. Mach. Intell., 13(3):252–264, May 1991.
  36. P. Runeson, M. C. Ohlsson, and C. Wohlin. A classification scheme for studies on fault-prone components. In Proceedings of the Third International Conference on Product Focused Software Process Improvement, PROFES ’01, pages 341–355, London, UK, 2001. Springer-Verlag.
  37. M. Shepperd and G. Kadoda. Comparing software prediction techniques using simulation. IEEE Trans. Softw. Eng., 27(11):1014–1022, Nov. 2001.
  38. M. Shepperd, Q. Song, Z. Sun, C. Mair Data Quality: Some Comments on the NASA Software Defect Data Sets. IEEE Trans. Softw. Eng., http://doi.ieeecomputersociety.org/10.1109/TSE.2013.11, Nov. 2013.1:10
  39. T. Galinac Grbac, G. Mauˇsa and B. Dalbelo–Baˇsi ́c H. Wang, T. M. Khoshgoftaar, and A. Napolitano. An Empirical Study on the Stability of Feature Selection for Imbalanced Software Engineering Data. In Proceedings of the 2012 11th International Conference on Machine Learning and Applications - Volume 01, ICMLA ’12, pages 317–323, Washington, DC, USA, 317–323.
  40. S. Wang and X. Yao. Using Class Imbalance Learning for Software Defect Prediction. IEEE Transactions on Reliability, 62(2):434-443, 2012.
  41. G.M. Weiss. Mining with rarity: a unifying framework. In SIGKDD Explor. Newsl., 6(1):7–19, 2004.
  42. T. Zimmermann and N. Nagappan. Predicting defects using network analysis on dependency graphs. In Proceedings of the 30th international conference on Software engineering, ICSE ’08, pages 531–540, New York, NY, USA, 2008. ACM.