3. “머신 러닝 또는 기계 학습은 인공 지능의 한 분야로, 컴
퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하
는 분야를 말한다.” - 위키피디아
“Field of study that gives computers the ability to learn
without being explicitly programmed.” - Arthur Samuel,
1959
머신러닝이란
24. 사이킷런의 내장 데이터
load_boston() : 주택가격
load_iris() : 붓꽃
load_diabetes() : 당뇨병
load_digits() : 손글씨숫자
load_linnerud() : 운동
25. 당뇨병 데이터
나이(Age), 성별(Sex), 체질량(BMI), 혈압(BP), 혈액검사 데이터 6가지(S1~S6)
1년 뒤의 당뇨병 악화 지수
당뇨병 환자를 추적한 442개의 데이터셋
26. 데이터 로드
$ ipython
...
In [1]: %pylab
In [2]: from sklearn import datasets
In [3]: diabetes = datasets.load_diabetes()
In [4]: print(diabetes.data.shape, diabetes.target.shape)
Out [5]: (442, 10) (442, )
27. $ ipython
...
In [1]: %pylab
In [2]: from sklearn import datasets
In [3]: diabetes = datasets.load_diabetes()
In [4]: print(diabetes.data.shape, diabetes.target.shape)
Out [5]: (442, 10) (442, )
데이터 로드
넘파이, 맷플롯립 임포트
사이킷런의 데이터 패키지 임포트
데이터 로드
넘파이 변수
442개의 행
10개의 열
442개의 타겟
(병의 악화도)
43. SingleNeuron
In [1]: n1 = SingleNeuron()
In [2]: n1.set_params(5, 1) # w, b 를 5, 1 로 셋팅
In [3]: print(n1.forpass(3)) # x 에 3 을 입력
16
In [4]: n1.set_params(6, 1) # w, b 를 6, 1 로 셋팅
In [5]: print(n1.forpass(3)) # x 에 3 을 입력
19
45. w 에 대한 ŷ 의 변화율
In [1]: n1 = SingleNeuron()
In [2]: n1.set_params(5, 1) # w, b 를 5, 1 로 셋팅
In [3]: print(n1.forpass(3)) # x 에 3 을 입력
16
In [4]: n1.set_params(6, 1) # w, b 를 6, 1 로 셋팅
In [5]: print(n1.forpass(3)) # x 에 3 을 입력
19
47. x 에 대한 ŷ 의 변화율
In [1]: n1 = SingleNeuron()
In [2]: n1.set_params(5, 1) # w, b 를 5, 1 로 셋팅
In [3]: print(n1.forpass(3)) # x 에 3 을 입력
16
In [4]: n1.set_params(5, 1) # w, b 를 5, 1 로 셋팅
In [5]: print(n1.forpass(4)) # x 에 4 을 입력
21
49. b 에 대한 ŷ 의 변화율
In [1]: n1 = SingleNeuron()
In [2]: n1.set_params(5, 1) # w, b 를 5, 1 로 셋팅
In [3]: print(n1.forpass(3)) # x 에 3 을 입력
16
In [4]: n1.set_params(5, 2) # w, b 를 5, 2 로 셋팅
In [5]: print(n1.forpass(3)) # x 에 3 을 입력
17
59. 업데이트 부호가 의미하는 것
Neuron
ŷ
w
x
b
*
+
y - ŷ
+ (y – ŷ) * x * 0.1
+ (y – ŷ) * 1 * 0.1
(y – ŷ) > 0 : 출력이 모자람
if x > 0: w 를 증가시킴
else : w 를 감소시킴
(y – ŷ) < 0 : 출력이 넘침
if x > 0: w 를 감소시킴
else : w 를 증가시킴
y: diabetes.target
74. batch, mini-batch
SGDRegressor(Stochastic Gradient Descent): 확률적 경사 하강법
훈련 데이터를 하나씩 사용하여 반복 학습
SingleNeuron(Batch Gradient Descent): 훈련 데이터 전체를 사용하
여 반복 학습
Mini-Batch Gradient Descent: 훈련 데이터를 10~20개씩 묶음으로 나
누어 반복 학습