🐣python

선형회귀

category
🐣python
URL
date
Feb 7, 2023
slug
machine-learning-linear-regression
author
status
Public
tags
Playdata_deep-learning & machine-learning
summary
단순선형,다중선형
type
Post
thumbnail
updatedAt
Mar 2, 2023 03:00 AM

회귀

  • 시조 : 19C 통계학자 프랜시스 골턴, 키가 큰 사람의 아이가 부모보다 더 크지 않다는 사실을 관찰하고 “평균으로 회귀한다”는 표현을 사용
  • 데이터의 값은 평균값 같은 기존의 경향으로 돌아가려는 경향
  • 여러 변수들 간의 상관 관계를 파악하여 어떤 특정 변수(종속변수)의 값을 다른 변수(독립변수)들의 값을 이용하여 설명, 예측하는 수리식을 찾는 방법
  • 회귀식을 찾는 것
  • 예제
    • 날씨(온도)와 맥주의 매상 데이터 관계
    • 근속 연수와 연봉 데이터 관계
    • 집의 면적(크기)와 집값 데이터 관계
    • 나이와 키 관계
notion image
 
  • 회귀 분석의 유형
    • 변수의 개수 및 계수의 형태에 따라 구분
    •  
notion image
  • 독립 변수의 개수에 따라
    • 단순회귀분석 : 독립변수가 1개인 경우, 단일 회귀분석
    • 다중회귀분석 : 독립변수가 여러 개인 경우
  • 회귀 계수의 형태에 따라
    • 선형 : 계수를 선형 결합(linear-regreesion)으로 표현할 수 있는 경우
    • 비선형 : 계수를 선형 결합으로 표현할 수 없는 경우
  • 종속 변수의 개수에 따라
    • 단변량 회귀모델 - 종속변수가 1개인 경우
    • 다변량 회귀모델 - 종속변수가 여러 개인 경우
    •  

선형회귀

  • 종속 변수가 독립 변수와 회귀 계수의 선형 조합으로 표현 가능한 경우
  • 파라미터(계수)에 대한 선형성만을 가정함
  • 독립변수 X와 종속 변수 y간의 상호 연관성 정도를 파악하기 위한 분석 기법
  • 하나의 변수가 변함에 따라 대응되는 변수가 어떻게 변하는지를 측정하는 것
  • 변수 간의 인과관계를 분석할 떄회귀 계쑤
  • 독립 변수가 1개이면 단순 회귀 분석, 두 개 이상독립변수수
  • 선형회귀식 :
 

단순 선형 회귀

  • 단순선형회귀
    • 데이터의 분포를 직선으로 가정하고 데이터를 학습해서 예측
    • 독립변수가 1개이고, 종속변수도 1개
    • 독립변수와 종속변수 간의 관계를 선형적으로 파악하는 회귀 방식
    • 독립변수와 종속변수의 관계식 :
    •  
  • 회귀 계수(coefficient) :
    • 독립변수가 종속변수에 끼치는 영향력(설명력)의 정도로서, 직선의 기울기(slope)
  • 절편(intercetp) :
    • 독립변수가 0일 때 상수 값
    •  
  • 오차와 손실함수
    • 기울기와 절편의 값에 따라 여러 개의 직선이 있을 수 있다.
    • 가장 데이터를 잘 설명하는 직선의 방정식
      • 가장 적절한 파라미터를 추정
notion image
 
  • 평균 제곱 오차
  • 평균 절대값 오차
  • 평균 제곱근 오차
    •  
notion image
  • 적절한 회귀식 찾기
    • ⇒ 오차값을 가장 적게 만드는 a,b를 찾기 위해
 

잔차 제곱 오차 함수

  • 잔차 / 오차
    • 실제 값과 회귀 모델식에 의해 계산한 추정값(점추정치)의 차이
    • 잔차 값의 작을수록, 구해진 회귀식이 데이터를 잘 설명하고 있다
    • 에서의 오차(점추정치)
  • 잔차 제곱합(RSS : Resiual Sum of Squares)
    • 모든 데이터의 점차 잔차를 제곱하여 합한 것
      • : 독립변수 집한 X의 원소
      • : 종속변수 집한 Y의 원소
  • 손실함수(loss function ) / 비용함수(cost function)
    • 회귀계수를 추정할 떄 손실을 최소화할 목적으로 사용하는 함수
★ 회귀함수 → 손실함수 → RSS
notion image
 

회귀 분석 손실 함수

notion image
 

회귀 계수 탐색(선형 방정식 찾기)

notion image
 

최소제곱법

  • 손실함수로 잔차제곱합을 사용하여 손실을 최소로 하는 피라미터(회귀 계수)를 채용하는 방법
  • 선형 회귀의 경우 실제로 파라미터 추정을 할 때 오차의 기울기를 따라 최적의 피라미터를 찾아 가는 방법보다 “최소제곱법(OLS)”이 매우 효율적인 계산법으로 사용 될 수 있다.
 
  • 최소제곱법 / 정규방정식
    • 학습에 사용되는 각 데이터 인스턴스 를 i번쨰 행으로 하는 행렬을 x라고 정의할 때 최적의 피라미터(손실함수의 값이 최소가 되는) w는 다음과 같음

선형 방정식 찾기

★ 최적의 회귀 모형을 만든다는 것 :
  • 손실함수(비용함수)인 MSE값이 최소가 되늰 회귀 계수(를 찾는 것
1) 수치해적 방법 : 경사하강법
  • 반복적인 계산에 의해 근사값을 구하는 수치 계산법
2) 해석학적 방법(최소제곱법)
  • 직선 모델의 경우 근사값이 아니라 정규방정식이라는 닫힌 형태의 계산식을 직접 풀어 정확한 해를 구하는 방법 -가우스/르장드르
  • 반복계산이 아니라 1회의 계산으로 최적의 W를 구할 수 있다.
  • 계산 시간이 빠르고 정확한 답을 제공
  • 문제의 본질을 잘 이해할 수 있고, 다차원 데이터에 대응하며 곡선모델로 확장하기 좋다
  • 으로 손실 함수(단순선형회귀)를 각각 편미분한 값이 0ㅇ 되는 연립방정식의 해를 구함
  • 특성의 개수(입력의 차원)가 많을수록 느려지고 다양한 문제에 적용할 수 없다
 

결정 계수

  • 결정계수 : 개체(종속 변수)가 가지는 총 변량 중 회귀식이 설명(차지)하는 변량의 비율
notion image
  • 결정 계수(Coefficient of Determinant)
    • notion image
    • 모델이 얼마나 종속 변수를 잘 설명하는가에 관한 지표
    • 만약 모델의 잔차가 매우 큰 경우 결정계수는 마이너스가 나올 수 있다
    • 최소제곱법을 이용한 선형 회귀에서 예측값과 실제값의 상관 계수를 제곱한 수치가 결정계수와 같아진다(0≤≤1)
  • 결정 계수 해석
    • 결정 계수의 값은 0≤ R2 ≤ 1이며, 1에 가까울수록 설명력이 강하고 0에 가까울수록 설명력이 약하다
 

사이킷런의 회귀 분석 평가 지표

notion image
 

실습 (210.0.단순선형회귀_A)

 

단순선형회귀 머신러닝 구현(스탯츠모델)

  • 선형 회귀 모델 객체 생성
    • sm 모듈에 있는 OLS()을 이용하여 OLS 방법으로 선형 회귀를 수행할 수 있는 객체를 생성
    • # 스탯츠 모델
      lr = sm.OLS(y_train, X_train)
  • 모델 객체에 대한 학습 수행
    • 선형 회귀를 수행할 객체에 대하여 fit()메소드를 이용하여 학습을 수행
    • 회귀식 구형 : 회귀계수, 절편
    • reg = lr.fit()
 
 

다중 선형 회귀

  • 정의
    • 단순 선형회귀 알고리즘에서 독립변수의 갯수를 확장시킨 경우
  • 독립변수가 2개 이상이고 종속 변수는 1개인 경우, 독립변수들과 종속 변수 간의 관계를 선형적으로 파악하는 회귀 방식(D차원 선형 회귀 모델)
  • 독립변수가 n개 일떄 과 종속변수 y의 관계
    • 단순 선형 회귀에서 독립변수의 개수만 늘어난 것이다.
    • 단순 선형 회귀와 동일한 절차를 이용하여 분석을 수행
    • 독립 변수의 수가 많아지므로 이로 인해 발생할 수 있는 경우 들을 고려해서 적절한 조치를 취해야 한다
notion image
  • 독립변수들의 최초 선택
    • 회귀분석의 목적 : 종속 변수를 가장 잘 설명하는 독립변수들의 성향 / 특징들을 찾아내어 이를 기반으로 기존의 자료를 설명하거나 새로운 결과를 예측하는 것
    • 독립변수를 임의로 누락시키는 것은 해당 모델의 설명력이 낮아지는 문제
    • 회귀 분석을 수행하는 경우, 관련 있는 독립변수는 일단 가급적 모두 고려
 

다중 선형회귀 머신러닝 구현(사이킷런)

  • 알고리즘 : 최소제곱법
  • 사이킷런에서 최소제곱법으로 단순 선형 회귀 구현
notion image
 

탐색적 데이터 분석(EDA)

  • 수집한 데이터를 분석하기 전에 데이터의 특성을 관찰하고 이해하는 단계
  • 원 데이터(Raw Data)를 대상으로 유연하게 데이터를 탐색하고, 데이터의 특징과 구조에 대한 정보를 획득
  • 목적
    • 데이터 종류의 확인과 데이터 간의 관계에 대한 더 나은 이해를 목적
    • 데이터를 살펴서 명백한 오류를 제거하고 데이터 내의 패턴을 이해하고 이상치를 감지하며 변수 간의 맥락을 찾아냄
  • EDA 도구
    • 요약 통계 및 각 독립 변수에 대한 일변량 시각화 → bar plot
    • 클러스터링 및 차원 축소 기술
    • 도표, 그래프 등의 시각화, 요양 통계를 이용하여 전체적인 데이터를 살펴보고 개별 속성의 값을 관찰

탐색적 데이터 분석 방법

  • 전체적인 데이터 살펴보기
    • 1) 데이터 항목의 개수, 속성 목록, 결측치, nan값, 데이터 형 확인
      2) 오류 데이터 확인
      3) 각 속성값의 범위 및 분포 확인
  • 이상치(Outiler) 분석
    • 1) 개별 데이터를 관찰하여 전체적인 추세 및 특이 사항 확인
      2) 적절한 요약 통계 지표 확인 - 평균값, 중앙값, 최빈값, 분산
      3) 적절한 시각화 도구 확인
  • 속성 간의 관계 분석 - 상관 관계 분석
    • 1) 서로 의미 있는 상관관계를 갖는 속성의 조합 찾기
      2) 상관 분석, 다중 공산성 확
       

공분산

  1. 산점도 분석
    1. 예) 학생들의 영어 점수, 수학 점수 분포
       
      notion image
 
 
 
 
notion image
  • 부호를 붙인 면적 - 한쪽의 편차가 양의 값이고 다른 한쪽의 편차가 음의 값이면 면적이 음의 값이 되어 버림
 
  • 면적이 모두 양의 값이 경우 - 두 데이터가 모두 평균보다 높거나 평균보다 낮은 경우에만 나타남. 부호를 붙인 면적은 상관의 지표가 됨
 
  • 공분산이 양의 값이면 면적이 양이 되는 데이터가 많다.(양의 상관관계), 음의 값이면 면적이 음이 되는 데이터가 많다.(음의 상관관계)
notion image

상관 관계

  • 두 변수 x와 y 사이의 관련 강도
  • 밀집도를 측정(VS, 회귀 : 관계 자체를 정량화하는 방법)
  • 변수들이 같은 방향으로 움직이려는 경향(양의 상관, 음의 상관)
  • 높은 상관성을 가질 떄 개별 계수를 해석하는 것이 어렵다.
notion image
 

상관 분석

  • 두 변수가 어떤 관계에 있는지 분석하는 방법
  • 두 변수는 서로 독립적이거나 상관된 관계일 수 있는데, 두 변수의 관계의 강도를 상관관계라고함
  • 상관 분석에서는 상관관계의 정도를 나타내는 단위로 모상관 계수 p를 사용
  • 상관 계수는 두 변수가 연관된 정도를 나타낼 뿐 인과 관계를 설명하지 않으므로 정확한 예측치를 계산할 수는 없음
  • 두 변수 간의 인과 관계는 회귀 분석을 통해 인과 관계의 방향, 정도 및 수학적 모델 확인
  • 단순 상관 분석 - 두 변수가 어느 정도 강한 관계에 있는지 측정
  • 다중 상관 분석 - 세 개 이상의 변수 간 관계의 강도를 측정
  • 단위에 의존하지 않는 상관 지표(점수 * 점수,키 * 점수의 예를 고려)
  • 공분산은 각 데이터의 단위를 곱한 것이므로, 각 데이터의 표준편차로 나누어 단위에 의존하지 않는 지표, 상관계수를 정의
notion image
  • 변수 간 관계의 정도(0~1)와 방향(+,-)을 하나의 수치로 요약해주는 지수
  • -1 에서 +1 사이의 값을 가짐
  • 상관 계수가 +이면 양의 상관관계이며 한 변수가 증가하면 다른 변수도 증가
  • 상관 계수가 -이면 음의 상관관계이며 한 변수가 증가할 때 다른 변수는 감소
  • 0.0 ~ 0.2 : 상관관계가 거의 없음
  • 0.2 ~ 0.4 : 약한 상관관계가 있음
  • 0.4 ~ 0.6 : 상관관계가 있음
  • 0.6 ~ 0.8 : 강한 상관관계가 있음
  • 0.8 ~ 1.0 : 매우 강한 상관관계가 있음
 

상관계수 > 공분산

  • 공분산
    • 2개의 변수들 간의 상관 관계를 나타낸 수치, 2개의 변수 X,Y에 대하여 X(또는 Y)의 값이 변화할 떄 Y(또는 X)의 값이 어떻게 분포되는가를 나타낸다.
    • notion image
  • 공분산의 해석
notion image
 
  • 상관 계수(R) 구하는 법
    • 공분산을 각각의 표준편차로 나누어 정규화한 수치(피어슨 상관계수)
      • 변수 X,Y에 대하여 각각의 크기(단위)에 영향을 받지 않도록 단위를 보정한 것
      • 두 변수간의 관련성을 구하기 위해 보편적으로 이
      • notion image
      • 상관 계수의 값은 -1 ≤ R ≤ 1이며, 1에 가까울수록 강한 양(+) 의 상관 관계, -1에 가까울수록 강한 음(-)의 상관관계이다. 0이면 서로 상관 관계가 없다.
      • notion image
 

다중 공산선 문제

  • 다수의 독립변수가 서로 강한 상관 관계(0.9)가 나타나는 것을 다중 공산성(즉, 어떤 독립변수의 값이 독립적이지 않고 다른 독립변수의 값에 의해서 결정)
  • 독립변수들끼리의 상관 계수 R이 지나치게 높으면 회귀 모형이 유의미하다고 보기 어렵다(회귀 계수의 추정의 오류가 발생)
  • 회귀 분석의 전체 중 하나인 독립성을 가진 독립변수들이 각각 종속변수의 분산을 설명하여야 영향력을 예측할 수 있는데, 하나로 봐도 무방한 독립 변수가 사용되면 설명력을 떨어뜨리고 표준오차를 증가
  • 상관 계수가 높은 변수들을 삭제하거나, 주성분 분석(PCA) 기법 등을 이용하여 의존적인 성분으 제거한뒤 회귀 분석을 수
 

수정된 결정 계수

  • 독립변수의 개수가 많아질수록 그 변수들이 종속변수에 끼치는 영향력을 늘어나게 됨(즉, 독립변수가 많을수록 종속변수에 대한 설명력을 증가)
notion image
  • 다중 회귀 분석에서는 결정 계수 R2의 값이 단순 회귀보다 높게 나오는 경향이 있고, 이는 독립변수의 수가 많아질수록 더욱 증가
  • 이를 보완하여 수정된 결정 계수를 도입했으며, 다중 회귀 에서는 일반적으로 수정 결정 계수의 값을 이용하여 결과를 판단
  • 결정 계수의 값이 커지는 것을 보정하기 위해 데이터(표본)의 크기와 독립변수의 개수를 고려하여 계산한 지표
  • 수정 결정 계수의 값은 항상 결정 계수 R2보다 작거나 같은 값
  • (모든 독립변수가 아니라) 종속변수에 영향을 주는 독립변수만으로 설명되는 분산의 비율이라고 볼 수 있음.

실습 (220.0.다중선형회귀)