AI/Machine Learning

[Python] 머신러닝 기초-9 로지스틱 회귀를 통해 물고기 분류 예제 / 로지스틱 회귀란?

Jeong Jeon
반응형

생선의 크기, 무게, 높이 등 이 주어졌을때 7개의 생선에 대한 확률을 구하는 문제

 

  • 데이터준비

  • 물고기 종류를 타겟으로 잡는다.
    • 물고기종류에 대한 확률을 내는 과제이니, 확인!

  • 훈련세트와 테스트세트를 만든다.
  • 각 데이터세틀를 표준화 전처리한다. =>Scaling

 

  • K-최근접 이웃 분류기를 사용하여 정확도를 확인한다.
    • 이웃의 개수는 대충 3개로 지정했다.

여기서 target 데이터에는 7가지 물고기 종류가 들어있다는것을 잊으면 안됀다.!

이렇게 여러개의 target / 2개이상의 클래스가 포함된 문제를 다중분류라고 한다.

 

  • target 확인 = kn.classes_
  • 테스트세트 중 처음 5개의 테스트input에 대한 target(물고기종류) 예측

  • 테스트 세트에서 뽑아낸 5개 샘플의 각 클래스별 확률을 추출해보자
  • 각 클래스별로 확률이 어떻게 배분되어있는지 확인 할 수 있다.

첫번째 샘플의 확률은 정확하게 3번째 = Perch가 1로 100%를 보여준다. 우리 모델이 예측했던 것과 정확하게 일치하는것을 볼수 있다.

네번째 샘플의 확률은 0.6과 0.3 두가지로 나뉘었다. = 0.6 : Perch, 0.3 : Roach

다른것들도 추가적으로 확인하기 바란다. => 어떻게 예측값이 나오게 됬는지 알수있다.

 

그렇다면 네번째 샘플로 최근접이웃이 누구이기에 저런 확률로 나왔는지 확인해보자

kn.kneighbors를 통해 최근접 샘플들을 확인했더니, 위와 같이 결과를 얻을 수 있었다.

 

 

하지만 우리가 현재 구한 확률은 간단하게 0.6 , 0.3 이런식이다.. 다음 게시글에서 조금더 정확한 확률을 구하기 위해 이진분류를 포함시켜보자

 

 

반응형