🐣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 통계학자 프랜시스 골턴, 키가 큰 사람의 아이가 부모보다 더 크지 않다는 사실을 관찰하고 “평균으로 회귀한다”는 표현을 사용
- 데이터의 값은 평균값 같은 기존의 경향으로 돌아가려는 경향
- 여러 변수들 간의 상관 관계를 파악하여 어떤 특정 변수(종속변수)의 값을 다른 변수(독립변수)들의 값을 이용하여 설명, 예측하는 수리식을 찾는 방법
- 회귀식을 찾는 것
- 예제
- 날씨(온도)와 맥주의 매상 데이터 관계
- 근속 연수와 연봉 데이터 관계
- 집의 면적(크기)와 집값 데이터 관계
- 나이와 키 관계

- 회귀 분석의 유형
- 변수의 개수 및 계수의 형태에 따라 구분

- 독립 변수의 개수에 따라
- 단순회귀분석 : 독립변수가 1개인 경우, 단일 회귀분석
- 다중회귀분석 : 독립변수가 여러 개인 경우
- 회귀 계수의 형태에 따라
- 선형 : 계수를 선형 결합(linear-regreesion)으로 표현할 수 있는 경우
- 비선형 : 계수를 선형 결합으로 표현할 수 없는 경우
- 종속 변수의 개수에 따라
- 단변량 회귀모델 - 종속변수가 1개인 경우
- 다변량 회귀모델 - 종속변수가 여러 개인 경우
선형회귀
- 종속 변수가 독립 변수와 회귀 계수의 선형 조합으로 표현 가능한 경우
- 파라미터(계수)에 대한 선형성만을 가정함
- 독립변수 X와 종속 변수 y간의 상호 연관성 정도를 파악하기 위한 분석 기법
- 하나의 변수가 변함에 따라 대응되는 변수가 어떻게 변하는지를 측정하는 것
- 변수 간의 인과관계를 분석할 떄회귀 계쑤
- 독립 변수가 1개이면 단순 회귀 분석, 두 개 이상독립변수수
- 선형회귀식 :
단순 선형 회귀
- 단순선형회귀
- 데이터의 분포를 직선으로 가정하고 데이터를 학습해서 예측
- 독립변수가 1개이고, 종속변수도 1개
- 독립변수와 종속변수 간의 관계를 선형적으로 파악하는 회귀 방식
- 독립변수와 종속변수의 관계식 : 호
- 회귀 계수(coefficient) :
- 독립변수가 종속변수에 끼치는 영향력(설명력)의 정도로서, 직선의 기울기(slope)
- 절편(intercetp) :
- 독립변수가 0일 때 상수 값
- 오차와 손실함수
- 기울기와 절편의 값에 따라 여러 개의 직선이 있을 수 있다.
- 가장 데이터를 잘 설명하는 직선의 방정식
- 가장 적절한 파라미터를 추정

- 평균 제곱 오차
- 평균 절대값 오차
- 평균 제곱근 오차

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

회귀 분석 손실 함수

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

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

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

- 결정 계수(Coefficient of Determinant)
- 모델이 얼마나 종속 변수를 잘 설명하는가에 관한 지표
- 만약 모델의 잔차가 매우 큰 경우 결정계수는 마이너스가 나올 수 있다
- 최소제곱법을 이용한 선형 회귀에서 예측값과 실제값의 상관 계수를 제곱한 수치가 결정계수와 같아진다(0≤≤1)

- 결정 계수 해석
- 결정 계수의 값은 0≤ R2 ≤ 1이며, 1에 가까울수록 설명력이 강하고 0에 가까울수록 설명력이 약하다
사이킷런의 회귀 분석 평가 지표

