Python의 선형 회귀 I

2024. 1. 25. 18:32python/intermediate

회귀

회귀 분석은 통계 및 기계 학습에서 가장 중요한 분야 중 하나입니다. 다양한 회귀 방법을 사용할 수 있습니다. 선형 회귀가 그 중 하나입니다.

회귀란 무엇입니까?

회귀는 변수 간의 관계를 검색합니다 . 예를 들어, 일부 회사의 여러 직원을 관찰하고 그들의 급여가 경험, 교육 수준, 역할, 고용 도시 등과 같은 특성 에 따라 어떻게 달라지는지 이해하려고 노력할 수 있습니다 .

이는 각 직원과 관련된 데이터가 하나 의 관찰을 나타내는 회귀 문제입니다 . 경험, 교육, 역할, 도시는 독립적인 특성이고 급여는 이에 따라 다르다고 가정합니다.

마찬가지로 면적, 침실 수, 도심까지의 거리 등에 대한 주택 가격의 수학적 의존성을 확립하려고 시도할 수 있습니다.

일반적으로 회귀 분석에서는 관심 있는 현상을 고려하고 여러 가지 관찰 결과를 얻습니다. 각 관찰에는 두 개 이상의 특징이 있습니다. 기능 중 적어도 하나가 다른 기능에 종속된다는 가정에 따라 기능 간의 관계를 설정하려고 합니다.

즉, 일부 특성이나 변수를 다른 특성이나 변수에 충분히 잘 매핑하는 함수를 찾아야 합니다.

종속 기능을 종속 변수 , 출력 또는 응답 이라고 합니다 . 독립 특징을 독립 변수 , 입력 , 회귀 변수 또는 예측 변수 라고 합니다 .

회귀 문제에는 일반적으로 하나의 연속적이고 무한한 종속 변수가 있습니다. 그러나 입력은 연속적이거나 불연속적이거나 심지어 성별, 국적, 브랜드와 같은 범주형 데이터일 수도 있습니다.

출력을 𝑦로, 입력을 𝑥으로 표시하는 것이 일반적입니다. 두 개 이상의 독립 변수가 있는 경우 벡터 𝐱 = (𝑥₁, …, 𝑥ᵣ)로 표시할 수 있습니다. 여기서 𝑟는 입력 수입니다.

언제 회귀가 필요합니까?

일반적으로 일부 현상이 다른 현상에 영향을 미치는지 여부와 어떻게 영향을 미치는지 또는 여러 변수가 어떻게 관련되어 있는지 대답하려면 회귀 분석이 필요합니다. 예를 들어, 경험이나 성별이 급여에 영향을 미치는지 여부 와 그 정도를 확인하는 데 사용할 수 있습니다 .

회귀는 새로운 예측 변수 세트를 사용하여 반응을 예측 하려는 경우에도 유용합니다 . 예를 들어, 실외 온도, 시간, 해당 가구의 거주자 수를 고려하여 다음 시간 동안 가구의 전력 소비를 예측할 수 있습니다.

회귀분석은 경제학, 컴퓨터 과학, 사회과학 등 다양한 분야에서 사용됩니다. 대량의 데이터가 확보되고 데이터의 실질적인 가치에 대한 인식이 높아짐에 따라 그 중요성은 날로 높아지고 있습니다.

선형 회귀

선형 회귀는 아마도 가장 중요하고 널리 사용되는 회귀 기술 중 하나일 것입니다. 가장 간단한 회귀 방법 중 하나입니다. 주요 장점 중 하나는 결과 해석이 쉽다는 것입니다.

문제 공식화

독립 변수 세트 𝐱 = (𝑥₁, …, 𝑥ᵣ)에서 일부 종속 변수 𝑦의 선형 회귀를 구현할 때(여기서 𝑟는 예측 변수의 수) 𝑦와 𝐱 사이에 선형 관계가 있다고 가정합니다. 𝑦 = 𝛽₀ + 𝛽₁𝑥₁ + ⋯ + 𝛽ᵣ𝑥ᵣ + 𝜀. 이 방정식은 회귀 방정식 입니다 . 𝛽₀, 𝛽₁, …, 𝛽ᵣ는 회귀 계수 이고 𝜀는 무작위 오류 입니다 .

