[혼공머신] 2주차_챕터3. 회귀 알고리즘과 모델 규제(어려워요잉ㅠㅠ)
혼자 공부하는 머신러닝+딥러닝
오늘은 2주차이다.
숙제
(03-1) 2번 문제: 과대적합과 과소적합에 대한 이해를 돕기 위해 복잡한 모델과 단순한 모델을 만들겠습니다. 앞서 만든 k-최근접 이웃 회귀 모델의 k 값을 1, 5, 10으로 바꿔가며 훈련해 보세요. 그다음 농어의 길이를 5에서 45까지 바꿔가며 예측을 만들어 그래프로 나타내 보세요. n이 커짐에 따라 모델이 단순해지는 것을 볼 수 있나요?
그래프로 표현하여 보았을 때, n의 값이 커질 수록 그래프의 모양이 점점 안정화 되고 있다는 느낌이 들고 있다.
챕터 3에서는 크게
k-최근접 이웃 회귀, 선형 회귀, 특성 공학과 규제
에 대한 내용이 나온다.
회귀: 임의의 수치를 예측하는 문제. 타깃값도 임의의 수치가 됨.
k-최근접 이웃 회귀: 가장 가까운 이웃 샘플을 찾고 이 샘플들의 타깃값을 평균하여 예측으로 삼는다.
결정계수: 대표적 회귀 문제의 성능 측정 도구. 1에 가까울수록 좋고, 0에 가깝다면 성능이 나쁜 모델.
과대적합: 모델의 훈련 세트 성능이 테스트 세트 성능보다 훨씬 높을 때 일어남. 모델이 훈련 세트에 너무 집착해서 데이터에 내재된 거시적인 패턴을 감지 못함.
과소적합: 훈련 세트와 테스트 세트 성능이 모두 동일하게 낮거나 테스트 세트 성능이 오히려 더 높을 때 일어남. 더 복잡한 모델을 사용해 훈련 세트에 잘 맞는 모델을 만들어야 함.
scikit-learn, mean_absolute_error(): 회귀 모델의 평균 절댓값 오차를 계산함. 첫 번째 매개변수는 타깃, 두 번째 매개변수는 예측값을 전달함. 비슷한 함수로는 평균 제곱 오차를 계산하는 **mean_squared_errer()**가 있다.
numpy, reshape(): 배열의 크기를 바꾸는 메서드. 바꾸고자 하는 배열의 크기를 매개변수로 전달. 바꾸기 전후의 배열 원소 개수는 동일해야 함.
선형 회귀: 훈련 세트에 잘 맞는 선형 방정식을 찾는다. 특성이 하나면 직선 방정식이 된다.
선형 회귀가 찾은 특성과 타깃 사이의 관계는 선형 방정식의 계수 또는 가중치에 저장됨.
모델 파라미터: 머신러닝 모델이 특성에서 학습한 파라미터를 말함.
다항 회귀: 다항식을 사용하여 특성과 타깃 사이의 관계를 나타냄. 이 함수는 비선형일 수 있지만 여전히 선형 회귀로 표현할 수 있다.
(scikit-learn) LinearRegression: 선형 회귀 클래스.
coef_, intercept_ 에는 각각 계수와 절편이 저장되어 있다.
다중 회귀: 여러 개의 특성을 사용한 선형 회귀
특성 공학: 기존의 특성을 사용해 새로운 특성을 뽑아내는 작업
판다스: 유명한 데이터 분석 라이브러리
데이터프레임: 판다스의 핵심 데이터 구조
릿지: 규제가 있는 선형 회귀 모델 중 하나, 선형 모델의 계수를 작게 만들어 과대적합을 완화시킴.
라쏘: 릿지와 달리 계수 값을 아예 0으로 만들 수도 있다.
하이퍼파라미터: 머신러닝 알고리즘이 학습하지 않는 파라미터. 사람이 사전에 지정해야 한다. 대표적으로 릿지와 라쏘의 규제 강도 alpha 파라미터이다.
scikit-learn, PolynomialFeatures: 주어진 특성을 조합하여 새로운 특성을 만든다.
degree는 최고 차수를 지정함. 기본값은 2
interaction_only가 True이면 거듭제곱 항은 제외되고 특성 간의 곱셈 항만 추가됨. 기본값은 False.
include_bias가 False이면 절편을 위한 특성을 추가하지 않음. 기본값은 True.
Ridge는 규제가 있는 회귀 알고리즘인 릿지 회귀 모델을 훈련함. alpha 매개변수로 규제의 강도를 조절. 값이 클수록 규제가 세짐. 기본값은 1.
solver 매개변수에 최적의 모델을 찾기 위한 방법을 지정할 수 있다. 기본값은 ‘auto’. 데이터에 따라 자동으로 선택 됨. ‘sag’는 확률적 평균 경사 하강법 알고리즘으로 특성과 샘플 수가 많을 때에 성능이 빠르고 좋다. ‘sag’의 개선 버전인 ‘saga’가 추가 되었다. random_state는 slover가 sag나 saga일 때 넘파이 난수 시드값을 지정할 수 있음.
Lasso는 규제가 있는 회귀 알고리즘인 라쏘 회귀 모델을 훈련함. 이 클래스는 최적의 모델을 찾기 위해 좌표축을 따라 최적화를 수행해가는 좌표 하강법을 사용. alpha와 random_state 매개변수는 릿지클래스와 동일하고, max_iter는 알고리즘의 수행 반복 횟수를 지정한다. 기본값은 1000.
확실히 챕터 3 부터
모델 파라미터, 과대적합, 과소적합 같은
머신러닝에서 중요한 개념도 많이 배우고,
본격적인 공부가 시작 되었다는 느낌을 많이 받았다.
사실 지금은 그냥
이런 게 있구나~ 싶은 느낌이다.

복습을 필수로 해야겠다고 다짐하는 하루였다...