👩🏻💻 Point of Today I LEARNED 📌 SQL ● 코드카타 (81~85번 복습)
📌 Python ● 다중 분류 코드 최종 실습 ● 실무에 쓰는 머신러닝 기초 9강,머신러닝 특강 (이상탐지) ● 머신러닝 특강 (회귀)
다중 분류 실습하다가 코드 잘 짰다고 지피티한테 칭찬 받았다 ..
지피티는 알까..
내가 덕을 아주 많이.. 보고 있단걸 ....?
그래도 지금까지 실습연습한 머신러닝 코드
+ 새로운 시각화 코드로 확인받은 건데
칭찬 받으니 기분이.. 꽤 좋..네 ㅎ
다행이다 !
2. Python
2-1. 실무에 쓰는 머신러닝 기초 9강, 머신러닝 특강 (이상탐지)
1) 이상탐지란? (Anomaly Detection)
정상이 대부분이라고 가정하고, 정상패턴에서 벗어난 소수 패턴(이상치)을 찾아내는 기법
은행 거래 사기 예방, 해킹시도 파악, 고장 예측, 질병 조기진단 등
주로 비지도 학습으로 데이터의 분포/패턴 파악
지도학습으로 하면 정확도가 더 높지만
인간이 데이터마다 레이블링 해줘야해서 사실상 불가능
스타트업의 경우 이상치가 데이터 수가 부족하거나아직 어떤 게 비정상인 건지 잘 모를 수 있음
이상치 탐지 (Outlier Detection)와의 차이점
Outlier Detection : 단순히 통계적으로 극단값에 해당하는 수치를 찾는 것
Anomaly Detection : 단순 극단값 뿐만 아니라 패턴을 함께 고려해서 비정상을 판단 ☞ 시계열 순서, 주변 맥락, 다른 변수들과의 상관관계까지 고려
종류
One-Class SVM
정상데이터(One-Class)로만 결정경계(decision boundary)를 만들어서 이것만 학습
결정경계 바깥에 있는 데이터들은 비정상으로 판단
커널 트릭(하이퍼파라미터)으로 복잡한 고차원 공간에서도 작동가능 (rbf, ...)
스케일링 필수
ν(nu) : 결정 경계의 유연성 조절하는 파라미터/ 이상치 비율 임의지정하는 파라미터
Isolation Forest
랜덤포레스트에 기반해서 무작위로 특징 선택 → 분할하면서 샘플을 고립시키는 방식
가정 : 이상치는 극소수이고 빠르게 고립될 것이다.
트리 깊이로 이상 점수 부여
대규모 데이터셋에서도 빠르게 동작, 구현 간단, 직관적
contamination : 이상치 비율 임의지정하는 파라미터
Local Outlier Factor (LOF)
KNN이랑 비슷
이상치로 의심되는 샘플일수록 주변 이웃(Neighbor) 밀도가 현저히 낮음
비교해서 얼마나 외곽에 있는지 측정
Q. 이상탐지는 레이블이 없는 분류인건가? A. ❌ 지도학습을 했을 경우에는 분류로 봐도 무방하지만, 비지도 학습의 경우에는 분류와 다르다. * 분류 → 모든 클래스를 보고 학습 (클래스가 고르게 존재하는 데이터를 정상 / 비정상으로 분류) * 이상탐지 → '정상'데이터만으로 모델을 학습 (대부분 정상일 거라고 가정) ➜ 정상데이터만 잘 학습해두면 어떤 모양의 이상이 새로 입력되도 자동으로 이상으로 분류됨 ⭐️⭐️⭐️⭐️⭐️