선형 회귀는 𝑏₀, 𝑏₁, …, 𝑏ᵣ로 표시되는 회귀 계수 또는 간단히 예측 가중치 의 추정치 를 계산합니다 . 이러한 추정기는 추정된 회귀 함수 𝑓(𝐱) = 𝑏₀ + 𝑏₁𝑥₁ + ⋯ + 𝑏ᵣ𝑥ᵣ를 정의합니다. 이 함수는 입력과 출력 간의 종속성을 충분히 잘 캡처해야 합니다.

각 관측치 𝑖 = 1, …, 𝑛에 대한 추정 또는 예측 반응 𝑓(𝐱ᵢ) 은 해당 실제 반응 𝑦ᵢ 에 최대한 가까워야 합니다 . 모든 관측치 𝑖 = 1, …, 𝑛에 대한 차이 𝑦ᵢ - 𝑓(𝐱ᵢ)를 잔차라고 합니다 . 회귀는 가장 좋은 예측 가중치 , 즉 가장 작은 잔차에 해당하는 가중치를 결정하는 것입니다 .

최상의 가중치를 얻으려면 일반적으로 모든 관측치 𝑖 = 1, …, 𝑛: SSR = Σᵢ(𝑦ᵢ - 𝑓(𝐱ᵢ))²에 대해 잔차 제곱합(SSR)을 최소화합니다 . 이 접근법을 보통 최소 제곱법 이라고 합니다 .

회귀 성능

실제 응답 𝑦ᵢ, 𝑖 = 1, …, 𝑛의 변동은 부분적으로 예측 변수 𝐱ᵢ에 대한 의존성으로 인해 발생합니다. 그러나 출력에는 추가적인 고유한 차이도 있습니다.

𝑅²로 표시되는 결정 계수 는 특정 회귀 모델을 사용하여 𝐱에 대한 의존도로 설명할 수 있는 𝑦의 변동량을 알려줍니다. 𝑅²가 클수록 더 나은 적합성을 나타내며 모델이 다양한 입력에 따른 출력 변화를 더 잘 설명할 수 있음을 의미합니다.

값 𝑅² = 1은 SSR = 0에 해당합니다 . 이는 예측 응답 값과 실제 응답 값이 서로 완벽하게 맞기 때문에 맞습니다.

단순 선형 회귀

단순 또는 단일 변량 선형 회귀는 단일 독립 변수 𝐱 = 𝑥를 갖기 때문에 선형 회귀의 가장 간단한 사례입니다.

다음 그림은 단순 선형 회귀를 보여줍니다.

 

단순 선형 회귀를 구현할 때 일반적으로 주어진 입력-출력(𝑥-𝑦) 쌍 세트로 시작합니다. 이 쌍은 관측치이며 그림에서 녹색 원으로 표시됩니다. 예를 들어, 가장 왼쪽 관측치는 입력 𝑥 = 5이고 실제 출력 또는 응답 𝑦 = 5입니다. 다음 관측치는 𝑥 = 15 및 𝑦 = 20입니다.

검은색 선으로 표시되는 추정 회귀 함수는 𝑓(𝑥) = 𝑏₀ + 𝑏₁𝑥 등식을 갖습니다. 목표는 SSR을 최소화하는 예측 가중치 𝑏₀ 및 𝑏₁의 최적 값을 계산하고 추정 회귀 함수를 결정하는 것입니다.

절편 이라고도 하는 𝑏₀ 값은 추정 회귀선이 𝑦 축과 교차하는 지점을 나타냅니다. 𝑥 = 0에 대한 예상 반응 𝑓(𝑥)의 값입니다. 𝑏₁ 값은 추정 회귀선의 기울기를 결정합니다.

빨간색 사각형으로 표시된 예측 반응은 입력 값에 해당하는 회귀선의 점입니다. 예를 들어, 입력 𝑥 = 5의 경우 예측 반응은 𝑓(5) = 8.33이며, 이는 가장 왼쪽 빨간색 사각형이 나타냅니다.

수직 회색 점선은 𝑖 = 1, …, 𝑛에 대해 𝑦ᵢ - 𝑓(𝐱ᵢ) = 𝑦ᵢ - 𝑏₀ - 𝑏₁𝑥ᵢ로 계산할 수 있는 잔차를 나타냅니다. 녹색 원과 빨간색 사각형 사이의 거리입니다. 선형 회귀를 구현할 때 실제로 이러한 거리를 최소화하고 빨간색 사각형을 미리 정의된 녹색 원에 최대한 가깝게 만들려고 합니다.

다중 선형 회귀

다중 또는 다변량 선형 회귀는 두 개 이상의 독립 변수를 사용하는 선형 회귀의 경우입니다.

독립변수가 2개만 있는 경우 추정 회귀 함수는 𝑓(𝑥₁, 𝑥₂) = 𝑏₀ + 𝑏₁𝑥₁ + 𝑏₂𝑥₂입니다. 3차원 공간에서의 회귀 평면을 나타냅니다. 회귀의 목표는 최소 SSR을 산출하면서 이 평면이 실제 응답에 최대한 가깝도록 가중치 𝑏₀, 𝑏₁ 및 𝑏²의 값을 결정하는 것입니다.

2개 이상의 독립변수의 경우도 유사하지만 더 일반적입니다. 추정 회귀 함수는 𝑓(𝑥₁, …, 𝑥ᵣ) = 𝑏₀ + 𝑏₁𝑥₁ + ⋯ +𝑏ᵣ𝑥ᵣ이며, 입력 개수가 𝑟일 때 결정되는 가중치는 𝑟 + 1개입니다.

다항식 회귀

다항식 회귀는 선형 회귀의 일반화된 사례로 간주할 수 있습니다. 출력과 입력 사이의 다항식 의존성을 가정하고 결과적으로 다항식 추정 회귀 함수를 가정합니다.

즉, 회귀 함수 𝑓에는 𝑏₁𝑥₁와 같은 선형 항 외에도 𝑏₂𝑥₁², 𝑏₃𝑥₁³ 또는 𝑏₄𝑥₁𝑥₂, 𝑏₅𝑥₁²𝑥₂와 같은 비선형 항이 포함될 수 있습니다.

다항식 회귀의 가장 간단한 예에는 단일 독립 변수가 있으며 추정된 회귀 함수는 2차 다항식입니다: 𝑓(𝑥) = 𝑏₀ + 𝑏₁𝑥 + 𝑏₂𝑥².

이제 SSR을 최소화하기 위해 𝑏₀, 𝑏₁ 및 𝑏₂를 계산해야 한다는 점을 기억하세요. 이것은 당신의 미지의 것입니다!

이를 염두에 두고 이전 회귀 함수를 선형 회귀에 사용되는 𝑓(𝑥₁, 𝑥₂) = 𝑏₀ + 𝑏₁𝑥₁ + 𝑏₂𝑥₂ 함수와 비교해 보세요. 그것들은 매우 비슷해 보이며 둘 다 미지수 𝑏₀, 𝑏₁ 및 𝑏₂의 선형 함수입니다. 이것이 𝑥² 항을 입력 변수로 간주하여 다항식 회귀 문제를 선형 문제 로 풀 수 있는 이유입니다 .

변수가 2개이고 2차 다항식의 경우 회귀 함수의 형식은 다음과 같습니다. 𝑏₅𝑥²².

문제를 해결하는 방법은 앞의 경우와 동일합니다. 𝑥₁, 𝑥₂, 𝑥₁², 𝑥₁𝑥₂, 𝑥₂² 등 5개 입력에 선형 회귀를 적용합니다. 회귀 결과로 SSR을 최소화하는 6개의 가중치 값인 𝑏₀, 𝑏₁, 𝑏₂, 𝑏₃, 𝑏₄ 및 𝑏₅을 얻습니다.

물론 좀 더 일반적인 문제도 있지만 요점을 설명하는 데는 이것으로 충분합니다.

