
164
1
부
머신러닝
4.1.2
계산 복잡도
정규방정식은
(
n
+
1
)
(
n
+
1
)
크기가 되는
T
의 역행렬을 계산합니다(
n
은 특성 수). 역
행렬을 계산하는
계산 복잡도
computational
complexity
는 일반적으로
O
(
n
2
.
4
)
에서
O
(
n
3
)
사이입니다
(구현 방법에 따라 차이가 있습니다 ). 다시 말해 특성 수가 두 배로 늘어나면 계산 시간이 대략
2
2
.
4
=
5
.
3
에서
2
3
=
8
배로 증가합니다.
사이킷런의
LinearRegression
클래스가 사용하는
SVD
방법은 약
O
(
n
2
)입니다. 특성의 개
수가 두 배로 들어나면 계산 시간이 대략
4
배가 됩니다.
CAUTION_
정규방정식과
SVD
방법 모두 특성 수가 많아지면 (예를 들어
100
,
000
) 매우 느려집니다. 다
행인 것은 훈련 세트의 샘플 수에 대해서는 선형적으로 증가합니다(둘 다
O
(
m
)입니다).
5
따라서 메모리 공간
이 허락된다면 큰 훈련 세트도 효율적으로 처리할 수 있습니다.
또한 (정규방정식이나 다른 알고리즘으로) 학습된 선형 회귀 모델은 예측이 매우 빠릅니다.
예측 계산 복잡도는 샘플 수와 특성 수에 선형적입니다. 다시 말해 예측하려는 샘플이 두 배로
늘어나면 (또는 특성이 두 배로 늘어나면 ) 걸리는 시간도 거의 두 배 증가합니다.
이제 아주 다른 방법으로 선형 회귀 모델을 훈련시켜보겠습니다. ...