Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

9시 24분

선형 회귀 (Linear Regression) 본문

인공지능

선형 회귀 (Linear Regression)

leeeee.yeon 2021. 6. 28. 13:11
1차 함수로 이해하는 선형 회귀

출처: https://mblogthumb-phinf.pstatic.net/20120513_56/iup123_1336887489713e3nbP_PNG/%C6%F2%C7%E0%C0%CC%B5%BF.png?type=w2

  • 위 1차 함수에서 a는 기울기, b는 절편이다.

 

선형 회귀는 기울기와 절편을 찾는다.

 

Q) x가 3일 때 y는 25, x가 4일 때 y는 32, x가 5일 때 y는 39라면 기울기와 절편의 값으로 적절한 것은?

  1. 기울기 6, 절편 4
  2. 기울기 7, 절편 5
  3. 기울기 7, 절편 4

 

A) 3. 기울기 7, 절편 4

 

선형 회귀의 문제 해결 과정

 

1. 1번의 조건을 가진 1차 함수로 표현 > 점을 잘 표현하지 못함

2. 2번의 조건을 가진 1차 함수로 표현 > 점을 잘 표현하지 못함

3. 3번의 조건을 가진 1차 함수로 표현 > 각 점을 잘 표현함

 

>>> 위 과정에서 만든 1차 함수들을 선형 회귀로 만든 모델이라고 하며, 마지막에 만들어진 1차 함수가 바로 최적의 선형 회귀 모델인 셈이다.

 

문제 해결을 위해 당뇨병 환자의 데이터 준비하기

 

목표: 당뇨병 환자의 1년 후 병의 진전된 정도를 예측하는 모델을 만드는 것

 

  • 머신러닝, 딥러닝 패키지에는 인공지능 학습을 위한 데이터 세트(dataset)가 준비되어 있음
  • 사이킷런과 케라스도 다양한 데이터 세트를 제공

 

load_diabetes() 함수로 당뇨병 데이터 준비하기

  • 사이킷런의 datasest 모듈에 있는 load_diabetes() 함수를 import한 후 매개변수 없이 함수를 호출
  • diabetes 변수에 저장된 값은 딕셔너리와 유사한 Bunch 클래스이다.

 

입력과 타깃 데이터의 크기 확인

  • 넘파이 배열의 크기는 shape 속성에 저장되어 있음
  • data : 442 * 10 크기의 2차원 배열
    • 행: 샘플 (혈압, 혈당, 몸무게, 키 등의 특징)
    • 열: 샘플의 특성 - 속성, 독립 변수, 설명 변수 등으로도 부른다.

ex)

몸무게 혈압 ...
181 92 130 ...
172 56 125 ...
164 61 123  
184 102   ...

 

  • target : 442개의 요소를 가진 1차원 배열

 

  • 슬라이싱을 이용하여 입력 데이터 앞부분 샘플 3개 출력

 

타깃 데이터 출력

  • [ 0.03807591, 0.05068012, 0.06169621, 0.02187235, -0.0442235 , -0.03482076, -0.04340085, -0.00259226, 0.01990842, -0.01764613] 이라는 샘플에 151.이라는 타깃 데이터가 대응됨
  • 수치 자체에 대한 해석은 전문가(의사)의 영역이므로, 입력 데이터와 타깃 데이터의 수치를 보고 둘 사이의 규칙만 찾으면 됨

 

( + 실습에서는 학습을 위해 제공된 데이터를 사용하지만, 실제로는 데이터를 준비하는데 많은 공이 든다는 것을 잊지 말자 )

 

당뇨병 환자 데이터 시각화 하기

 

당뇨병 데이터 세트에는 10개의 특성이 있으므로 이 특성을 모두 그래프로 표현하려면 3차원 이사으이 그래프를 그려야 한다. 그러나 3차원 이상의 그래프를 그릴 수 없으므로 1개의 특성만 사용하여 그래프를 그리자.

아래 그래프는 3번째 특성과 타깃 데이터로 산점도를 그린 것이다.

  • diabetes.data[:, 2] - 전체 행을 선택
  • x축: diabetes.data의 3번째 특성, y축: diabetes.target
  • 세 번째 특성과 타깃 데이터 사이에 정비례 관계가 있음을 확인할 수 있다.

세 번째 특성을 미리 분리하여 변수 x에 저장, 타깃 데이터는 변수 y에 저장

'인공지능' 카테고리의 다른 글

빅데이터와 머신러닝  (0) 2021.07.12
여기서부터는 Tenserflow 2로 배우는 빅데이터와 머신러닝  (0) 2021.07.12
경사 하강법  (0) 2021.06.28
딥러닝 실습을 위한 도구  (0) 2021.06.28
딥러닝이란,  (0) 2021.06.22