과소적합과 과적합

다항식 회귀를 구현할 때 발생할 수 있는 매우 중요한 질문 중 하나는 다항식 회귀 함수의 최적 차수 선택과 관련됩니다 .

이 작업에 대한 간단한 규칙은 없습니다. 경우에 따라 다릅니다. 그러나 정도 선택에 따라 발생할 수 있는 두 가지 문제, 즉 과소적합 과 과적합 에 유의해야 합니다 .

과소적합은 일반적으로 모델 자체의 단순성으로 인해 모델이 데이터 간의 종속성을 정확하게 포착할 수 없을 때 발생합니다. 새로운 데이터를 적용할 때 알려진 데이터와 잘못된 일반화 기능으로 낮은 𝑅²을 생성하는 경우가 많습니다.

과적합은 모델이 데이터 종속성과 무작위 변동을 모두 학습할 때 발생합니다. 즉, 모델이 기존 데이터를 너무 잘 학습합니다. 특징이나 항이 많은 복잡한 모델은 종종 과적합되기 쉽습니다. 알려진 데이터에 적용하면 이러한 모델은 일반적으로 높은 𝑅²를 생성합니다. 그러나 일반적으로 잘 일반화되지 않으며 새 데이터와 함께 사용할 때 𝑅²가 상당히 낮습니다.

다음 그림은 과소적합, 적합, 과적합 모델을 보여줍니다.

 

 

왼쪽 상단 플롯은 𝑅²가 낮은 선형 회귀선을 보여줍니다. 또한 𝑥가 25에서 0으로 멀어질수록 실제 반응이 증가한다는 사실을 직선에서 고려할 수 없다는 점도 중요할 수 있습니다. 이는 과소적합의 예일 가능성이 높습니다.

오른쪽 상단 플롯은 차수가 2인 다항식 회귀를 보여줍니다. 이 경우 이는 이 데이터를 모델링하기 위한 최적의 수준일 수 있습니다. 모델은 많은 경우에 만족스러운 𝑅² 값을 가지며 트렌드를 잘 보여줍니다.

왼쪽 아래 플롯은 차수가 3인 다항식 회귀를 나타냅니다. 𝑅²의 값은 이전 경우보다 높습니다. 이 모델은 이전 모델보다 알려진 데이터를 사용하여 더 잘 작동합니다. 그러나 실제 데이터에서는 그렇지 않지만 선이 감소하기 시작하는 60에 가까운 입력 값의 경우 특히 과적합의 징후가 나타납니다.

마지막으로, 오른쪽 하단 플롯에서 완벽한 피팅을 볼 수 있습니다. 6개의 점과 5차(또는 그 이상)의 다항식 선은 𝑅² = 1을 산출합니다. 각 실제 응답은 해당 예측과 같습니다.

어떤 상황에서는 이것이 바로 당신이 찾고 있는 것일 수도 있습니다. 그러나 많은 경우 이는 과적합된 모델입니다. 보이지 않는 데이터, 특히 50보다 큰 입력의 경우 동작이 좋지 않을 가능성이 높습니다.

예를 들어, 어떠한 증거도 없이 50보다 큰 𝑥에 대한 응답이 크게 감소하고 60에 가까운 𝑥에 대한 𝑦가 0에 도달한다고 가정합니다. 이러한 행동은 기존 데이터를 학습하고 맞추려는 과도한 노력의 결과입니다.

일반적인 회귀와 특히 선형 회귀에 대한 자세한 정보를 찾을 수 있는 리소스가 많이 있습니다. Wikipedia의 회귀 분석 페이지 , Wikipedia 의 선형 회귀 항목 및 Khan Academy의 선형 회귀 기사 가 좋은 출발점입니다.

'python > intermediate' 카테고리의 다른 글

Python의 선형 회귀 III  (1) 2024.01.27
Python의 선형 회귀 II  (1) 2024.01.26
Python3 중급 주제  (0) 2024.01.24
프롬프트 엔지니어링 실제 사례  (1) 2024.01.23
상속과 구성 Python OOP 가이드  (1) 2024.01.22