※ KNN : k-최근접 이웃 분류 (k-Nearest neighbor)
import numpy as np
# 개, 말, 새
x = [140, 150, 160, 170, 180]
y = [0, 0, 1, 1, 2] # 초:0, 중:1, 고:2
x_test = [120, 158, 177]
* 위 x 데이터를 KNN 모델을 fit해서 x_test를 예측하세요
x = np.array(x).reshape((-1, 1)) # 1d를 2d로 모양 변경, -1자리는 자동으로 계산해서 변경하라는 뜻
x_test = np.array(x_test).reshape((-1, 1))
y = np.array(y)
x.shape
→ (5, 1)
from sklearn.neighbors import KNeighborsClassifier # 대문자로 시작하면 클래스
model = KNeighborsClassifier(n_neighbors=1) # 객체 만들기, shift+tab 설명
model # 객체 정보 보자
→ KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski', metric_params=None, n_jobs=1, n_neighbors=1, p=2, weights='uniform')
model.fit(x, y) # 모델을 핏팅해라
→ KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski', metric_params=None, n_jobs=1, n_neighbors=1, p=2, weights='uniform')
model.predict(x_test) # 이게 뭔지 예측해봐라
→ array([0, 1, 2])
* reshape연습
a = np.arange(9)
a, a.shape, a.ndim
→ (array([0, 1, 2, 3, 4, 5, 6, 7, 8]), (9,), 1)
np.reshape(a, (-1, 1))
→ array([[0], [1], [2], [3], [4], [5], [6], [7], [8]])
# 동물분류 새, 개, 말
# 특징(다리 갯수, 털 길이 cm)
x = [[2, 7.0], [2, 4.0], [4, 10], [4, 9], [4, 3], [2, 5.0]]
y = [0, 0, 1, 1, 2, 2] # 새:0, 개:1, 말:2
x_test = [[2,9], [4, 4]]
from sklearn.neighbors import KNeighborsClassifier # 대문자로 시작하면 클래스
model = KNeighborsClassifier(n_neighbors=1).fit(x,y)
model.predict(x_test)
→ array([0, 2])
- list : 데이터 저장, 관리용
- array : 연산용
a = [1,2,3]
a, type(a)
→ ([1, 2, 3], list)
a.append(4)
a
a.insert(4,100)
a
→ [1, 2, 3, 4, 100]
aa = np.array(a)
aa, type(aa)
→ (array([ 1, 2, 3, 4, 100]), numpy.ndarray)
aa + aa
→ array([ 2, 4, 6, 8, 200])
a + a
→ [1, 2, 3, 4, 100, 1, 2, 3, 4, 100]
'Deep learning > Code' 카테고리의 다른 글
분류2 classification (0) | 2020.01.28 |
---|---|
분류 classification (0) | 2020.01.23 |
object_detection_yolo_keras (2) | 2020.01.22 |
object_detection_yolo_darknet (0) | 2020.01.22 |
2020_01_22 VGG16 (0) | 2020.01.22 |