Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

DB의 머신러닝 시작할 때 힘이 되어줄 회귀 한 조각

68 views

Published on

abcd에서 주최한 세미나의 취지에 맞게 쉬운 내용만 넣어 발표한 회귀 기초 입니다. 정확하지 않은 부분이 있을 수 있으니 헷갈리는 부분은 꼭 검색해주시길 바랍니다.
- 바벨피쉬 김단비

Published in: Data & Analytics
  • Be the first to comment

  • Be the first to like this

DB의 머신러닝 시작할 때 힘이 되어줄 회귀 한 조각

  1. 1. 머신러닝 시작할 때 힘이 되어줄 회귀 한 조각
  2. 2. 오늘 이야기할 것들 • • •
  3. 3. 머신러닝을 알고 싶은데 무엇을 공부해야하나요?
  4. 4. • • • 좀더 가볍게 시작하는 방법 없나요?
  5. 5. ‘프로그래머를 위한 선형대수’ 책으로 공부해본 결과..
  6. 6. 선형대수 다 뗐으면 바로 머신러닝 강의 들어도 되나요? • • • • • • • • • • • • • • • • • • • •
  7. 7. 그 외에도 중요한 개념 몇 가지 • • • •
  8. 8. 머신러닝이 다루는 문제들
  9. 9. 회귀(Regression)는 어느 경우에 쓰이나요? • •
  10. 10. 회귀(Regression) - 산점도 70 80 90 100 110 120 130 2 3 4 5 6 수확량 열매 갯수
  11. 11. 회귀(Regression) - 단순회귀 70 80 90 100 110 120 130 2 3 4 5 6 수확량 열매 갯수 𝒀 = 𝜷 𝟎 + 𝜷 𝟏 𝑿 + 𝜺 𝜷 𝟎 , 𝜷 𝟏 𝜷 𝟎, 𝜷 𝟏
  12. 12. 자료를 통해 모수를 추정하는 방법 – 최소제곱법 • (𝛽0, 𝛽1 (𝑦𝑖 − 𝛽0 − 𝛽1 𝑥𝑖)2 • 𝑥𝑖 ∶ • 𝑦𝑖 • - 𝛽0 = 𝑦 − 𝛽1 𝑥 - 𝛽1 = (𝑥𝑖− 𝑥)(𝑦 𝑖− 𝑦) (𝑥 𝑖− 𝑥)2 = 𝑆 𝑥𝑦 𝑆 𝑥𝑥 70 80 90 100 110 120 130 2 3 4 5 6 수확량 열매 갯수 (𝑥𝑖, 𝑦𝑖)
  13. 13. 회귀(Regression) - 다항회귀 70 80 90 100 110 120 130 2 3 4 5 6 수확량 열매 갯수 𝒚𝒊 = 𝜷 𝟎 + 𝜷 𝟏 𝒙𝒊 + 𝜷 𝟐 𝒙𝒊 𝟐 +𝜷 𝟑 𝒙𝒊 𝟑 + 𝜷 𝟒 𝒙𝒊 𝟒 + 𝜷 𝟓 𝒙𝒊 𝟓 + 𝜺 , 𝒊 = 𝟏, 𝟐, … , 𝒏 (𝑥𝑖, 𝑦𝑖)
  14. 14. 회귀(Regression) – 편향-분산 트레이드오프 1 𝑛 𝑖=1 𝑛 (𝑦𝑖 − 𝑓(𝑥𝑖))2 𝑏𝑖𝑎𝑠2
  15. 15. 머신러닝에선 조금 다르게 나타나요! • 𝐻 𝑥 = 𝑊𝑥 + 𝑏 • C𝑜𝑠𝑡 = 1 𝑚 𝑖=1 𝑚 𝐻(𝑥 𝑖 − 𝑦(𝑖) )2 • 70 80 90 100 110 120 130 2 3 4 5 6 수확량 열매 갯수
  16. 16. 아이참 헷갈리니 다시 한 번 정리해봐요~ • 𝒀 = 𝜷 𝟎 + 𝜷 𝟏 𝑿 + 𝜺 • (𝛽0, 𝛽1 (𝑦𝑖 − 𝛽0 − 𝛽1 𝑥𝑖)2 • 1 𝑛 𝑖=1 𝑛 (𝑦𝑖 − 𝑓(𝑥𝑖))2 • 𝐻 𝑥 = 𝑊𝑥 + 𝑏 • (𝑦 𝑖 − 𝑊𝑥(𝑖) − 𝑏)2 • C𝑜𝑠𝑡 = 1 𝑛 𝑖=1 𝑛 𝐻(𝑥 𝑖 − 𝑦(𝑖))2
  17. 17. 파이썬으로 선형회귀 코드 구현해보기 import matplotlib.pyplot as plt import numpy as np from sklearn import datasets, linear_model from sklearn.metrics import mean_squared_error, r2_score # Load the diabetes dataset diabetes = datasets.load_diabetes() # Use only one feature diabetes_X = diabetes.data[:, np.newaxis, 2] # Split the data into training/testing sets diabetes_X_train = diabetes_X[:-20] diabetes_X_test = diabetes_X[-20:] # Split the targets into training/testing sets diabetes_y_train = diabetes.target[:-20] diabetes_y_test = diabetes.target[-20:] # Create linear regression object regr = linear_model.LinearRegression() # Train the model using the training sets regr.fit(diabetes_X_train, diabetes_y_train) # Make predictions using the testing set diabetes_y_pred = regr.predict(diabetes_X_test) # The coefficients print('Coefficients: n', regr.coef_) # The mean squared error print("Mean squared error: %.2f" % mean_squared_error(diabetes_y_test, diabetes_y_pred)) # Explained variance score: 1 is perfect prediction print('Variance score: %.2f' % r2_score(diabetes_y_test, diabetes_y_pred)) # Plot outputs plt.scatter(diabetes_X_test, diabetes_y_test, color='black') plt.plot(diabetes_X_test, diabetes_y_pred, color='blue', linewidth=3) plt.xticks(()) plt.yticks(()) plt.show()
  18. 18. 회귀(Regression) – 로지스틱 회귀 0 0.2 0.4 0.6 0.8 1 0.2 0.4 0.6 0.8 1 치사율 화학물질 투여량(ln(용량))
  19. 19. 회귀(Regression) – 로지스틱 회귀 (𝑙𝑜𝑔𝑖𝑡 log unit) 𝑙𝑜𝑔𝑖𝑡 𝜃 = ln 𝜃 1 − 𝜃 0 0.2 0.4 0.6 0.8 1 0.2 0.4 0.6 0.8 1 치사율 화학물질 투여량(ln(용량)) (odds ratio) : 𝑙𝑜𝑔𝑖𝑡 𝜃 = 𝛽0 + 𝛽1 𝑋 𝐸 𝑌 𝑛 = 𝜃 = exp ( 𝛽0 + 𝛽1 𝑋) 1 − exp ( 𝛽0 + 𝛽1 𝑋)
  20. 20. 머신러닝에서 로지스틱 회귀는 어떻게 이용되나요? 0 0.5 1 0 1 2 3 4 5 6 7 8 9 진단결과,g(z) 종양 크기, z Yes No 𝑔 𝑧 = 1 1 + 𝑒−𝑧
  21. 21. 로지스틱 회귀 예제 좀 더 이해해보기 0 0.5 1 0 1 2 3 4 5 6 7 8 9 진단결과,g(x) 종양 크기, x Yes No Y = 0, if g x < 0.5 Y = 1, if g x ≥ 0.5 , 𝑔 𝑧 = 1 1 + 𝑒−𝑧 , ℎ 𝜃 x = 𝜃 𝑇 𝑥 𝑔 ℎ 𝜃 x = 𝑔(𝜃 𝑇 𝑥) = 1 1 + 𝑒−𝜃 𝑇 𝑥
  22. 22. 파이썬으로 로지스틱회귀 코드 구현해보기 • •
  23. 23. 감사합니다 QnA

×