KR101746328B1 - 교차 프로젝트 결함 예측을 위한 최단 이웃점을 이용한 하이브리드 인스턴스 선택 방법 - Google Patents

교차 프로젝트 결함 예측을 위한 최단 이웃점을 이용한 하이브리드 인스턴스 선택 방법 Download PDF

Info

Publication number
KR101746328B1
KR101746328B1 KR1020160011231A KR20160011231A KR101746328B1 KR 101746328 B1 KR101746328 B1 KR 101746328B1 KR 1020160011231 A KR1020160011231 A KR 1020160011231A KR 20160011231 A KR20160011231 A KR 20160011231A KR 101746328 B1 KR101746328 B1 KR 101746328B1
Authority
KR
South Korea
Prior art keywords
instance
source
determining
training
training instance
Prior art date
Application number
KR1020160011231A
Other languages
English (en)
Inventor
류덕산
장종인
백종문
Original Assignee
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술원 filed Critical 한국과학기술원
Priority to PCT/KR2016/001006 priority Critical patent/WO2017131263A1/ko
Priority to KR1020160011231A priority patent/KR101746328B1/ko
Application granted granted Critical
Publication of KR101746328B1 publication Critical patent/KR101746328B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F15/18
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

분류기를 학습시키는 학습 방법 및 장치, 학습된 분류기를 이용하여 소프트웨어 결함 예측 장치가 개시된다. 일 실시예에 따른 학습 방법은 소스 인스턴스와 타겟 인스턴스 간의 유사도에 기초하여 소스 인스턴스들 중에서 제1 트레이닝 인스턴스를 결정하는 단계, 상기 소스 인스턴스들의 분포 특징에 기초하여 상기 소스 인스턴스들 중에서 제2 트레이닝 인스턴스를 결정하는 단계, 상기 제1 트레이닝 인스턴스 및 상기 제2 트레이닝 인스턴스를 이용하여 분류기를 학습시키는 단계를 포함할 수 있다.

Description

