혼공단/혼공단 5기

[혼공단 5기] 혼자 공부하는 머신러닝 + 딥러닝 2주차 후기 및 미션 인증

하양훈 2021. 2. 4. 21:43
반응형

<진도표>

[이번주 과제 - 2주차]

1. 진도 공부 : 3장 회귀 알고리즘과 모델 규제

2. 기본 미션 : 3-1절 2번 문제 출력 그래프 인증샷

3. 선택 미션 : 모델 파라미터에 대해 설명하기

1. 진도 공부

 

1) 혼자 공부 하는 머신러닝 + 딥러닝 3장 - k-최근접 이웃 회귀

 

- 링크 : https://sirokun.tistory.com/16

 

혼자 공부하는 머신러닝 + 딥러닝 3장 - k-최근접 이웃 회귀

1. k-최근접 이웃 회귀 <지도학습 알고리즘의 종류> - 지도학습 알고리즘은 크게 분류와 회귀로 나눔. - 분류 : 샘플을 몇 개의 클래스 중 하나로 분류하는 것 - 회귀 : 임의의 어떤 숫자를 예측하는

sirokun.tistory.com

 

2) 혼자 공부 하는 머신러닝 + 딥러닝 3장 - 선형 회귀

 

링크 : https://sirokun.tistory.com/17

 

혼자 공부하는 머신러닝 + 딥러닝 3장 - 선형 회귀

- k-최근접 이웃 회귀는 가장 가까운 샘플을 찾아 타깃을 평균한다. 따라서 새로운 샘플이 훈련 세트의 범위를 벗어나면 엉뚱한 값을 예측할 수 있다. 1. 선형 회귀 - 널리 사용되는 대표적인 회귀

sirokun.tistory.com

3) 혼자 공부하는 머신러닝 + 딥러닝 3장 - 특성공학과 규제

 

링크 : https://sirokun.tistory.com/18

 

혼자 공부하는 머신러닝 + 딥러닝 3장 - 특성 공학과 규제

1. 다중회귀 - 다중회귀 : 여러개의 특성을 사용한 선형회귀 - 특성공학 : 기존의 특성을 사용해 새로운 특성을 뽑아내는 작업 Ex) 특성이 a,b,c 인경우 특성공학을 이용하면 a^2, ab, abc 등의 특성을

sirokun.tistory.com

이번주에는 선형회귀에 대한 내용이 주를 이뤘습니다.

 

선형회귀라는 낯선 단어에 겁을 먹긴 했지만, 우리가 중고등학교 수학시간때 자주 익혔던 방정식에 대한 내용이어서 그렇게 어려움 없이 잘 배울 수 있었던 것 같습니다. 저번 시간 마지막에 배웠던 k-최근접 이웃 알고리즘의 연장선에서 선형회귀 모델에 대한 다양한 정의와 어떤 파라미터를 사용하는지 익숙하게 배움으로써 큰 무리없이 빠르게 끝낼 수 있었던 것 같네요.

 

2. 기본미션 : 3-1절 2번 문제 출력 그래프 인증샷

 

'''문제를 풀기위해선 위의 코드들이 다 선행되어야 할 것 같다'''

import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsRegressor

perch_length = np.array([8.4, 13.7, 15.0, 16.2, 17.4, 18.0, 18.7, 19.0, 19.6, 20.0, 21.0,
       21.0, 21.0, 21.3, 22.0, 22.0, 22.0, 22.0, 22.0, 22.5, 22.5, 22.7,
       23.0, 23.5, 24.0, 24.0, 24.6, 25.0, 25.6, 26.5, 27.3, 27.5, 27.5,
       27.5, 28.0, 28.7, 30.0, 32.8, 34.5, 35.0, 36.5, 36.0, 37.0, 37.0,
       39.0, 39.0, 39.0, 40.0, 40.0, 40.0, 40.0, 42.0, 43.0, 43.0, 43.5,
       44.0])
