상세 컨텐츠

본문 제목

[PYTHON] &[Muchine Learning] KNeighborsClassifier 을 이용한 xor , and 연산자

1 a n G u a g e /PYTHON

by 동혼 2019. 8. 31. 16:11

본문

 

 

 

 

 

 

v 머신러닝은 python을 사용한다

 

 

 

 

KNeighborsClassifier 사용법 

 

____________________________________________________

 

 

 

 

1. import 

2. 이웃변수 = n_neighbors      로 참고이웃 개수 정해주기

3. 이웃변수.fit( 자료, 답 )

4. 연습변수 = 이웃변수.predict(연습시킬 것 )     

      연습변수를 설정하여, 연습시킬 값을 predict로 연습시킨다.

5. metrics.accuracy_score(연습변수, 실제 답) 

      연습의 답을 넣어주면 , 연습변수(가 연습시킨게 ) 실제 답과 몇 퍼로 근접한 지 알 수 있다 

 

 

 

____________________________________________________

 

 

 

 

 

KNeighborsClassifier 특징 

 

____________________________________________________

 

 

 근접한 이웃의 갯수(k)를 정하고 이웃의 답을 평균내어 결과를 예측하는 모델이다

        ( 분류 knn 일 경우 투표로 정하고 , 

          회귀 knn 일 경우 평균으로 정한다)

 

• k 값과 모델의 복잡도가 반비례 하다 (noise 값에 민감)

( k 값과 모델이 작을 수록 모델의 복잡도가 상대적으로 증가하고  

/ 반대로 k 값이 작아질수록 모델의 복잡도가 낮아진다. )

 

100개의 데이터를 학습하고 k100개로 설정하여 예측시, 빈도가 가장 많은 클래스 레이블로 분류

( 데이터 100개 중 60개가 a , 40개가  b 일 경우 예측결과는 항상 a 가 나온다 ) 

 

metric  :  유클리디언 거리 방식

weight  : 가중치 함수

     -  uniform : 가중치를 동등하게 설정.

     -  distance :  가중치를 거리에 반비례하도록 설정

 

 

-

 

 

훈련 데이터 세트가 크면(특성,샘플의 수) 예측이 느려진다

 

수백 개 이상의 많은 특성을 가진 데이터 세트와 특성 값 대부분이 0인 희소(sparse)한 데이터 세트에는 잘 동작하지 않음

 

거리를 측정하기 때문에 같은 scale을 같도록 정규화가 필요함

 

 

____________________________________________________

 

 

 

 

 

 

 

 or 연산자 

 

 

v 데이터프레임을 만들기 위해서 pandas를 import해준다

 

 v k-nearest neighbors (k-nn) = k - 최근접 이웃 분류 알고리즘 은 

neighboers 모듈아래 KNeighborsClassifier 클레스에 구현되어있다

-

 

v DataFrame 으로 xor 데이터를 만들어준다

v 입력받는 값 두개와 xor 의 답이라는 표시를 cloumns 를 통해 표시해준다.

 

 

 

 

 

 

v 답과 학습시킬 데이터로 나누기 위해서   x , y 로 나눈다, loc를 통해 cloumns 값으로 구분한다.

index를 안다면 & 사용하고 싶다면 iloc 를 사용해서 잘라도 된다 

> iloc 사용시 > 

x= df.iloc[ : , : 2]
=df.iloc[ : , 2]
로 사용한다.

 

-

v  pre = clf.predict([[0,0] , [1,0]] ) 

#연습시킬것을 넣어줌


v metrics.accuracy_score(pre, [0,1])

# 연습의 답을 넣어주고 연습과 비교 하면 몇퍼의 확률로 맞췄는지 알 수 있다 

-

 

  • clf = KNeighborsClassifier(n_neighbors=1)
  •  > 근접하는 값을 설정하는 코드 :   n_neighbors =1  > 하나만 본다는 뜻이다.
  • knn은 끼리끼리, 설정한 값에 비슷한 얘랑 나옴
  • 학습시킬땐 clf.fit(문제, 답) 적기
  • 정확도 판별 > metrics.accuracy_score(예측결과(=변수), 실제답)
  • 정확도가 소수점으로 표기됨 (0.9 > 90퍼) > 실제 100퍼 나오면 데이터 의심 > 문제에 답을 넣었을 경우가 있다

 

 

 

 

 

 

 and 연산자 

 

 

 

 

 

v and_input 으로 and 연산자 값을 입력해준다

 

v df2  에 저장하여 DataFrame 을 설정한다.

 

 

 

 

v x1 , y1 으로답과 학습시킬 데이터로 나눈다.

 v shape로 형태 확인 

 

-

 

v n_neighbors 으로 참고할 이웃의 갯수 정해주기

 

v 참고할 이웃의 갯수를 정한 뒤 연습 ( clf.predict )을 시킨다.

 

 metrics.accuracy_score( 연습 , 답 ) 을 넣어주면

몇퍼의 확률로 맞췄는 지 알려준다. 

 

 

 

 

 

 

 

 

 

 

 

 

관련글 더보기

댓글 영역