반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

bro's coding

sklearn.matplotlib로 knn표현하기 본문

[AI]/python.sklearn

sklearn.matplotlib로 knn표현하기

givemebro 2020. 4. 9. 15:21
반응형

https://broscoding.tistory.com/114

 

머신러닝.iris data 불러오기

import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import load_iris iris=load_iris() iris dir(iris) ['DESCR', 'data', 'feature_names', 'target', 'target_names'] iris.data.shape..

broscoding.tistory.com

https://broscoding.tistory.com/115

 

머신러닝.테스트데이터 뽑기

from sklearn.model_selection import train_test_split X_train,X_test,y_train,y_test=train_test_split(iris.data,iris.target,shuffle=False) # shuffle=False : 섞지 않겠다 # 기본 75% / 25% np.bincount(y_..

broscoding.tistory.com

col1=3
col2=1

X=iris.data[:,[col1,col2]]
y=iris.target

X_train,X_test,y_train,y_test=train_test_split(X,y)
model=KNeighborsClassifier(5)
model.fit(X_train,y_train)





# draw bountdary
# 정밀도
scale=10000

# 그림의 범위 설정
xmax=X_train[:,0].max()+X[:,0].std()/2
xmin=X_train[:,0].min()-X[:,0].std()/2
ymax=X_train[:,1].max()+X[:,1].std()/2
ymin=X_train[:,1].min()-X[:,1].std()/2
# 축을 scale갯수로 나누기
xx=np.linspace(xmin,xmax,scale)
yy=np.linspace(ymin,ymax,scale)
# 좌표로 확장
data1,data2=np.meshgrid(xx,yy)

#1차원으로 변환 후 data1과 data2를 합침
X_grid=np.c_[data1.ravel(),data2.ravel()]
# 모든 좌표를 예측
pred_y=model.predict(X_grid)
# 그림 크기
fig=plt.figure(figsize=[10,10])

plt.imshow(pred_y.reshape(scale,scale),interpolation=None,origin='lower',extent=[xmin,xmax,ymin,ymax],alpha=0.3)
# pred_y.reshape(scale,scale) : scale*scale 형태로 변경
# origin='lower' : 실재 우리가 그리듯 아래서 부터 그려라
# extent=[xmin,xmax,ymin,ymax] : 안 하면 0~100까지, 하면 min~max까지
plt.scatter(X_train[:,0],X_train[:,1],c=y_train,s=100)

반응형
Comments