perch_weight = np.array([5.9, 32.0, 40.0, 51.5, 70.0, 100.0, 78.0, 80.0, 85.0, 85.0, 110.0,
       115.0, 125.0, 130.0, 120.0, 120.0, 130.0, 135.0, 110.0, 130.0,
       150.0, 145.0, 150.0, 170.0, 225.0, 145.0, 188.0, 180.0, 197.0,
       218.0, 300.0, 260.0, 265.0, 250.0, 250.0, 300.0, 320.0, 514.0,
       556.0, 840.0, 685.0, 700.0, 700.0, 690.0, 900.0, 650.0, 820.0,
       850.0, 900.0, 1015.0, 820.0, 1100.0, 1000.0, 1100.0, 1000.0,
       1000.0])

train_input, test_input, train_target,test_target = train_test_split(perch_length,perch_weight,random_state=42)

train_input = train_input.reshape(-1,1)
test_input = test_input.reshape(-1,1)


''' 여기서 부터 03-1절 2번문제 코드'''

# k-최근접 이웃 회귀 객체를 만듭니다.
knr = KNeighborsRegressor()
# 5에서 45까지 x좌표를 만듭니다
x = np.arange(5,45).reshape(-1,1)

#n=1,5,10일때 예측 결과를 그래프로 그립니다
for n in [1,5,10]:
  #모델을 훈련합니다
  knr.n_neighbors = n
  knr.fit(train_input,train_target)
  #지정한 범위 x에 대한 예측을 구합니다
  prediction = knr.predict(x)

  plt.scatter(train_input,train_target)
  plt.title('neighbor num: %d'%n)
  plt.plot(x,prediction)
  plt.show()

기본미션은 3-1절 2번 문제 출력 그래프 인증샷입니다.

 

3-1절 2번 문제의 경우에는 neighbors의 개수에 따라 k-최근접 이웃 알고리즘이 어떻게 fitting하는지를 그래프로 비교해보는 문제였는데요. 사실 종이책에 문제를 풀고 정답을 확인해서 바로 맞췄으나 코드를 실행하려다 보니 문제상에 나타난 코드로는 풀이가 안되어서 데이터 작업을 하다보니 풀이가 다소 길어지게 되지 않았나 싶네요.

 

확실히 개수를 1개일때는 산점도(scatter)에서 표시된 점과 선으로 그려진 그래프(plot)가 겹친게 꽤 많이 보였는데, 10개의 그래프를 본다면 약간 듬성듬성 떨어진 느낌이 납니다. 이렇게 보니 직관적으로 이웃의 개수에 따라서 어떻게 예측이 되는지 감이 오네요.

 

3. 선택미션 : 모델 파라미터에 대해 설명하기

 

모델 파라미터에 대한 설명은 진도 공부를 하면서 정리한 게시물에 적어놓기도 했습니다.

 

링크 : https://sirokun.tistory.com/17

 

혼자 공부하는 머신러닝 + 딥러닝 3장 - 선형 회귀

- k-최근접 이웃 회귀는 가장 가까운 샘플을 찾아 타깃을 평균한다. 따라서 새로운 샘플이 훈련 세트의 범위를 벗어나면 엉뚱한 값을 예측할 수 있다. 1. 선형 회귀 - 널리 사용되는 대표적인 회귀

sirokun.tistory.com

모델 파라미터란?

 

모델 파라미터란 머신러닝 알고리즘이 학습을 통해 찾은 값을 말합니다.

지금까지 배웠던 내용 중에는 선형회귀 알고리즘을 실행할때 나오는 coef_(기울기)와 intercept_(절편)가 모델 파라미터에 해당합니다.

 


이것으로 2주차 후기를 마쳐보겠습니다. 이번 주에는 선형회귀라는 내용으로 본격적인 머신러닝의 세계에 발을 들이게 되었습니다. 막상 어려울까 걱정은 되었지만, 아직까지는 괜찮은 것 같습니다. 엄청 어려운 수식이 나온것도 아니고, 좋은 강의도 있고, 책도 이해하기 쉽게 설명을 해놓아서 정리하며 공부하니 한결 수월하게 이해할 수 있었습니다. 덕분에 선형회귀라는 말이 무엇인지 자신있게 설명할 정도로 실력이 많이 늘어난 것 같네요!!

다음주에는 또 새로운 머신러닝 알고리즘을 배우는데 이번주같이 쉽게 이해되었으면 좋겠습니다.

반응형