2014-03-25 13 views
2

WEKA에서 SMOTE 필터를 사용하여 데이터의 균형을 잡습니다.
두 매개 변수 nearestNeighborspercentage에 대해 의문의 여지가 있습니다.SMOTE 필터와 데이터의 균형을 맞추기 위해 WEKA에서 매개 변수를 설정하는 방법은 무엇입니까?

nearestNeighbors - 사용할 가장 가까운 이웃 수입니다.
백분율 - 생성 할 SMOTE 인스턴스의 백분율.

어떻게 설정해야합니까?

나는 이웃 사람의 수가 그것이 만들 예정인 syntetic 견본의 양이라고 생각했다.
그래서 백분율의 의미는 무엇입니까? 그것은 이웃 사람의 수보다 작거나 같아야합니다, 그렇죠? syntetic 샘플의 비율이 고려됩니까?

예 :
나는 10 개의 이웃과 200 %를 어떻게 배치할까요?
누구나 올바른 사용법을 알려 줄 수 있습니까?

+0

이웃어 = 200 및 백분율 = 300으로 설정하면 이웃수 = 100 및 백분율 = 300 인 동일한 수의 syntetic 샘플을 얻게됩니다. 차이가있을 것인가? 과장 될 건가요? – user3290180

답변

5

nearestNeighbors 매개 변수는 inbetween 합성 인스턴스를 작성하는 데 가장 가까운 이웃 인스턴스 (현재 고려되는 인스턴스를 둘러싼)의 수를 나타냅니다. 기본값은 5입니다. 따라서 실제 실제 인스턴스의 5 개의 가장 가까운 이웃 요소의 속성이 새 합성 값을 계산하는 데 사용됩니다.

percentage 매개 변수는 인스턴스 수가 적은 클래스 수를 기반으로 생성되는 합성 인스턴스 수를 나타냅니다 (기본값 : -C 옵션을 설정하여 다수 클래스를 사용할 수도 있음). 기본값은 100입니다. 즉, 소수 클래스에 인스턴스가 25 개있는 경우 해당 인스턴스에서 가장 가까운 이웃 값을 사용하여 25 개의 인스턴스가 종합적으로 만들어집니다. 50 % 합성 인스턴스가 200 % 등으로 생성됩니다.

자세한 내용은 weka doc of SMOTEoriginal paper of Chawla et al. 2002을 참조하십시오. 여기서 전체적인 방법에 대해 자세히 설명합니다.

나를 위해 Weka SMOTE는 인스턴스를 오버 샘플링하는 것으로 나타났습니다. 따라서 감독 된 SpreadSubsample 필터를 사용하여 나중에 소수 클래스 인스턴스의 샘플을 언더 샘플링 할 수 있습니다.

1

두 클래스가 있고 각 클래스에서 같은 수로 끝나기를 원하면 큰 클래스의 샘플 수를 작은 클래스의 샘플 수로 나눠야합니다. 그것의 분수 부분을 취하여 100을 곱하십시오. 이것은 P 매개 변수입니다.