본문 바로가기

배우기/복습노트[Python과 분석]

[복습] Python | 분석 | 이미지 인식 (2)

728x90
반응형

지난 시간 이미지 인식 분류 모델링을 PCA + KNN 를 적용하여 풀이하여보자.

 

우선 지난 시간 내용을 간단히 정리하면, knn 은 이미지의 유사도 기반으로 분류과제를 해결할 때 과거에 많이 사용한 기법이다. 최근에는 NN 모델을 많이 사용한다.  

머신러닝과 딥러닝의 차이는, 머신러닝은 데이터를 평탄화시켜야 하나 딥러닝은 2차원 이미지를 그대로 인식한다. 평탄화하여서도 머신러닝으로 분류 분석이 가능한데 왜 2차원 이미지 그대로 학습하는 것이 왜 학습 효과가 클까?

그 이유는 하나의 픽셀보다는 인근 픽셀의 신호를 인식하여야 할 필요가 있기 때문이다.

KNN으로 각각의 픽셀끼리의 유사성을 기반으로 이미지를 추출하는 것도 의미가 없진 않지만 flatten 시키면 인근 신호의 의미있는 추출이 어려울 수 있다. 하지만 PCA를 적용하면, PCA도 강도를 조절하기 때문에 flatten을 시키더라도 유의미한 신호를 가공할 수 있다. 즉 PCA+KNN은 차원을 축소하기보다는 새로운 신호를 얻기 위함이다. 차원 축소가 목적이 아닌 것이다.

 

 

1. 데이터 로딩

 

 

 

RGB → 이미지 변환

 

 

 

2. 머신러닝 학습에 필요한 데이터셋으로 변환

 

 

 

3. 스케일링

 

 

 

4. PCA로 변수 결합

PCA를 하면 변수를 결합하는 계수가 추출된다.

그리고, 모델을 하나 만들고 train 으로는 fit, transform을, test에는 fit을 제외한 transform을 해야 함에 주의할 것.

 

 

5. knn 모델링

 

PCA결과를 knn input value에 넣는 것이 pipeline이다.

 

 

6. 주성분 수 변화에 따른 예측률 변화

rough 하게 먼저 해보고, 그 다음에 세부적으로 찾아가는 과정을 추천한다. 세부적으로 시작하면 시간이 너무 오래 걸리기 때문이다.

 

 

make_pipeline으로 코드적 절감을 할 수 있다.

 

 

 

7. 결론 시각화

 

 

 

 

8. k의 변화에 따른 예측률 변화

위 튜닝 결과 반영하여components 수 고정

 

 

 

 

9. 결과 시각화

 

 

728x90
반응형