선형회귀함수

- "기울기와 절편을 찾는것" 

- 머신러닝 알고리즘 중 하나

 

당뇨병환자의 1년 후 병의 진전된 정도를 예측하는 모델 만들기

 

당뇨병 환자 데이터 가져오기

- 머신러닝 딥러닝 패키지에는 인공지능 학습을 위한 dataset가 준비되어있음

- 사이킷런, 케라스 : 다양한 데이터 세트 제공

 

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

from sklearn.datasets import load_diabetes
diabetes = load_diabetes( )  #diabetes에 당뇨병 데이터 저장 # Bunch 클래스

   cf) Bunch 클래스 : 파이썬 딕셔너리와 유사. 예제 데이터 세트를 위해 준비된 것. 특별한 기능 X

 

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

diabetes 속성 중 data속성과 target 속성 : 우리가 필요한 입력과 타깃 데이터가 넘파이 배열로 저장되어있음

shape 속성 : 넘파이 배열의 크기 저장되어있음

print(diabetes.data.shape, diabetes.target.shape)
# (442, 10) (442,)

- data 는 422 X 10 크기의 2차원 배열 , target은 442개의 요소를 가진 1차원 배열

- diabetes.data는 442개의 행과 10개의 열로 구성

- : sample : feature(샘플의 특성)

- ex. 당뇨병 데이터에는 환자의 혈압,혈당,몸무게,키,등(feature)이 있음

       이 특성의 수치를 모아 1세트로 만들면 1개의 샘플(sample)이 나옴

- 입력 데이터의 특성 : 속성/독립변수(independent variable)/설명변수(explanatory variable), 등

 

3. 입력 데이터 자세히 보기 (slicing 사용)

diabetes.data[0:3]
#array([[ 0.03807591,  0.05068012,  0.06169621,  0.02187235, -0.0442235 ,
#        -0.03482076, -0.04340085, -0.00259226,  0.01990842, -0.01764613],
#       [-0.00188202, -0.04464164, -0.05147406, -0.02632783, -0.00844872,
#        -0.01916334,  0.07441156, -0.03949338, -0.06832974, -0.09220405],
#       [ 0.08529891,  0.05068012,  0.04445121, -0.00567061, -0.04559945,
#        -0.03419447, -0.03235593, -0.00259226,  0.00286377, -0.02593034]])

 

- 10개의 요소로 구성된 샘플 

- array([ [1번째 샘플의 요소들], [2번째 샘플의 요소들], [3번째 샘플의 요소들]])

4. 타깃 데이터 자세히 보기

diabetes.target[:3]
# array([151.,  75., 141.])

타깃 데이터는 10개의 요소로 구성된 샘플 1개에 대응

즉 위에서 출력한 1번째 샘플의 요소들[ 0.03807591,  0.05068012,  0.06169621,  0.02187235, -0.0442235 , -0.03482076, -0.04340085, -0.00259226,  0.01990842, -0.01764613]은 151.이라는 타깃 데이터에 대응됨

 

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

맥플롯립의 scatter( ) 함수로 산점도 그리기

import matplotlib.pyplot as plt
plt.scatter(diabetes.data[:,2],diabetes.target)		# 3번째 특성과 타깃 데이터로 산점도 그리기
plt.xlabel('third characteristic of diabetes.data')		
plt.ylabel('diabetes.target')		
plt.show()

 

+ Recent posts