>

다음 간단한 주어진 데이터 셋 X 의 특이 치를 탐지하는 IsolationForest 알고리즘  와이즈 비츠  샘플과 20K  기능, 나는 다음을 실행

16

결과를 ​​얻습니다 :

train_X, tesy_X, train_y, test_y = train_test_split(X, y, train_size=.8) clf = IsolationForest() clf.fit(X) # Notice I am using the entire dataset X when fitting!! print (clf.predict(X))

이 질문은 : 전체 데이터 셋 [ 1 1 1 -1 ... 1 1 1 -1 1] 를 사용하는 것이 논리적으로 맞습니까?   X 에 장착 할 때  또는 오직 IsolationForest ?

train_X
  • 답변 # 1

    예, 궁극적으로 전체 데이터 세트를 학습하는 것이 논리적으로 정확합니다.

    이를 염두에두고 훈련 세트 성능 대비 테스트 세트 성능을 측정 할 수 있습니다. 테스트 세트가 트레이닝 세트와 유사한 분포에서 나온 것인지 알 수 있습니다.

    시험 세트가 훈련 세트와 비교하여 비정상 점수를 얻는 경우 향후 데이터가 유사 할 것으로 예상 할 수 있습니다. 이 경우 더 많은 데이터를 통해 '정상적인'항목을보다 완벽하게 파악하고 싶습니다.

    시험 세트가 훈련 세트와 비슷한 점수를 얻는다면 모든 데이터에 대해 훈련 된 최종 격리 숲에 더 편합니다.

    아마도 sklearn TimeSeriesSplit CV를 이런 방식으로 사용하여 문제에 충분한 데이터 양을 알 수 있습니까?

    변칙 탐지기에 대한 레이블이없는 데이터이므로 '정상'을 정의 할 때 더 많은 데이터가 더 좋습니다.

  • 이전 python - 사용자가 프로그램 및 시프트 목록을 종료하도록하는 방법
  • 다음 ajax - 한 번의 통화로 MVC 잠금 및 잠금 해제 세션