2012-04-20 4 views
1

나는 (클래스 불균형의 영향을받는) 내 데이터 집합을 오버 샘플링하기 위해 SMOTE를 사용하고 있습니다. 내 속성 중 일부는 정수 값을 갖고 다른 일부 속성은 소수점 두 자릿수를 갖지만 SMOTE는 소수 자릿수가 많은 새 인스턴스를 만듭니다. 그래서이 문제를 해결하기 위해 NumericCleaner Filter를 사용하고 원하는 소수의 수를 설정하는 방법을 생각했습니다. 이것은 작동하는 것 같지만 누락 된 값에 문제가 있습니다. 누락 된 각 값은 0.0 값으로 대체됩니다. 데이터 세트에서 누락 된 값을 사용하여 모델을 평가해야합니다. 그렇다면 NumericCleaner (또는 값을 반올림하는 데 사용할 수있는 다른 필터)를 사용하고 누락 값을 유지하려면 어떻게해야합니까?숫자 필터 및 누락 된 값 (Weka)

+0

내 대답이 문제를 해결하는 경우 대답 옆에있는 "확인"마크를 클릭하여 문제를 해결하십시오. 고맙습니다. –

답변

1

매우 흥미로운 질문입니다. 소수 그룹 (이 소수점을 생산하지만, 누락 된 값이 누락 된 값을 유지)

  • 다음 필터 -> unsupervised-> attribute-> NumericTransform
  • WEKA를 선택을 오버 샘플링하는

    1. 사용 쳐서 : 좋아, 여기에 솔루션입니다
    2. 이 필터를 클릭하고 속성 인스턴스 (소수점 기능이있는 곳)를 설정하고 "abs"대신 methodName에 "ceil"을 넣습니다.

    나는이 문제가 해결되기를 바랍니다.

    +0

    좋아요! 이것은 정수 값을 필요로하는 속성에 대해 완벽하게 작동하지만 사용자 정의 소수점 수를 설정할 때 누가 사용할 수 있습니까? java.lang.math는 SMOTE에 대해 십진수 값 –

    +0

    에 필요한 기능을 수행하지 않는 것 같으므로 십진수 뒤에 명확한 자릿수를 설정하는 옵션은 없습니다. –