Кластеризации данных в области прикладной информатики и программной инженерии на примере зарубежного опыта и зарубежных публикаций



бет13/17
Дата15.12.2022
өлшемі177,5 Kb.
#57493
1   ...   9   10   11   12   13   14   15   16   17
Экспериментальное исследование
В нашем эмпирическом исследовании использовались наборы данных из двух программных проектов NASA (написанных на C++), обозначенных как JM1 и KC2. Измерения программного обеспечения и данные о неисправностях были собраны на уровне программной функции, подпрограммы или метода, поэтому программный модуль - это программная функция, подпрограмма или метод. В JM1 некоторые модули с одинаковыми значениями атрибутов имели разные метки дефектов. Когда мы удалили эти непоследовательные программные модули и модули с отсутствующими значениями из JM1, осталось 8 850 модулей. Мы обозначили сокращенный набор данных JM1 как JM1-8850. Набор данных KC2 содержит 520 программных модулей и обозначен KC2-520.
Какие метрики программного обеспечения включить в данный набор, зависит от того, какие инструменты для сбора данных метрик доступны, а также от рассматриваемого проекта. В другом проекте для оценки качества программного обеспечения может использоваться другой набор показателей.8 В таблицах 1 и 2 приведены основные статистические данные, которые мы предоставили эксперту для JM1-8850 и KC2-520. Мы получили их в результате взаимодействия с экспертом, который использовал их в своей работе по маркировке.
Большинство программных модулей не имели сбоев. В JM1-8850 1 687 модулей имели как минимум одну и как максимум 26 неисправностей. В KC2-520 106 модулей имели не менее одной и не более 13 неисправностей. Модуль без дефектов был помечен 0 (не подвержен сбоям), а модуль с одним или более дефектами был помечен 1 (подвержен сбоям). Однако мы не использовали эти метки в кластерном и экспертном анализе. Они использовались только для оценки эффективности маркировки эксперта.
Экспериментальные условия
Мы реализовали алгоритмы k-means и Neural-Gas на языке C, с интерфейсом к Matlab и компиляцией в исполняемые файлы Matlab (mex), которые можно вызывать непосредственно из Matlab. Исполняемые файлы были в двоичном коде и поэтому выполнялись быстрее, чем обычный код Matlab. Мы использовали пакетное обучение для алгоритма k-means с критерием относительной сходимости 1e-4 (то есть алгоритм останавливается, если относительное изменение функции стоимости между двумя последовательными итерациями меньше 1e-4). Для наших наборов данных алгоритм k-means всегда сходился в течение 100 итераций. Мы использовали онлайн-версию алгоритма Neural-Gas, а параметр температуры начинался с K/2 и постепенно уменьшался до 0,01 в конце 100 эпох обучения.
Мы установили число кластеров K (параметр, необходимый для алгоритмов k-means и Neural- Gas) равным 30 для JM1-8850 и 20 для KC2-520. Эвристическим соображением при выборе 20 и 30 был баланс между уменьшением числа представителей программных модулей, которые должен исследовать эксперт, и получением точного (гранулярного) представления исходных данных измерений программного обеспечения. И k-means, и Neural-Gas создали несколько пустых кластеров (4 и 2, соответственно) для KC2-520, поэтому фактическое количество кластеров, которые оценил эксперт, было меньше 20 для KC2-520. Вместо того, чтобы оценивать 520 или 8 850 программных модулей по одному, эксперту пришлось обозначить всего 20 или 30 групп.
Для оценки качества кластеризации мы использовали цель MSE, представленную ранее, и среднюю чистоту. Чистота кластера - это процент наиболее преобладающей категории (подверженной или не подверженной неисправностям) в кластере, а средняя чистота - это среднее значение по всем кластерам. Она варьируется от 0 до 1 - чем выше число, тем лучше средняя чистота.
Для оценки решения эксперта по маркировке мы использовали метки дефектов, предоставленные вместе с набором данных. В частности, мы сообщили об общей ошибке классификации, проценте ложноположительных результатов (FPR, процент модулей без дефектов, ошибочно помеченных как дефектные) и проценте ложноотрицательных результатов (FNR, процент модулей с дефектами, ошибочно помеченных как дефектные).


Достарыңызбен бөлісу:
1   ...   9   10   11   12   13   14   15   16   17




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет