회귀
데이터의 값이 평균과 같은 일정한 값으로 돌아가려는 경향
(아무리 키가 큰 집안의 아이도 무한정 키가 커지지는 x)
회귀: 여러개의 독립변수와 종속변수 간의 상관관계를 모델링하는 기법을 통칭
머신러닝에서 회귀의 핵심:
최적의 회귀 계수를 찾아내는 것! (W1, W2, ..)
선형회귀 vs 비선형회귀: 회귀계수의 제곱여부! (독립변수 x**2는 상관없음!)
분류 vs 회귀
분류: 결과 값이 category값(이산적인 값으로)
회귀: 숫자값(연속값)
https://miro.medium.com/max/1400/1*kcBsTJsIiDEC9XcizmnmYg.png
[지도학습]
정답이 있는 데이터를 활용해 데이터를 학습시키는 것
대표적으로 분류(결과가 카테고리로 나뉠 때), 회귀(결과값이 실수)
[비지도학습]
정답 라벨이 없는 데이터를 비슷한 특징끼리 군집화하여 새로운 데이터에 대한 결과를 예측하는 법
대표적으로 클러스터링, K Means
[강화학습]
자신이 한 행동에 대한 보상(reward)를 받으며 높은 점수를 얻는 방법을 찾아가는 것
특정 학습 횟수 이후에, 높은 점수(reward)를 획득할 수 있는 전략이 형성됨
(행동을 위한 행동 목록은 사전에 정의 되어 있음)
단순 선형 회귀(SR): 피처가 1개
y = w0 + w1*x
RSS 기반의 회귀 오류 측정
RSS: 회귀의 비용함수(오류값의 제곱의 합)
단순선형회귀에서, RSS식에는 w0과 w1만 남는다.
회귀 알고리즘에서는 RSS(비용함수)를 최소로 만들어야 한다
비용 최소화하기: 경사하강법(Gradient Descent)
점진적으로 반복적인 계산을 통해 w를 업데이트 시키기
R(w)의 편미분
사이킷런 LinearRegression 클래스
선형회귀의 다중 공선성 문제
피처간의 상관관계가 높으면, 분산이 커져서, 오류에 매우 민감해진다
상관관계가 높은 피처들 중에 중요한 피처만 남겨야 한다!
회귀 평가 지표
MSE: mean squared error
MSLE: MSE에 로그를 적용한 것
Scoring 함수에 회귀 평가 적용 시 유의사항
다항회귀
독립변수(x)의 식이 단항식이 아닌 2차, 3차 방적식과 같은 다항식으로 표현되는 것
PolynomialFeatures
다항식을 하나의 단항식으로 바꾼 다음에 LinearRegression학습을 시킨다
ex) x1**3 = z1 으로 변환
규제선형회귀
다항회귀에서 회귀계수가 기하급수적으로 커지는 것을 제어해야한다
최적모델을 위한 cost함수 구성요소
= 학습데이터 잔차 오류 최소화 + 회귀계수 크기 제어
규제: aplpha값으로 페널티를 부여해, 회귀 계수 값의 크기를 감소시킴
릿지회귀: w의 제곱에 대해 패널티 부여
라쏘회귀: W의 절댓값에 대해 패널티 부여
릿지 회귀
회귀계수의 크기를 주기적으로 감소시킴
라쏘회귀
불필요한 회귀 계수를 급격하게 감소시켜 0으로 만들고 제거
엘라스틱넷 회귀: L2+L1
alpha: = L1의 alpha + L2의 aplha
선형회귀모델을 위한 데이터 변환
타깃값변환: 타깃값을 반드시 정규 분포로 만들어야 함(주로 로그 변환 적용)
피처값 변환:
StandardScaler
MinMaxScaler
데이터 인코딩은 원-핫 인코딩 적용
피처 데이터 변환에 따른 예측 성능 비교
원본 vs 표준정규분호 vs 표준정규분포+2차다항식 vs 최소최대정규화 vs 로그변환
로지스틱 회귀
시그모이드 함수 최적선을 찾고, 이 시그모이드 함수의 반환 값을 확률로 간주해 확률에 따른 분류를 결정한다
주로 이진 분류에 사용됨.
예측확률은 시그모이드 함수의 출력값
예측확률이 0.5이상이면 예측값을 1로.
회귀트리
CART: Classification and regression trees
회귀트리의 오버비팅
트리크기, 노드 개수 제한 등의 방법 통해 오버피팅 개선.
ref: "파이썬 머신러닝 완벽가이드", 권철민, 위키북스