수위_최대차
, 수위_변동성
, 수온_최대차
, 수온_변동성
, EC_최대차
, EC_변동성
)에서 0값을 NaN으로 처리한 뒤 평균값으로 대체함사고당일_최저기온
등)도 결측치를 평균으로 채움사고발생일자
→ 월(사고_월
)로 파생변수 생성 후 원본 컬럼 제거지층명
은 원-핫 인코딩 처리df_model_input
에 저장n_estimators=999
, contamination=0.0033
, random_state=42
로 설정fit()
을 통해 모델 학습 후, decision_function()
으로 이상치 점수 추출predict()
로 이상치 여부(-1: 이상치, 1: 정상) 예측예측된 이상치 수: (contamination 기준) = n개
평균 이상치 점수, 최소/최대 점수 출력
df_result_iso
에 이상치 점수(iso_score
)와 예측 결과(is_anomaly_pred_auto
)로 저장is_anomaly_pred_final
)final_threshold = np.percentile(iso_clf_score, 0.1)
final_anomalies_iso_df
에 저장정상 예측 비율: 00.00%
이상치 예측 비율: 00.00%
이상치 탐지 프로젝트에서는 Isolation Forest의 특성과 한계(특히 contamination 설정의 민감도)를 고려해, 수동 임계값 설정을 함께 적용하는 것이 중요함.
이 방법을 통해 모델이 자동 분류한 이상치 외에도, 보다 강력한 이상치 후보들을 선별하여 후속 분석 또는 실제 점검 대상으로 활용 가능함.
결과가 최악으로 나옴 진짜 망했다.........ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
ㅁㄴㅇㄹ..? 이게 뭔 뜻이야...?