교차 프로젝트 결함 예측을 위한 최단 이웃점을 이용한 하이브리드 인스턴스 선택 방법{HYBRID INSTANCE SELECTION METHOD USING NEAREST-NEIGHBOR FOR CROSS-PROJECT DEFECT PREDICTION}
아래의 설명은 컴퓨터 엔지니어링에 관한 것으로, 더욱 구체적으로는 소프트웨어 결함 예측 기술에 관한 것이다.
소프트웨어가 디자인, 구현, 시스템의 진화에 중요한 영향을 미치는 시스템을 의미하는 소프트웨어 중심 시스템(software intensive system)의 실패로 인한 인적 손실 및 재정적 손실을 방지하는 것은 중요하다. 소프트웨어 결함은 시스템 결함을 유발할 수 있기 때문에, 소프트웨어 결함은 소프트웨어가 출시(release)되기 전에 가능한 한 빨리 검출되어야 한다.
소프트웨어 결함 예측(Software Defect Prediction: SDP)은 결함 경향 모듈(defect-prone module)을 식별하기 위한 소프트웨어 엔지니어링에서의 활발한 연구 영역 중 하나이다. 소프트웨어 결함 예측은 소프트웨어 시스템 중 결함이 존재할 만한 모듈을 사전에 예측하는 것이다. 소프트웨어 결함 예측은 가치있는 리소스(resource)를 결함 경향 모듈을 향하게 하는 것에 의해 소프트웨어 품질을 관리하는 것을 효과적으로 돕는다. 소프트웨어 결함 예측은 결함 예측 모듈을 정확히 예측하기 위해 충분한 로컬 트레이닝 데이터(local training data)를 요구하는 기계 학습 알고리즘의 도움으로 구현될 수 있다.
소프트웨어 결함 예측이 충분한 로컬 데이터를 요구할지라도, 로컬 데이터의 이용이 가능하지 않은 경우가 있다. 로컬 데이터를 충분히 가지지 않은 회사들은 분류기(classifier)를 구축하기 위해 외부 데이터를 이용하는 교차 프로젝트 결함 예측(Cross Project Defect Prediction: CPDP)을 이용할 수 있다. 교차 프로젝트 결함 예측은 다른 프로젝트 또는 회사의 결함 데이터를 이용하여 결함 예측 모형을 구축하는 것이다. 교차 프로젝트 결함 예측의 주된 어려움은 트레이닝 데이터와 테스트 데이터 간의 분포 차이에 기인한다.
일반적으로, 소프트웨어 결함 데이터세트 상에서 결함이 없는 무결함 클래스(clean class)에 대한 결함이 있는 결함 클래스(defective class)에 대한 비율은 매우 낮다. 이 문제는 분류기의 성능을 저하시키는 '클래스 불균형(class imbalance)'이라고 지칭된다. 클래스 불균형을 해결하기 위해, 예를 들어 데이터 리샘플링(data resampling), 비용 의존 학습(cost-sensitive learning), 앙상블 기법(ensemble method) 등이 제안되었다. 클래스 불균형을 학습하는 상황에서, 다수 클래스(majority class)의 성능을 심하게 저하시키지 않으면서, 소수 클래스(minority class)에 대해서는 높은 성능을 이끌어 내는 것이 중요하다.
비록 소수 클래스의 숫자가 다수 클래스의 숫자보다 훨씬 적을지라도, 그것에 대한 정확한 분류는 보다 가치가 있을 수 있다. 이는 소수 클래스의 오분류(misclassification)가 바로 소프트웨어 품질에 연결되어 있기 때문이다. 만일, 결함 경향 모듈이 정확하게 예측되지 않는다면, 결함 경향 모듈은 한정된 소프트웨어 품질 보증 제어에 의해 테스트되거나 또는 검사되는 기회를 가지지 못할 것이다. 따라서, 클래스 불균형에 대한 학습은 다수 클래스의 성능을 저하시키는 것 없이 소수 클래스에 대한 높은 성능뿐만 아니라 높은 전체 성능(예를 들어, 밸런스)를 제공하는 분류기를 획득하는 것을 목적으로 한다.
알고리즘 및 데이터 레벨에서 클래스 불균형의 중요 특징들을 고려함으로써 소수 클래스를 식별하기 위한 다양한 접근법들이 있어 왔다. 데이터 레벨에서 클래스 불균형을 다루는 간단한 방법은 under-sampling과 over-sampling을 포함하는 샘플링 기법이다. 알고리즘 레벨에서는, 비용 의존(cost-sensitive) 학습 기법들이 널리 적용되어 있다.
교차 프로젝트(cross-project: CP) 데이터는 검출 확률(probability of detection: PD)과 오경보 확률(probability of false alarm: PF)를 모두 증가시킨다. 높은 오경보 확률을 제공하는 분류기는 실용적이지 않기에, 수용할 만한 낮은 오경보 확률을 제공하는 예측 전략을 연구하는 것이 필요하다.
일 실시예에 따른 학습 방법은, 소스 인스턴스와 타겟 인스턴스 간의 유사도에 기초하여 소스 인스턴스들 중에서 제1 트레이닝 인스턴스를 결정하는 단계; 상기 소스 인스턴스들의 분포 특징에 기초하여 상기 소스 인스턴스들 중에서 제2 트레이닝 인스턴스를 결정하는 단계; 상기 제1 트레이닝 인스턴스 및 상기 제2 트레이닝 인스턴스를 이용하여 분류기를 학습시키는 단계를 포함할 수 있다.
일 실시예에 따른 학습 방법에서, 상기 제1 트레이닝 인스턴스를 결정하는 단계는, 해밍 공간(Hamming space)에서 상기 타겟 인스턴스를 중심으로 하는 제1 탐색 링(search ring)을 결정하는 단계; 상기 제1 탐색 링에 기초하여 상기 제1 트레이닝 인스턴스를 결정하는 단계를 포함할 수 있다.
일 실시예에 따른 학습 방법에서, 상기 제1 트레이닝 인스턴스를 결정하는 단계는, 상기 제1 탐색 링 안에 위치하는 소스 인스턴스가 하나인 경우, 상기 제1 탐색 링 안에 위치하는 소스 인스턴스를 중심으로 하는 제2 탐색 링을 결정하는 단계; 및 상기 제2 탐색 링에 기초하여 상기 제1 트레이닝 인스턴스를 결정하는 단계를 포함할 수 있다.
일 실시예에 따른 학습 방법에서, 상기 분류기를 학습시키는 단계는, 상기 제1 탐색 링에 기초하여 선택된 소스 인스턴스들의 클래스가 서로 다른 경우, 나이브 베이즈(naive Bayes: NB) 학습기를 이용하여 상기 분류기를 학습시킬 수 있다.
일 실시예에 따른 학습 방법에서, 상기 제2 트레이닝 인스턴스를 결정하는 단계는, 상기 소스 인스턴스의 전체 데이터 분포의 평균과 표준 편차를 이용하여 상기 소스 인스턴스들에서 상기 제2 트레이닝 인스턴스를 결정할 수 있다.
일 실시예에 따른 학습 장치는, 적어도 하나의 프로세서; 및 상기 프로세서에 의해 실행될 인스트럭션들(instructions)을 저장하는 적어도 하나의 메모리를 포함하고, 상기 인스트럭션들은, 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 소스 인스턴스와 타겟 인스턴스 간의 유사도에 기초하여 소스 인스턴스들 중에서 제1 트레이닝 인스턴스를 결정하는 단계; 상기 소스 인스턴스들의 분포 특징에 기초하여 상기 소스 인스턴스들 중에서 제2 트레이닝 인스턴스를 결정하는 단계; 상기 제1 트레이닝 인스턴스 및 상기 제2 트레이닝 인스턴스를 이용하여 분류기를 학습시키는 단계를 실행하도록 구성될 수 있다.
일 실시예에 따른 소프트웨어 결함 예측 장치는, 적어도 하나의 프로세서; 및 상기 프로세서에 의해 실행될 인스트럭션들을 저장하는 적어도 하나의 메모리를 포함하고, 상기 인스트럭션들은, 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 타겟 소프트웨어의 소스 파일을 파싱(parsing)하는 단계; 및 미리 학습된 분류기를 이용하여 상기 파싱된 소스 파일로부터 소프트웨어의 결함을 예측하는 동작을 수행하고, 상기 분류기는, 소스 인스턴스와 타겟 인스턴스 간의 유사도에 기초하여 결정된 제1 트레이닝 인스턴스와 상기 소스 인스턴스들 중에서 상기 인스턴스들의 분포 특징에 기초하여 결정된 제2 트레이닝 인스턴스를 이용하여 미리 학습될 수 있다.
도 1은 일 실시예에 따른 학습 방법의 동작을 설명하기 위한 흐름도이다.
도 2는 일 실시예에 따른 도 1의 학습 방법의 전체적인 동작을 설명하기 위한 도면이다.
도 3 내지 도 7은 본 발명에 따른 분류기와 기존에 제안된 다른 분류기들 간의 성능 비교 결과를 나타내는 도면들이다.
도 8은 일 실시예에 따른 학습 장치의 구성을 도시하는 도면이다.
도 9는 일 실시예에 따른 소프트웨어 결함 예측 장치의 구성을 도시하는 도면이다.
아래의 특정한 구조적 내지 기능적 설명들은 단지 실시예들을 설명하기 위한 목적으로 예시된 것으로, 권리 범위가 본 명세서에 설명된 내용에 한정되는 것으로 해석되어서는 안된다. 설명한 분야에 속하는 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 본 명세서에서 "일 실시예" 또는 "실시예"에 대한 언급은 그 실시예와 관련하여 설명되는 특정한 특징, 구조 또는 특성이 적어도 하나의 실시예에 포함된다는 것을 의미하며, "일 실시예" 또는 "실시예"에 대한 언급이 모두 동일한 실시예를 지칭하는 것이라고 이해되어서는 안된다.
제1 또는 제2 등의 용어가 다양한 구성요소들을 구분하기 위해 사용될 수 있지만, 구성요소들이 제1 또는 제2의 용어에 의해 한정되는 것으로 해석되어서는 안된다. 또한, 실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
소프트웨어 결함 예측은 소프트웨어에서 결함 경향 모듈을 식별하는 것을 목적으로 한다. 노동 집약적 작업을 요구하는 검사 및 테스트와 같은 소프트웨어 품질 보증 활동들뿐만 아니라 그러한 활동들을 위한 시간 및 인적 자원들은 제한된다. 소프트웨어 품질을 개선하고, 소프트웨어 품질 제어에 대한 비용을 절감하기 위해 리소스를 최적으로 할당하는 것이 필요하다. 리소스는 소프트웨어 결함 예측에 의해 결함 경향 모듈들에 보다 효과적으로 할당될 수 있다.
실시예들은 소프트웨어 결함 예측을 위한 분류기를 학습시키는 학습 방법과 관련하여, 교차 프로젝트 결함 예측을 위한 최단 이웃점(nearest-neighbor)을 이용한 하이브리드(hybrid) 인스턴스 선택 방법에 관한 것이다. 여기서, 인스턴스(instance)는 클래스(class)의 정의를 통해 만들어진 객체를 의미하고, 분류기는 소프트웨어의 결함을 예측하기 위한 모델이다.
실시예들은 k-최단 이웃점을 이용한 국부적 지식(local knowledge) 학습 및 나이브 베이즈(naive Bayes) 분류 기법을 이용한 전역적 지식(global knowledge) 학습을 선택적으로 수행할 수 있다. 실시예들은 클래스 경계(class boundary)와 최근접 클러스터 모두에 관한 지식에 기초하여 분류를 수행한다. 강한 국부적 지식을 가지는 인스턴스들이 최단 이웃점을 통해 동일한 클래스 레이블(class labe)로 식별될 수 있다. 실시예들은 교차 프로젝트 환경 하에서 높은 검출 확률과 낮은 오경보 확률을 제공하는 결함 예측 모델을 개발하기 위한 것으로, 제안된 학습 방법을 통해 소프트웨어 결함 예측을 위한 분류기의 성능이 전체적으로 개선되어 높은 검출 확률과 낮은 오경보 확률을 나타낼 수 있다.
실시예들은 클래스 불균형 문제를 해결하기 위해 교차 프로젝트 환경 하에서 높은 예측 성능을 위해 탐색 링(search ring) (LASER) 프레임워크를 이용한다. 또한, 실시예들은 최단 이웃점에 기초한 방법을 개선시키기 위해 최근접 클러스터(nearest cluster)를 추가적으로 고려한다.
실시예들은 소프트웨어 결함 예측 및 소프트웨어 공수 예측(software effort estimation) 등의 소프트웨어 분석 또는 텍스트 분류 및 영상 분류 등의 빅데이터 분석을 포함하는 데이터 마이닝(data mining) 영역에서 이용될 수 있다.
이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 일 실시예에 따른 학습 방법의 동작을 설명하기 위한 흐름도이다. 본 발명의 학습 방법은 도 8에 도시된 학습 장치(800)에 의해 수행될 수 있다. 교차 프로젝트 환경 하에서는, 소스 데이터와 타겟 데이터 간의 분포 차이를 해결하는 것이 요구된다. 이를 위해, 본 발명에서는 소스 데이터의 국보적 지식에 기초한 선택적 학습 기법을 제안한다.
도 1을 참조하면, 단계(110)에서 학습 장치는 소스 인스턴스와 타겟 인스턴스 간의 유사도에 기초하여 소스 인스턴스들 중에서 제1 트레이닝 인스턴스를 결정할 수 있다. 본 발명은 교차 프로젝트 결함 예측에 대한 높은 예측 성능을 제공하기 위해 기존 LASER 프레임워크를 확장시킨다. 학습 장치는 타겟 인스턴스와 유사한 소스 인스턴스인 제1 트레이닝 인스턴스를 결정할 수 있다. 이 단계는 테스트 데이터 인스턴스의 선택 과정이다.
실시예에 따르면, 소스 인스턴스와 타겟 인스턴스 간의 유사도는 해밍 거리(Hamming distance)에 기초하여 결정될 수 있다. 최소 해밍(Min-Ham) 거리는 이웃점이 존재하는 해밍 공간(Hamming space)에서의 최소 거리를 나타내며, 다음의 수학식 1과 같이 가정할 수 있다.
Figure 112016009837952-pat00001
여기서, xi, xj는 인스턴스 공간 X의 요소 벡터(element vector)들이다.
학습 장치는 해밍 공간에서 타겟 인스턴스를 중심으로 하고 최소 해밍 거리를 반지름으로 가지는 탐색 링을 결정할 수 있다. 학습 장치는 탐색 링에 기초하여 제1 트레이닝 인스턴스를 결정할 수 있다.
탐색 링 안에서 제1 트레이닝 인스턴스로 결정되는 소스 인스턴스를 선택할 때에는 3가지의 가능한 케이스들이 있다. 제1 케이스는 최소 해밍 거리를 가지는 탐색 링에서 단지 하나의 소스 인스턴스만이 나타나는 경우이고, 제2 케이스는 탐색 링에 기초하여 선택된 모든 소스 인스턴스들의 클래스가 동일한 경우이며, 제3 케이스는 탐색 링에 기초하여 선택된 소스 인스턴스들의 클래스가 서로 다른 경우이다.
제1 케이스에서, 타겟 인스턴스는 다른 모든 것들보다 하나의 제1 트레이닝 인스턴스에 가깝다. LASER 기법의 경우, 제1 케이스에서의 제1 트레이닝 인스턴스는 1-NN과 같은 탐색 링의 클래스를 반환한다. 본 발명에서는 LASER 기법과 다르게, 약한 국부적 지식을 가지는 위 하나의 제1 트레이닝 인스턴스의 최근접 클러스터를 더 탐색할 수 있다. 최근접 클러스터는 k-NN이 예측 변수(predictor)로 이용될 때 고려될 수 있다.
제1 케이스에 대해, 추가적인 3가지의 케이스들(제1-1, 제1-2, 제1-3 케이스들)이 가능할 수 있다. 학습 장치는 탐색 링(제1 탐색 링) 안에 위치하는 소스 인스턴스가 하나인 경우, 제1 탐색 링 안에 위치하는 소스 인스턴스를 중심으로 하는 제2 탐색 링을 결정하고, 결정된 제2 탐색 링에 기초하여 제1 트레이닝 인스턴스를 결정할 수 있다. 제1 케이스에서, 학습 장치는 해밍 공간에서 제1 탐색 링 안에 위치하는 소스 인스턴스를 중심으로 하고, 최소 해밍 거리를 반지름으로 하는 제2 탐색 링을 형성할 수 있다.
제1-1 케이스는 최소 해밍 거리를 가지는 제2 탐색 링 안에서 단지 하나의 소스 인스턴스가 나타나는 경우이고, 제1-2 케이스는 제2 탐색 링에 기초하여 선택된 모든 소스 인스턴스들의 클래스가 동일한 경우이며, 제1-3 케이스는 제2 탐색 링에 기초하여 선택된 소스 인스턴스들의 클래스가 서로 다른 경우이다. 제1-1 케이스에서의 소스 인스턴스는 약한 국부적 지식을 가지고, 제1-3 케이스에서의 소스 인스턴스들은 분류 경계(decision boundary) 근처에 존재하기 때문에, 해당 소스 인스턴스들은 클래스 레이블을 결정하기 위해 전역적 확률 분포(global probability distribution)을 필요로 할 수 있다. 따라서, 제1-1 케이스 및 제1-3 케이스에서의 소스 인스턴스들에 대해서는 나이브 베이즈 학습기(naive Bayes learner)가 이용될 수 있다. 제1-2 케이스에서의 소스 인스턴스들은 강한 국부적 지식을 가지고, 이에 따라 제1-2 케이스에서의 소스 인스턴스는 해밍 공간에서 k-NN과 같은 탐색 링의 클래스를 반환할 수 있다. 유사하게, 제2 케이스에서의 소스 인스턴스는 탐색 링의 클래스를 반환할 수 있다. 제3 케이스에서의 소스 인스턴스들에 대해서는 나이브 베이즈 학습기가 이용될 수 있다.
본 발명에서는 하이브리드 인스턴스 선택 전략, 즉 제1-2 및 제2 케이스에 대해서는 k-최근접(closest) 소스 인스턴스들을 이용하고, 제1-1, 제1-3 및 제3 케이스에 대해서는 모든 소스 인스턴스들을 이용할 수 있다. 약한 국부적 지식을 가지는 소스 인스턴스들은 분류 경계 근처에 위치하고, 이에 따라 해당 소스 인스턴스들의 클래스를 식별하기 위한 전역적 확률 분포가 요구된다. 본 발명에서는 높은 예측 성능을 위해 소스 인스턴스들의 강한 국부적 지식이 이용될 수 있다.
단계(110)에서와 같이, 학습 장치는 타겟 인스턴스 주위에 최소 해밍 거리를 반지름으로 하는 탐색 링에 기초하여 최단 이웃점 필터링(nearest neighbor filtering)을 수행할 수 있다. 단계(110)을 통해 각 탐색 링 안에 위치하는 소스 인스턴스들이 제1 트레이닝 인스턴스로서 소스 데이터세트 내에 남겨질 것이다.
단계(120)에서, 학습 장치는 소스 인스턴스들의 분포 특징에 기초하여 소스 인스턴스들 중에서 제2 트레이닝 인스턴스를 결정할 수 있다. 이 단계는 트레이닝 데이터 인스턴스의 필터링 과정으로, 본 과정을 통해 관계 없는 소스 인스턴스들이 걸러질 수 있다.
본 발명에서는 예측 성능을 저하시킬 수 있는 소스 인스턴스들을 걸러 내어 제2 트레이닝 인스턴스를 결정하기 위해 이상점 제거(outlier removing) 기법과 최단 이웃점 기법을 이용할 수 있다.
먼저, 소스 데이터에서 이상점들이 식별되어 제거될 수 있다. 본 발명에서 이상점들은 마할라노비스 거리(Mahalanobis distance)에 기초하여 검출될 수 있으며, 학습 장치는 각 소스 인스턴스의 마할라노비스 거리를 이용하여 제2 트레이닝 인스턴스를 결정할 수 있다. 마할라노비스 거리는 데이터 인스턴스와 전체 데이터 분포 간의 거리를 나타내고, 이것의 개념은 데이터 인스턴스가 전체 데이터 분포의 평균으로부터 얼마나 많은 표준 편차만큼 떨어져 있는지를 측정하는 것이다.
일 실시예에 따르면, 소스 인스턴스가 전체 데이터 분포의 평균으로부터 약 3배의 표준 편차(standard deviation)보다 멀리 떨어져 있는 경우에 해당 소스 인스턴스가 이상점(outlier)으로 결정될 수 있다. 이상점으로 결정된 소스 인스턴스는 학습 과정에서 제외된다. 본 발명에서는 이러한 과정을 통해 소스 데이터세트 분포 및 타겟 데이터세트 분포 모두에 기초하여 소스 인스턴스를 걸러낼 수 있다. 소스 데이터세트 분포로부터 결정된 이상점은 소스 데이터의 노이즈인 것으로 고려될 수 있고, 타겟 데이터세트 분포로부터 결정된 이상점은 예측을 돕지 않는 무관한 데이터 인스턴스를 나타낸다. 이와 같은 과정 이후에, 이상점이 없는 소스 인스턴스들을 포함하는 필터링된 소스 데이터세트로서 제2 트레이닝 인스턴스가 획득될 수 있다.
단계(130)에서, 학습 장치는 제1 트레이닝 인스턴스 및 제2 트레이닝 인스턴스를 이용하여 소프트웨어 결함 예측을 위한 분류기를 학습시킬 수 있다. 보다 나은 교차 프로젝트 결함 예측을 위해 타겟 데이터와 유사한 소스 인스턴스가 식별되어야 하고, 학습 장치는 단계(110)과 단계(120)을 통해 타겟 타이어와 유사한 소스 인스턴스를 식별할 수 있다. 학습 장치는 최종 트레이닝 데이터를 얻기 위해, 단계(110)을 통해 획득한 타겟 인스턴스와 유사한 제1 트레이닝 인스턴스들과 단계(120)를 통해 획득한 이상점이 없는 제2 트레이닝 인스턴스들을 합칠 수 있다. 클래스의 레이블을 결정하기 위해 전역적 확률 분포를 필요로 하는 트레이닝 인스턴스들은 위 합쳐진 트레이닝 데이터를 이용하는 나이브 베이즈 학습기에 의해 분류될 수 있다.
도 2는 일 실시예에 따른 도 1의 학습 방법의 전체적인 동작을 설명하기 위한 도면이다. 도 2를 참조하면, 최소 해밍 거리에 기초하여 타겟 인스턴스와 유사한 소스 인스턴스가 트레이닝 인스턴스로서 식별될 수 있다. 해당 트레이닝 인스턴스들은 국부적 지식/전역적 지식을 이용하는 것에 의해 선택적으로 학습될 수 있다. 강한 국부적 지식은 클래스 불균형 문제를 해결하기 위해 이용될 수 있다. 소스 인스턴스들 중에서 교차 프로젝트 결함 예측에 도움이 되지 않을 수 있는 소스 인스턴스들이 필터링될 수 있다. 전역적 지식을 요구하는 소스 인스턴스들이 나이브 베이즈 분류기에 의해 분류될 수 있다.
도 3 내지 도 6은 본 발명에 따른 분류기와 기존에 제안된 다른 분류기들 간의 성능 비교 결과를 나타내는 도면들이다.
결함 검출 비율과 전체 성능은 서로 상충되는 관계를 가지기 때문에, 결함 검출 비율과 전체 성능 모두가 분류기의 성능을 평가하기 위해 측정될 수 있다. 결함 검출 비율의 측정을 위해, 검출 확률(PD)과 오경보 확률(PF)이 이용된다. 전체 성능의 측정을 위해 예를 들어, 밸런스(Balance: Bal)와 같이 검출 확률과 오경보 확률 값을 모두 이용하는 기법이 이용될 수 있다. 밸런스 값은 검출 확률과 오경보 확률이 균형을 잘 이루는지를 나타내기 때문에 밸런스 값이 높을수록 좋다. 밸런스 값은 다음의 수학식 2와 같이 정의될 수 있다.
Figure 112016009837952-pat00002
밸런스 값은 실제 (PD 값, PF 값) 포인트와 이상적인 (PD 값, PF 값) 포인트인 즉 (1, 0) 간의 유클리디안 거리를 측정하는 것에 의해 결정될 수 있다. 밸런스는 결함이 있는 클래스(defective class)와 무결함(non-defective) 클래스 간의 성능이 분류기에 의해 얼마나 잘 균형을 이루는가를 나타낸다. 검출 확률과 밸런스는 오경보 확률과 달리 높은 값을 가지는 것이 바람직하다. 본 발명은 최적의 전체 성능 즉, 높은 검출 확률 및 낮은 오경보 확률을 가지는 분류기를 획득하는 것을 목적으로 한다.
다음의 표 1은 분류기들의 성능 평가를 위해 이용되는 오차 행렬(confusion matrix)을 나타낸다.
예측된 클래스
Buggy Clean
실제 클래스 Buggy TP(true positive) FN(false negative)
Clean FP(false positive) TN(true negative)
본 발명에 따른 분류기 및 기존에 제안된 다른 분류기들의 성능을 평가하기 위한 평가 모형은 다음과 같다.
본 발명에 따른 분류기가 교차 프로젝트 환경 하에서 다른 Burak 필터, 나이브 베이즈 분류기 및 LASER 분류기와 비교하였을 때 사용하기에 좀더 실용적인 성능을 제공하는지 여부를 알아본다.
또한, 본 발명에 따른 분류기가 내부 프로젝트 결함 예측(within-project defect prediction)에 비교할만한 예측 성능을 나타내는지 여부를 확인하기 위해 내부 프로젝트(within-project: WP) 환경 하에서 본 발명에 따른 분류기와 나이브 베이즈 분류기를 비교한다.
분류기들의 성능을 평가하기 위해, NASA 데이터세트를 이용하고, 검출 확률, 오경보 확률, 밸런스 값이 성능 측정을 위한 기준으로 선택되었다. PROMISE 저장소(repository)로부터 획득된 NASA 데이터세트 및 NASA MDP 소프트웨어 결함 데이터세트(software defect datasets)는 소프트웨어 결함 예측의 연구를 위해 널리 이용된다. 아래 표 2는 NASA 데이터세트의 특성을 나타내고, 표 3은 성능 평가에서 이용된 NASA 데이터세트의 특징을 보여준다.
프로젝트 인스턴스의 개수 Buggy의 퍼센트 설명
cm1 498 9.83 우주선 기구
kc1 1183 24.85 스토리지 관리
kc2 522 20.49 과학 데이터 처리
kc3 458 9.38 스토리지 관리
mc2 161 32.30 비디오 가이던스 소프트웨어
mw1 403 7.69 무중력 실험
pc1 1109 6.94 비행 소프트웨어
Figure 112016009837952-pat00003
교차-프로젝트 환경을 조직하기 위해, 각 NASA 데이터세트가 타겟 데이터로 선택되고, 나머지 데이터세트가 트레이닝 데이터로 이용된다. 본 평가에서 교차 프로젝트의 케이스와 내부 프로젝트의 케이스가 100 번 반복적으로 수행되었고, 중간 성능 값이 도출되었다.
평가 결과는 다음과 같다.
표 4는 평가의 대상이 된 분류기들의 검출 확률, 오경보 확률 및 밸런스 성능의 중간 성능 값들을 나타낸다. 각 평가에서 도출된 최고의 결과 값이 볼드체로 표시되어 있다. 이하에서, 'HISNN'은 본 발명에 따른 분류기의 평가 성능을 나타낸다.
Figure 112016009837952-pat00004
도 3은 7개의 데이터세트에 대해 평가한 5개 분류기들의 검출 확률(PD) 값과 오경보 확률(PF) 값에 대한 산점도(scatter plot)를 도시한다. 더 좋은 분류기일수록 더 높은 검출 확률 값과 더 낮은 오경보 확률 값을 가지고, 산점도에서 오른쪽 아래 영역에 보다 많은 포인트들을 가진다. 도 3을 참조하면, LASER 분류기는 가장 낮은 오경보 확률 값(0.245)을 나타내나, 검출 확률 값 (0.534)도 또한 가장 낮다. 도 3의 산점도에서, LASER 분류기의 성능을 나타내는 모든 포인트들은 왼쪽 하단 영역에 위치해 있다. 낮은 검출 확률 값은 결함을 검출할 확률이 낮다는 것을 나타내기 때문에, 이와 같은 분류기는 사용하기에 비실용적이다.
교차 프로젝트 환경 하에서의 나이브 베이즈 분류기 'CP NB'는 가장 높은 검출 확률 값 (0.857)을 제공하나, 또한 가장 높은 오경보 확률 값 (0.432)을 제공한다. LASER 분류기와 대조적으로, CP NB는 산점도에서 상단 오른쪽 영역에 더 많은 포인트들을 나타낸다. 높은 오경보 확률 값을 가지는 결함 예측기(defect predictor)가 이용되는 경우, 잘못된 알람(erroneous alarms)을 탐지하기 위해 많은 시간과 예산이 할당되어야 한다. 대개의 소프트웨어 어플리케이션에 대해, 매우 높은 오경보 확률을 제공하는 예측기를 이용하는 것은 비실용적이다.
Burak 필터는 오경보 확률 값 (0.416)을 가지고, CP NB와 유사하게 산점도에서 상단 우측 영역에 더 많은 포인트들을 나타낸다. 내부 프로젝트 환경 하에서의 나이즈 베이즈 분류기 'WP NB'는 높은 검출 확률 값 (0.820)과 낮은 오경보 확률 값 (0.377)을 나타낸다. 그러나, WP NB은 높은 오경보 확률 값들 (0.633, 0.454 및 0.600)을 생성하는 케이스들이 있다.
본 발명에 따른 분류기의 성능(도 3의 HISNN)은 다른 분류기들과 비교할 때 가장 좋은 전체 성능 (0.679)을 보여준다. 본 발명에 따라 학습된 분류기는 클래스 불균형의 상황에서 다수 클래스의 정확성을 상당히 낮추지 않고, 소수의 클래스에 대한 높은 정확성을 제공한다.
도 4는 모든 프로젝트들에 대한 위 5개 분류기들의 검출 확률(PD) 값, 오경보 확률(PF) 값 및 밸런스(Balance) 값에 대한 상자 도표들을 도시한다. 각 성능 평가 케이스의 제1, 제2, 제3 사분위수(quartile)를 나타내기 위해 상자 도표를 이용한다. 분류기들의 성능은 성능 값의 미디언(median) 값에 의해 정렬되었다. 상자 도표에서, 바(bar)는 제1-제3 사분위수 영역을 나타내고, 원(circle)은 미디언 값을 나타낸다.
본 평가에서는, 어느 분류기의 성능이 가장 좋은지를 체크하기 위해 5% 신뢰 레벨에서 Wilcoxon 등급 합(rank-sum) 테스트가 수행되었다. 개선의 정도를 평가하기 위해, A-통계 효과 크기(A-statistics effect size) 테스트가 수행되었다. 0.64보다 큰(또는, 036보다 낮은) A-statistics은 중간 효과 크기(medium effect size)를 의미한다. 아래 표 5는 위 두 테스트에 기초한 본 발명에 따른 분류기와 다른 분류기들 간의 비교 결과를 나타낸다. 표 5에서 볼드체는 검출 확률(PD) 값 및 밸런스(Bal) 값에 대해 본 발명에 따른 분류기가 비교되는 다른 분류기들에 비해 상당히 나은 결과를 나타냄을 나타낸다. 본 발명에 따른 분류기는 p-value < 0.05 또는 A-statistics > 0.64의 결과를 나타내고, 오경보 확률(PF) 값에 대해서는 A-Statistics < 0.36의 결과를 나타냄을 알 수 있다.
Figure 112016009837952-pat00005
분류기가 사용하기에 실용적이기 위해서는 높은 검출 확률과 낮은 오경보 확률을 가지는 것뿐만 아니라 높은 전체 성능을 제공하여야 한다. 표 5에서, Wilcoxon 등급-합 테스트는 교차 프로젝트 환경에서 본 발명에 따른 분류기와 다른 분류기들 간의 밸런스 값 차이가 p-value << 0.001으로서 통계적으로 의미가 있음을 나타낸다. 밸런스 값에 대한 효과 크기(effect size)는 중간 효과(medium effect)를 의미하는 0.64(LASER: 0.77, CP NB: 0.65, Burak filter: 0.66)보다 높다. 평가 결과는 본 발명에 따른 분류기가 교차 프로젝트 환경 하에서 다른 분류기들에 비해 실용적임을 나타낸다.
표 5에서, Wilcoxon 등급-합 테스트는 내부 프로젝트 환경에서 본 발명에 따른 분류기와 나이브 베이즈 분류기(WP NB) 간의 밸런스 값 차이가 p-value << 0.05으로서 통계적으로 의미가 있음을 나타낸다. 따라서, 본 발명은 내부 프로젝트 결함 예측(within-project defect prediction: WPDP)에 비교될만 하다.
도 5 내지 도 7은 각각 NASA 데이터세트를 구성하는 7개의 데이터 세트에 걸쳐 평가한 각 타겟 프로젝트에 대한 위 5개 분류기들의 검출 확률(PD) 값, 오경보 확률(PF) 값 및 밸런스(Balance) 값에 대한 상자 도표들을 도시한다.
아래 표 6 내지 표 12은 본 발명에 따라 학습된 분류기와 다른 방법에 의한 분류기들 간의 성능 비교 결과들을 나타낸다. 표 6은 cm1 프로젝트에 대한 성능 비교 결과, 표 7은 kc1 프로젝트에 대한 성능 비교 결과, 표 8은 kc2 프로젝트에 대한 성능 비교 결과, 표 9는 kc3 프로젝트에 대한 성능 비교 결과, 표 10은 mc2 프로젝트에 대한 성능 비교 결과, 표 11은 mw1 프로젝트에 대한 성능 비교 결과, 표 12는 pc1 프로젝트에 대한 성능 비교 결과를 각각 나타낸다.
Figure 112016009837952-pat00006
Figure 112016009837952-pat00007
Figure 112016009837952-pat00008
Figure 112016009837952-pat00009
Figure 112016009837952-pat00010
Figure 112016009837952-pat00011
Figure 112016009837952-pat00012
성능 비교 결과, 본 발명에서 제안된 방법에 따라 학습된 분류기가 교차 프로젝트 환경 하에서의 다른 분류기들보다 성능이 상당히 좋다는 것을 보여준다. 본 발명은 리소스 할당을 구성하는 결정 사항들을 지원함으로써 소프트웨어 품질을 효과적으로 관리하는데에도 이용될 수 있다.
도 8은 일 실시예에 따른 학습 장치의 구성을 도시하는 도면이다.
도 8을 참조하면, 학습 장치(800)는 하나 이상의 프로세서(810) 및 하나 이상의 메모리(820)를 포함한다.
프로세서(810)는 도 1 내지 도 2를 통하여 전술한 하나 이상의 동작을 수행한다. 예를 들어, 프로세서(810)는 소스 인스턴스와 타겟 인스턴스 간의 유사도에 기초하여 소스 인스턴스들 중에서 제1 트레이닝 인스턴스를 결정하고, 소스 인스턴스들의 분포 특징에 기초하여 소스 인스턴스들 중에서 제2 트레이닝 인스턴스를 결정하여 제1 트레이닝 인스턴스 및 제2 트레이닝 인스턴스를 이용하여 소프트웨어 결함 예측을 위한 분류기(830)를 학습시킬 수 있다. 이와 같은 프로세서(810)는 다수의 논리 게이트들의 어레이로 구현될 수 있으나, 다른 형태의 하드웨어로 구현될 수도 있음은 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
메모리(820)는 도 1 내지 도 2를 통하여 전술한 하나 이상의 동작을 수행하기 위한 인스트럭션들을 저장하거나 또는 학습 장치(800)가 운용되면서 획득된 데이터와 결과를 저장할 수 있다. 일부 실시예들에서, 메모리(820)는 비일시적인 컴퓨터 판독가능 매체, 예컨대 고속 랜덤 액세스 메모리 및/또는 비휘발성 컴퓨터 판독가능 저장 매체(예컨대, 하나 이상의 디스크 저장 디바이스들, 플래쉬 메모리 디바이스들, 또는 기타 비휘발성 솔리드 스테이트 메모리 디바이스들)를 포함할 수 있다.
도 9는 일 실시예에 따른 소프트웨어 결함 예측 장치의 구성을 도시하는 도면이다.
도 9를 참조하면, 소프트웨어 결함 예측 장치(900)는 하나 이상의 프로세서(910) 및 하나 이상의 메모리(920)를 포함한다. 프로세서(910)는 소프트웨어 결함을 예측하고자 하는 타겟 소프트웨어의 소스 파일을 파싱(parsing)하고, 미리 학습된 분류기(930)를 이용하여 파싱된 소스 파일로부터 소프트웨의 결함이 존재하는지 여부를 예측할 수 있다. 프로세서(910)는 클래스별로 결함의 유무를 예측한 결과를 도출할 수 있다. 메모리(920)는 전술한 하나 이상의 동작을 수행하기 위한 인스트럭션들을 저장하거나 또는 소프트웨어 결함 예측 장치(900)가 운용되면서 획득된 데이터와 결과를 저장할 수 있다. 분류기(930)는 도 1 내지 도 2를 통하여 전술한 학습 방법을 통해 미리 학습될 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
800: 학습 장치
810: 프로세서
820: 메모리
830: 분류기
900: 소프트웨어 결함 추정 장치
910: 프로세서
920: 메모리
930: 분류기

