텐서플로우를 처음 공부하면서 선형회귀의 예제로 혈중 지방 함량이라는 데이터를 인터넷에서 구해서(^^) 텐서플로우로 신경망을 이용하여 다변수 입력을 가지는 선형회귀 문제를 예제로 다룬적이 있는데요. 그리고 나서 또 동일 데이터를 이용해서 Keras를 공부하면서 케라스를 이용한 다변수 입력 선형 문제를 풀었었죠. 그리고 나서 이 문제는 잊고 있다가, 최근 핸드온 머신러닝이라는 책을 읽게 되었는데요. 정말 좋네요 이 책^^ 아무튼 그러다가, 제가 블로그에서 Scikit-learn을 이용한 학습을 한 적이 없다는 것을 문득 알고는 슬쩍 글 하나 남기는 것입니다.^^. 데이터도 이전에 다룬 것이고, 문제의 해법은 단지 선형회귀를 다룰 뿐인데.. 그러니까.. 그냥 블로그에 글 많이 쓰기 이외의 목적은 없어 보입니다.^^. 한가지 더 있다면 이 글 하나로도 Scikit-learn이 참 간단하구나.. 라고 생각해 볼 수 있는거죠^^. 아무튼 데이터는 이전 글의 데이터인 나이 체중에 대한 혈액함량인데 그건 텐서플로우로 예제를 다루던 글에 있습니다.
import numpy as np import matplotlib.pyplot as plt import sklearn.linear_model %matplotlib inline raw_data = np.genfromtxt('x09.txt', skip_header=36) from mpl_toolkits.mplot3d import Axes3D xs = np.array(raw_data[:,2], dtype=np.float32) ys = np.array(raw_data[:,3], dtype=np.float32) zs = np.array(raw_data[:,4], dtype=np.float32) fig = plt.figure(figsize=(12,12)) ax = fig.add_subplot(111, projection='3d') ax.scatter(xs, ys, zs) ax.set_xlabel('Weight') ax.set_ylabel('Age') ax.set_zlabel('Blood fat') ax.view_init(15, 15) plt.show()
뭐 이전 두 개의 글과 같은 데이터이니 그림도 같죠^^. Scikit-Learn의 버전은 0.19.1입니다.
오랜만에 보니 방갑네요^^.
X = np.array(raw_data[:,2:4], dtype=np.float64) y = np.array(raw_data[:,4], dtype=np.float64) model = sklearn.linear_model.LinearRegression() model.fit(X, y) print(model) print('Est [100,40] : ', model.predict([[100,40]])) print('Est [60,25] : ', model.predict([[60,25]]))
그냥 데이터 읽고~ linear_model 사용하겠다고 하고, 그 안에 LinearRegression을 사용하겠다고 하고, 입출력 데이터로 fit만 하면 됩니다. 과정은 꽤 케라스랑 비슷하죠^^.
이쁘네요^^.
knn = sklearn.neighbors.KNeighborsRegressor(n_neighbors=3) knn.fit(X, y) print(knn) print('Est [100,40] : ', knn.predict([[100,40]])) print('Est [60,25] : ', knn.predict([[60,25]]))
이번에는 회귀문제를 kNN으로 푸는거죠. 뭐 코드는 참~ 하나만 바뀌네요...
ㅎㅎ.. 둘 사이는 차이가 있네요. 또 앞선 두 글과도 차이가 있습니다.
제가 보고 있는 핸드온 머신러닝 책 1장에 엄청 재미난 글이 소개되어 있네요.^^
공짜 점심 없음 이론
경험하기 전에 더 잘 맞을 거라고 보장할 수 있는 모델은 없습니다. 어떤 모델이 최선인지 확실히 아는 유일한 방법은 모든 모델을 평가해보는 것 뿐입니다. 이것이 불가능하기 때문에 실전에서는 데이터에 관해 타당한 가정을 하고 적절한 모델 몇 가지만 평가합니다.
'Theory > DataScience' 카테고리의 다른 글
영상 인식으로 월리를 찾아볼까? -mahotas- (16) | 2018.10.18 |
---|---|
우리나라 지도그리는 모듈 배포 - 인구소멸위기지역, 여성인구비율 등등 (28) | 2018.07.04 |
구글 지도 API 유료화에 대해 학습 방법... (34) | 2018.06.27 |
Naver 검색 API 사용하기 (18) | 2018.06.18 |
카카오 얼굴 및 상품 인식 API 사용해보기 (18) | 2018.06.11 |
네이버 얼굴 인식 API 사용해보기 - 유명인 인식, 얼굴 인식 (26) | 2018.06.07 |
OpenCV를 활용해서 내가 쓴 손글씨를 CNN으로 학습된 모델을 이용해서 인식해보기 (26) | 2018.05.21 |