목표
3회차: 7/20 14:00 ~ 17:00
계획: 딥러닝 교재 Chapter3 학습, (시간이 남을 시 파이썬 복습)
결과
3-1. k-최근접 이웃 회귀
개념정리
회귀
- 임의의 수치를 예측하는 문제
- 타깃값도 임의의 수치가 됨
k-최근접 이웃 회귀
- k-최근접 알고리즘을 사용해 회귀 문제를 품
- 가장 가까운 이웃 샘플을 차ㅡㅈ고 이 샘플들의 타깃값을 평균하여 예측으로 삼음
결정계수(R2)
- 회귀 문제의 성능 측정 도구
- 1에 가까울수록 좋고, 0에 가깝다면 성능이 나쁨
과대적합
- 모델의 훈련 세트 성능이 테스트 세트 성능보다 훨씬 높을 때 발생
- 모델이 훈련 세트에 너무 집착홰서 데이터에 내재된 거시적인 패턴을 감지하지 못 함
과소적합
- 훈련 세트와 테스트 세트 성능이 모두 동일하게 낮거나 테스트 세트 성능이 오히려 더 높을 때 발생
- 더 복잡한 모델을 사용해 훈련 세트에 잘 맞는 모델을 만들어야 함
패키지 및 함수
skiti-learn 패키지
KNeighborsRegressor
- k-최근접 이웃 회귀 모델을 만드는 사이킷런 클래스
- n_neighbors 매개변수로 이웃의 개수를 지정, 기본값은 5
- 다른 매개변수는 kNeighborsClassifier 클래스와 거의 동일
mean_absolute_error()
- 회귀 모델의 평균 절댓값 오차를 계산
- 첫 번째 매개변수는 타깃, 두 번째는 예측값을 전달
mean_squared_error()
- 타깃과 예측을 뺀 값을 제곱한 다음 전체 샘플에 대해 평균한 값을 반환
실습
Practice 3-1
3-2. 선형 회귀
개념정리
선형 회귀
- 특성과 타깃 사이의 관계를 가장 잘 나타내는 선형 방정식을 찾음
- 특성이 하나라면 직선 방정식이 됨
- 선형 회귀에서 찾은 특성과 타깃 사이의 관계는 선형 방정식의 계수 또는 가중치에 저장됨
- 머신 러닝에서 가중치는 방정식의 기울기와 절편을 모두 의미하는 경우가 많음
모델 파라미터
- 선형 회귀가 찾은 가중치처럼 머신러닝 모델이 특성에서 학습한 파라미터
다항 회귀
- 다항식을 사용해 특성과 타깃 사이의 관계를 나타냄
- 함수가 비선형일 수 있지만 여전히 선형 회귀로 표현 가능
패키지 및 함수
skiti-learn 패키지
Linear Regression
- 사이킷런의 선형 회귀 클래스
- fit_intercept 매개변수를 False로 지정하면 절편을 학습하지 않음, 기본값은 True
- 학습된 모델의 coef_ 속성은 특성에 대한 계수를 포함한 배열, 배열의 크기는 특성의 개수와 같음
- intercept_ 속성에는 절편이 저장되어 있음
실습
Practice 3-2
3-3. 특성 공학과 규제
개념정리
다중 회귀
- 여러 개의 특성을 사용하는 회귀 모델
- 특성이 많으면 선형 모델은 강력한 성능을 발휘
특성 공학
- 주어진 특성을 조합해 새로운 특성을 만드는 일련의 작업 과정
릿지
- 규제가 있는 선형 회귀 모델
- 선형 모델의 계수를 작게 만들어 과대적합을 완화
- 효과가 좋아 널리 사용되는 규제 방법
라쏘
- 또 다른 규제가 있는 선형 회귀 모델
- 릿지와 달리 계수 값을 아예 0으로 만들 수도 있음
하이퍼파라미터
- 머신러닝 알고리즘이 학습하지 않는 파라미터
- 사람이 사전에 지정해야 함
- e.g. 릿지와 라쏘의 규제 강도 alpha 파라미터
패키지 및 함수
pandas 패키지
read_csv()
- CSV 파일을 로컬 컴퓨터나 인터넷에서 읽어 판다스 데이터프레임으로 변환하는 함수
- 매개변수: sep(CSV 파일의 구분자를 지정, 기본값 ','), header(데이터프레임의 열 이름으로 사용할 CSV 파일의 행 번호를 지정, 기본적으로 첫 번째 행을 열 이름으로 사용), skiprows(파일에서 읽기 전에 건너뛸 행의 개수를 지정), nrows(파일에서 읽을 행의 개수를 지정)
skiti-learn 패키지
PolynomialFeatures
- 주어진 특성을 조합해 새로운 특성을 만듦
- degree는 최고 차수를 지정하며, 기본값은 2
- interaction_only가 True이면 거듭제곱의 항은 제외되고 특성 간의 곱셈 항만 추가됨, 기본값은 False
- include_bias가 False이면 절편을 위한 특성을 추가하지 않음, 기본값은 True
Ridge
- 규제가 있는 회귀 알고리즘인 릿지 회귀 모델을 훈련
- alpha 매개변수로 규제의 강도를 조절, 값이 클수록 규제가 세짐, 기본값은 1
- solver 매개변수에 최적의 모델을 찾기 위한 방법을 지정 가능
- 기본값은 'auto'이며 데이터에 따라 자동으로 선택됨
- 'sag' 및 'saga'는 확률적 평균 경사 하강법 알고리즘으로 특성과 샘플 수가 많을 때 유용
- random_state는 solver가 'sag'나 'saga'일 때 넘파이 난수 시드값을 지정 가능
Lasso
- 규제가 있는 회귀 알고리즘인 라쏘 회귀 모델을 훈련
- 좌표 하강법(좌표축을 따라 최적화를 수행)을 사용
- alpha와 random_state 매개변수는 Ridge 클래스와 동일
- max_iter는 알고리즘의 수행 반복 횟수를 지정, 기본값은 1000
실습
Practice 3-3