Claims (18)

  1. 분류기를 학습시키는 학습 방법에 있어서,
    소스 인스턴스와 타겟 인스턴스 간의 유사도에 기초하여 소스 인스턴스들 중에서 제1 트레이닝 인스턴스를 결정하는 단계;
    상기 소스 인스턴스들의 분포 특징에 기초하여 상기 소스 인스턴스들 중에서 제2 트레이닝 인스턴스를 결정하는 단계;
    상기 제1 트레이닝 인스턴스 및 상기 제2 트레이닝 인스턴스를 이용하여 상기 분류기를 학습시키는 단계
    를 포함하고,
    상기 제1 트레이닝 인스턴스를 결정하는 단계는,
    해밍 공간(Hamming space)에서 상기 타겟 인스턴스를 중심으로 하는 제1 탐색 링(search ring)을 결정하는 단계; 및
    상기 제1 탐색 링에 기초하여 상기 제1 트레이닝 인스턴스를 결정하는 단계
    를 포함하는 학습 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 제1 트레이닝 인스턴스를 결정하는 단계는,
    상기 제1 탐색 링 안에 위치하는 소스 인스턴스가 하나인 경우, 상기 제1 탐색 링 안에 위치하는 소스 인스턴스를 중심으로 하는 제2 탐색 링을 결정하는 단계; 및
    상기 제2 탐색 링에 기초하여 상기 제1 트레이닝 인스턴스를 결정하는 단계
    를 포함하는 학습 방법.
  4. 제3항에 있어서,
    상기 제2 탐색 링을 결정하는 단계는,
    해밍 공간에서, 상기 제1 탐색 링 안에 위치하는 소스 인스턴스를 중심으로 하고, 최소 해밍 거리를 반지름으로 하는 상기 제2 탐색 링을 결정하는 것을 특징으로 하는 학습 방법.
  5. 제1항에 있어서,
    상기 분류기를 학습시키는 단계는,
    상기 제1 탐색 링에 기초하여 선택된 소스 인스턴스들의 클래스가 서로 다른 경우, 나이브 베이즈(naive Bayes) 학습기를 이용하여 상기 분류기를 학습시키는 것을 특징으로 하는 학습 방법.
  6. 제3항에 있어서,
    상기 분류기를 학습시키는 단계는,
    상기 제2 탐색 링 안에 하나의 소스 인스턴스가 존재하는 경우 및 상기 제2 탐색 링에 기초하여 선택된 소스 인스턴스들의 클래스가 서로 다른 경우 중 적어도 하나의 경우에, 나이브 베이즈 학습기를 이용하여 상기 분류기를 학습시키는 것을 특징으로 하는 학습 방법.
  7. 제1항에 있어서,
    상기 유사도는,
    해밍 거리(Hamming distance)에 기초하여 결정되는 것을 특징으로 하는 학습 방법.
  8. 제1항에 있어서,
    상기 제2 트레이닝 인스턴스를 결정하는 단계는,
    상기 소스 인스턴스의 전체 데이터 분포의 평균과 표준 편차를 이용하여 상기 소스 인스턴스들에서 상기 제2 트레이닝 인스턴스를 결정하는 것을 특징으로 하는 학습 방법.
  9. 제1항에 있어서,
    상기 제2 트레이닝 인스턴스를 결정하는 단계는,
    각 소스 인스턴스의 마할라노비스 거리(Mahalanobis distance)를 이용하여 상기 소스 인스턴스들에서 상기 제2 트레이닝 인스턴스를 결정하는 것을 특징으로 하는 학습 방법.
  10. 제1항에 있어서,
    상기 제2 트레이닝 인스턴스를 결정하는 단계는,
    소스 데이터세트 분포로부터 결정된 이상점 및 타겟 데이터세트 분포로부터 결정된 이상점에 기초하여 상기 제2 트레이닝 인스턴스를 결정하는 것을 특징으로 하는 학습 방법.
  11. 제1항에 있어서,
    상기 분류기는,
    소프트웨어 결함 예측을 위한 분류기인 것을 특징으로 하는 학습 방법.
  12. 컴퓨팅 하드웨어가 제1항의 방법을 실행하도록 하는 인스트럭션들을 저장하는 비일시적인(non-transitory) 컴퓨터 판독 가능한 저장 매체.
  13. 적어도 하나의 프로세서; 및
    상기 프로세서에 의해 실행될 인스트럭션들(instructions)을 저장하는 적어도 하나의 메모리를 포함하고,
    상기 인스트럭션들은, 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
    소스 인스턴스와 타겟 인스턴스 간의 유사도에 기초하여 소스 인스턴스들 중에서 제1 트레이닝 인스턴스를 결정하는 단계;
    상기 소스 인스턴스들의 분포 특징에 기초하여 상기 소스 인스턴스들 중에서 제2 트레이닝 인스턴스를 결정하는 단계;
    상기 제1 트레이닝 인스턴스 및 상기 제2 트레이닝 인스턴스를 이용하여 분류기를 학습시키는 단계
    를 실행하고,
    상기 제1 트레이닝 인스턴스를 결정하는 단계는,
    해밍 공간(Hamming space)에서 상기 타겟 인스턴스를 중심으로 하는 제1 탐색 링(search ring)을 결정하는 단계; 및
    상기 제1 탐색 링에 기초하여 상기 제1 트레이닝 인스턴스를 결정하는 단계
    를 포함하는 것을 특징으로 하는 학습 장치.
  14. 삭제
  15. 제13항에 있어서,
    상기 제1 트레이닝 인스턴스를 결정하는 단계는,
    상기 제1 탐색 링 안에 위치하는 소스 인스턴스가 하나인 경우, 상기 제1 탐색 링 안에 위치하는 소스 인스턴스를 중심으로 하는 제2 탐색 링을 결정하는 단계; 및
    상기 제2 탐색 링에 기초하여 상기 제1 트레이닝 인스턴스를 결정하는 단계
    를 포함하는 학습 장치.
  16. 제13항에 있어서,
    상기 제2 트레이닝 인스턴스를 결정하는 단계는,
    상기 소스 인스턴스의 전체 데이터 분포의 평균과 표준 편차를 이용하여 상기 소스 인스턴스들에서 상기 제2 트레이닝 인스턴스를 결정하는 것을 특징으로 하는 학습 장치.
  17. 제13항에 있어서,
    상기 제2 트레이닝 인스턴스를 결정하는 단계는,
    소스 데이터세트 분포로부터 결정된 이상점 및 타겟 데이터세트 분포로부터 결정된 이상점에 기초하여 상기 제2 트레이닝 인스턴스를 결정하는 것을 특징으로 하는 학습 장치.
  18. 적어도 하나의 프로세서; 및
    상기 프로세서에 의해 실행될 인스트럭션들을 저장하는 적어도 하나의 메모리를 포함하고,
    상기 인스트럭션들은, 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
    타겟 소프트웨어의 소스 파일을 파싱(parsing)하는 단계; 및
    미리 학습된 분류기를 이용하여 상기 파싱된 소스 파일로부터 소프트웨어의 결함을 예측하는 동작을 수행하고,
    상기 분류기는,
    소스 인스턴스와 타겟 인스턴스 간의 유사도에 기초하여 결정된 제1 트레이닝 인스턴스와 상기 소스 인스턴스들 중에서 상기 인스턴스들의 분포 특징에 기초하여 결정된 제2 트레이닝 인스턴스를 이용하여 미리 학습되고,
    상기 제1 트레이닝 인스턴스는,
    해밍 공간(Hamming space)에서 상기 타겟 인스턴스를 중심으로 하여 결정된 제1 탐색 링(search ring)에 기초하여 결정되는 것을 특징으로 하는 소프트웨어 결함 예측 장치.
