모델링 없이 언더샘플링 샘플링 기술만 얻을 수 있도록 데이터를 채우려면 어떻게 해야 합니까? 오버샘플링과 칭량에도 동일한 작업을 수행해야 합니다. 나는 이 세 가지 샘플링 기술(물론 한 번에 하나씩)을 사용하여 xgboost를 실행하려고 합니다. 따라서 과소 샘플링을 보여주는 하나의 데이터 세트, 오버 샘플링을 위한 다른 데이터 세트, 가중치를 위한 세 번째 데이터 세트가 필요합니다. 감사합니다.
안녕 @니샤쿠마르 ,
이를 수행할 수 있는 몇 가지 방법이 있을 수 있으며, 어떤 방법이 더 나은지에 대한 최종 목표가 무엇인지에 따라 달라질 수 있습니다.
한 가지 옵션은 하나의 변수(예: 10% 훈련 및 90% 검증)에 대해 높은 오프셋을 갖는 검증 열을 만든 다음 훈련 데이터의 하위 집합을 만들고 그에 맞게 조정하는 것입니다. 피팅 공식을 하위 집합 테이블에 저장한 다음 원래 데이터 테이블로 다시 가져와 훈련되지 않은 데이터에 피팅이 얼마나 잘 작동하는지 확인합니다. 그런 다음 검증 데이터를 "훈련" 데이터로 처리하여 반대 작업을 수행하고 위 단계를 반복하여 훈련("검증") 데이터 세트에 얼마나 잘 맞는지 확인할 수 있습니다. 모델링하는 결과를 기반으로 검증 열을 계층화하려는 경우 이 옵션을 수행할 수 있지만 상관하지 않으면 다른 옵션을 시도해 볼 수 있습니다.
또 다른 옵션은 행 > 행 선택 > 무작위로 선택을 사용하고 10% 또는 90% 또는 1%와 99%를 사용한 다음 각 항목의 하위 집합을 만들고 맞춤을 수행하고 공식을 다시 가져오는 것입니다. 원본 테이블의 사용되지 않은 데이터와 어떻게 작동하는지 비교해 보세요.
데이터에 가중치를 부여하는 것은 사용하는 데이터 세트와 데이터 처리 방법에 따라 크게 달라집니다. 이상값으로 보이는 항목이 있지만 데이터 세트에서 이를 제거할 이유가 없는 경우 피팅에 편향이 발생하지 않도록 다른 데이터보다 가중치를 낮게 지정할 수 있습니다. 그러한 경우를 처리하는 방법.
Boston Housing.jmp 샘플 데이터를 사용하여 두 번째 접근 방식을 시도했는데 꽤 좋은 결과가 나왔습니다. 오버샘플링 데이터 세트의 "검증" 데이터에 대해 더 큰 R^2를 제공하기 위해 데이터를 과대적합하지는 않았지만 검증 열을 사용하고 이를 사용하여 데이터를 맞추는 것보다 컸습니다.
그런데 XGBoost 플랫폼을 사용하여 데이터를 맞추고 (응답 = mvalue; 다른 모든 열은 X, Factors) Autotune 상자가 선택된 기본 설정을 사용했습니다.
결과 과소샘플링(1= 훈련, 0 = 검증):


오버샘플링(1=훈련, 0=검증):


mvalue를 기준으로 계층화된 .75/.25 학습/검증 열을 사용한 결과는 다음과 같습니다.


마지막 검증 데이터의 R^2는 오버샘플링 모델만큼 높지는 않지만, 훈련하기 위해 너무 많은 샘플을 채취할 때보다 모델 검증에 더 많은 샘플이 사용되었으므로 더 정확할 가능성이 높습니다.
어쨌든, 이것이 귀하의 특정 목표를 더욱 발전시키는 방법에 대한 몇 가지 아이디어를 제공하기를 바랍니다.
행운을 빌어요!,
DS
정말 감사합니다. 이러한 기술을 하나씩 시도해 보고 피드백/질문을 제공하겠습니다.