본문 바로가기

코딩/머신러닝

k-neighbor 알고리즘

근처에 있는 (기본 5개) n_neighbor의 수를 표본으로 삼아 해당 표본 중 많은 클래스의 것이 정답이 된다.

 

1. 표본 만들기

 

import random

dorados_length = [random.uniform(40,80) for _ in range(35)]

dorados_weight = [length*10 + random.uniform(-10,10) for length in dorados_length ]

trout_length = [random.uniform(10,30) for _ in range(14)]

trout_weight =[length*10 + random.uniform(-5,5) for length in trout_length ]

 

2. 시각적으로 확

import matplotlib.pyplot as plt

plt.scatter(dorados_length,dorados_weight)
plt.xlabel('length')
plt.ylabel('weight')
plt.show()

 

plt.scatter(trout_length,trout_weight)
plt.xlabel("length")
plt.ylabel("weight")
plt.show()

 

 

3. 머신러닝이 원하는 데이터 형태로 바꾸어준다.

length = dorados_length + trout_length
weight = dorados_weight + trout_weight

fish_data = [[l,w] for l,w  in zip(length,weight)]

 

 

4.정답 만들기 -> 데이터만 학습하면 안됨. -> 지도 학습

fish_target = [1]*35+[0]*14
print(fish_target)

5.k -근접 알고리즘

 

from sklearn.neighbors import KNeighborsClassifier
kn = KNeighborsClassifier()
kn.fit(fish_data,fish_target)
kn.score(fish_data,fish_target)

6.예측해보기

kn.predict([[30,300]])

 

-> 데이터를 넣을 때도 2차원 배열로 넣어주었기 때문에 예측 데이터도 2차원 배열로 넣어주어야 한다.

'코딩 > 머신러닝' 카테고리의 다른 글

머신러닝이란?  (0) 2023.08.03