KR1020160011231A 2016-01-29 2016-01-29 교차 프로젝트 결함 예측을 위한 최단 이웃점을 이용한 하이브리드 인스턴스 선택 방법 KR101746328B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/KR2016/001006 WO2017131263A1 (ko) 2016-01-29 2016-01-29 교차 프로젝트 결함 예측을 위한 최단 이웃점을 이용한 하이브리드 인스턴스 선택 방법
KR1020160011231A KR101746328B1 (ko) 2016-01-29 2016-01-29 교차 프로젝트 결함 예측을 위한 최단 이웃점을 이용한 하이브리드 인스턴스 선택 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160011231A KR101746328B1 (ko) 2016-01-29 2016-01-29 교차 프로젝트 결함 예측을 위한 최단 이웃점을 이용한 하이브리드 인스턴스 선택 방법

Publications (1)

Publication Number Publication Date
KR101746328B1 true KR101746328B1 (ko) 2017-06-12

Family

ID=59219723

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160011231A KR101746328B1 (ko) 2016-01-29 2016-01-29 교차 프로젝트 결함 예측을 위한 최단 이웃점을 이용한 하이브리드 인스턴스 선택 방법

Country Status (2)

Country Link
KR (1) KR101746328B1 (ko)
WO (1) WO2017131263A1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108304316A (zh) * 2017-12-25 2018-07-20 浙江工业大学 一种基于协同迁移的软件缺陷预测方法
KR20200091601A (ko) * 2019-01-23 2020-07-31 한국과학기술원 다수의 레포지토리를 운영하는 프로젝트에서의 적시 결함 예측 장치 및 방법
CN112199287A (zh) * 2020-10-13 2021-01-08 北京理工大学 基于强化混合专家模型的跨项目软件缺陷预测方法
CN115269377A (zh) * 2022-06-23 2022-11-01 南通大学 一种基于优化实例选择的跨项目软件缺陷预测方法
US11900436B1 (en) * 2022-10-17 2024-02-13 Inmar Clearing, Inc. Natural language processing based product substitution system and related methods

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108647138A (zh) * 2018-02-27 2018-10-12 中国电子科技集团公司电子科学研究院 一种软件缺陷预测方法、装置、存储介质及电子设备
CN108648022A (zh) * 2018-05-10 2018-10-12 广州腾骋飞贸易有限公司 一种基于大数据的商品缺陷评估方法
CN109325118B (zh) * 2018-09-03 2023-06-27 平安科技(深圳)有限公司 不平衡样本数据预处理方法、装置和计算机设备
CN110175726B (zh) * 2019-06-18 2021-03-26 中国人民解放军国防科技大学 一种基于迁移性分析的跨项目缺陷预测方法
CN111367801A (zh) * 2020-02-29 2020-07-03 杭州电子科技大学 一种面向跨公司软件缺陷预测的数据变换方法
CN113157564B (zh) * 2021-03-17 2023-11-07 江苏师范大学 一种基于特征分布对齐和邻域实例选择的跨项目缺陷预测方法
CN113127342B (zh) * 2021-03-30 2023-06-09 广东电网有限责任公司 基于电网信息系统特征选择的缺陷预测方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110001466A (ko) * 2009-06-30 2011-01-06 경희대학교 산학협력단 언라벨링된 데이터를 이용한 미스라벨링된 트레이닝 데이터를 식별하는 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"교차 프로젝트 결함 예측 모형의 성능 비교", 정보과학회논문지 소프트웨어 및 응용 제40권 제12호(2013.12.)*
"최근접 이웃 규칙 기반 프로토타입 선택과 편의-분산을 이용한 성능 평가", 전자공학회 논문지 제52권 제10호(2015.10.)*

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108304316A (zh) * 2017-12-25 2018-07-20 浙江工业大学 一种基于协同迁移的软件缺陷预测方法
KR20200091601A (ko) * 2019-01-23 2020-07-31 한국과학기술원 다수의 레포지토리를 운영하는 프로젝트에서의 적시 결함 예측 장치 및 방법
KR102153810B1 (ko) 2019-01-23 2020-09-08 한국과학기술원 다수의 레포지토리를 운영하는 프로젝트에서의 적시 결함 예측 장치 및 방법
CN112199287A (zh) * 2020-10-13 2021-01-08 北京理工大学 基于强化混合专家模型的跨项目软件缺陷预测方法
CN112199287B (zh) * 2020-10-13 2022-03-29 北京理工大学 基于强化混合专家模型的跨项目软件缺陷预测方法
CN115269377A (zh) * 2022-06-23 2022-11-01 南通大学 一种基于优化实例选择的跨项目软件缺陷预测方法
US11900436B1 (en) * 2022-10-17 2024-02-13 Inmar Clearing, Inc. Natural language processing based product substitution system and related methods