실습 (210.0.단순선형회귀_A)
단순선형회귀 머신러닝 구현(스탯츠모델)
- 선형 회귀 모델 객체 생성
- sm 모듈에 있는 OLS()을 이용하여 OLS 방법으로 선형 회귀를 수행할 수 있는 객체를 생성
# 스탯츠 모델
lr = sm.OLS(y_train, X_train)
- 모델 객체에 대한 학습 수행
- 선형 회귀를 수행할 객체에 대하여 fit()메소드를 이용하여 학습을 수행
- 회귀식 구형 : 회귀계수, 절편
reg = lr.fit()
다중 선형 회귀
- 정의
- 단순 선형회귀 알고리즘에서 독립변수의 갯수를 확장시킨 경우
- 독립변수가 2개 이상이고 종속 변수는 1개인 경우, 독립변수들과 종속 변수 간의 관계를 선형적으로 파악하는 회귀 방식(D차원 선형 회귀 모델)
- 독립변수가 n개 일떄 과 종속변수 y의 관계
- 단순 선형 회귀에서 독립변수의 개수만 늘어난 것이다.
- 단순 선형 회귀와 동일한 절차를 이용하여 분석을 수행
- 독립 변수의 수가 많아지므로 이로 인해 발생할 수 있는 경우 들을 고려해서 적절한 조치를 취해야 한다

- 독립변수들의 최초 선택
- 회귀분석의 목적 : 종속 변수를 가장 잘 설명하는 독립변수들의 성향 / 특징들을 찾아내어 이를 기반으로 기존의 자료를 설명하거나 새로운 결과를 예측하는 것
- 독립변수를 임의로 누락시키는 것은 해당 모델의 설명력이 낮아지는 문제
- 회귀 분석을 수행하는 경우, 관련 있는 독립변수는 일단 가급적 모두 고려
다중 선형회귀 머신러닝 구현(사이킷런)
- 알고리즘 : 최소제곱법
- 사이킷런에서 최소제곱법으로 단순 선형 회귀 구현

탐색적 데이터 분석(EDA)
- 수집한 데이터를 분석하기 전에 데이터의 특성을 관찰하고 이해하는 단계
- 원 데이터(Raw Data)를 대상으로 유연하게 데이터를 탐색하고, 데이터의 특징과 구조에 대한 정보를 획득
- 목적
- 데이터 종류의 확인과 데이터 간의 관계에 대한 더 나은 이해를 목적
- 데이터를 살펴서 명백한 오류를 제거하고 데이터 내의 패턴을 이해하고 이상치를 감지하며 변수 간의 맥락을 찾아냄
- EDA 도구
- 요약 통계 및 각 독립 변수에 대한 일변량 시각화 → bar plot
- 클러스터링 및 차원 축소 기술
- 도표, 그래프 등의 시각화, 요양 통계를 이용하여 전체적인 데이터를 살펴보고 개별 속성의 값을 관찰
탐색적 데이터 분석 방법
- 전체적인 데이터 살펴보기
1) 데이터 항목의 개수, 속성 목록, 결측치, nan값, 데이터 형 확인
2) 오류 데이터 확인
3) 각 속성값의 범위 및 분포 확인
- 이상치(Outiler) 분석
1) 개별 데이터를 관찰하여 전체적인 추세 및 특이 사항 확인
2) 적절한 요약 통계 지표 확인 - 평균값, 중앙값, 최빈값, 분산
3) 적절한 시각화 도구 확인
- 속성 간의 관계 분석 - 상관 관계 분석
1) 서로 의미 있는 상관관계를 갖는 속성의 조합 찾기
2) 상관 분석, 다중 공산성 확
공분산
- 산점도 분석
예) 학생들의 영어 점수, 수학 점수 분포


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

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

상관 분석
- 두 변수가 어떤 관계에 있는지 분석하는 방법
- 두 변수는 서로 독립적이거나 상관된 관계일 수 있는데, 두 변수의 관계의 강도를 상관관계라고함
- 상관 분석에서는 상관관계의 정도를 나타내는 단위로 모상관 계수 p를 사용
- 상관 계수는 두 변수가 연관된 정도를 나타낼 뿐 인과 관계를 설명하지 않으므로 정확한 예측치를 계산할 수는 없음
- 두 변수 간의 인과 관계는 회귀 분석을 통해 인과 관계의 방향, 정도 및 수학적 모델 확인
- 단순 상관 분석 - 두 변수가 어느 정도 강한 관계에 있는지 측정
- 다중 상관 분석 - 세 개 이상의 변수 간 관계의 강도를 측정
- 단위에 의존하지 않는 상관 지표(점수 * 점수,키 * 점수의 예를 고려)
- 공분산은 각 데이터의 단위를 곱한 것이므로, 각 데이터의 표준편차로 나누어 단위에 의존하지 않는 지표, 상관계수를 정의

- 변수 간 관계의 정도(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)의 값이 어떻게 분포되는가를 나타낸다.

- 공분산의 해석

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


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

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