Also Published As

Publication number Publication date
WO2017131263A1 (ko) 2017-08-03

Similar Documents

Publication Publication Date Title
KR101746328B1 (ko) 교차 프로젝트 결함 예측을 위한 최단 이웃점을 이용한 하이브리드 인스턴스 선택 방법
JP7223839B2 (ja) 異常検出および/または予知保全のためのコンピュータ実装方法、コンピュータプログラム製品およびシステム
Botezatu et al. Predicting disk replacement towards reliable data centers
CA2922108C (en) Systems and methods for predictive reliability mining
Panichella et al. Cross-project defect prediction models: L'union fait la force
KR101713985B1 (ko) 예지 정비 방법 및 장치
Gegick et al. Prioritizing software security fortification throughcode-level metrics
US9915925B2 (en) Initiated test health management system and method
Klinkenberg et al. Data mining-based analysis of HPC center operations
KR102252189B1 (ko) 머신 러닝을 이용한 고장 진단 관리 시스템 및 방법
TWI836175B (zh) 先進在線零件平均測試
US8560279B2 (en) Method of determining the influence of a variable in a phenomenon
US10775270B2 (en) System and method for monitoring a turbomachine, with indicator merging for the synthesis of an alarm confirmation
US11494690B2 (en) Apparatus and method of high dimensional data analysis in real-time
Zhang et al. Multi-site structural damage identification using a multi-label classification scheme of machine learning
Gopalakrishnan et al. IIoT Framework Based ML Model to Improve Automobile Industry Product.
KR102154413B1 (ko) 음향 방출 결함 신호 검출 장치 및 방법
Nascimento et al. A cost-sensitive approach to enhance the use of ML classifiers in software testing efforts
US20150149024A1 (en) Latency tolerant fault isolation
US11719727B1 (en) Systems and methods for screening particle source manufacturing and development test data
US20220335254A1 (en) Computer vision inferencing for non-destructive testing
Liu et al. Data fusion for the diagnostics, prognostics, and health management of aircraft systems
US20230035541A1 (en) Optimizing a prognostic-surveillance system to achieve a user-selectable functional objective
KR102489115B1 (ko) 제조품의 비전 검사를 위한 심층 학습 방법 및 장치
Hülsmann et al. Classification of uncertain data: An application in nondestructive testing

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant