logo

기계 학습의 선형 회귀

기계 학습 데이터로부터 학습하고 예측할 수 있는 알고리즘 및 통계 모델 개발에 중점을 두는 인공 지능의 한 분야입니다. 선형 회귀 보다 구체적으로 말하면 기계 학습 알고리즘의 한 유형이기도 합니다. 지도 머신러닝 알고리즘 레이블이 지정된 데이터 세트에서 학습하고 데이터 포인트를 가장 최적화된 선형 함수에 매핑합니다. 이는 새로운 데이터 세트에 대한 예측에 사용될 수 있습니다.

먼저 지도 머신러닝 알고리즘이 무엇인지 알아야 합니다. 이는 알고리즘이 레이블이 지정된 데이터로부터 학습하는 일종의 기계 학습입니다. 레이블이 지정된 데이터는 해당 목표 값이 이미 알려진 데이터 세트를 의미합니다. 지도 학습에는 두 가지 유형이 있습니다.



  • 분류 : 독립 입력 변수를 기반으로 데이터셋의 클래스를 예측합니다. 클래스는 범주형 또는 이산형 값입니다. 동물의 이미지는 고양이인가 개인가?
  • 회귀 : 독립된 입력변수를 기반으로 연속적인 출력변수를 예측합니다. 주택 연령, 주요 도로로부터의 거리, 위치, 지역 등과 같은 다양한 매개변수를 기반으로 주택 가격을 예측하는 것과 같습니다.

여기서는 가장 간단한 회귀 유형 중 하나인 선형 회귀.

내용의 테이블

왼쪽 조인 vs 오른쪽 조인

선형 회귀란 무엇입니까?

선형 회귀는 일종의 지도 머신러닝 관측된 데이터에 선형 방정식을 적용하여 종속 변수와 하나 이상의 독립 특성 간의 선형 관계를 계산하는 알고리즘입니다.



독립된 특성이 하나만 있는 경우 이를 다음과 같이 부릅니다. 단순 선형 회귀 , 기능이 두 개 이상인 경우 다중 선형 회귀 .

마찬가지로 종속변수가 하나만 있는 경우에도 다음과 같이 간주됩니다. 일변량 선형 회귀 , 종속변수가 2개 이상인 경우를 종속변수라고 합니다. 다변량 회귀 .

선형 회귀가 중요한 이유는 무엇입니까?

선형 회귀 분석의 해석 가능성은 주목할 만한 장점입니다. 모델의 방정식은 각 독립 변수가 종속 변수에 미치는 영향을 설명하는 명확한 계수를 제공하여 기본 역학에 대한 더 깊은 이해를 촉진합니다. 선형 회귀는 투명하고 구현하기 쉬우며 보다 복잡한 알고리즘의 기본 개념 역할을 하기 때문에 단순성이 장점입니다.



선형 회귀는 단순한 예측 도구가 아닙니다. 이는 다양한 고급 모델의 기초를 형성합니다. 정규화 및 지원 벡터 머신과 같은 기술은 선형 회귀에서 영감을 얻어 유용성을 확장합니다. 또한 선형 회귀는 가정 테스트의 초석으로, 연구자가 데이터에 대한 주요 가정을 검증할 수 있도록 해줍니다.

선형 회귀 유형

선형 회귀에는 두 가지 주요 유형이 있습니다.

단순 선형 회귀

이는 선형 회귀의 가장 간단한 형태이며 하나의 독립 변수와 하나의 종속 변수만 포함합니다. 단순 선형 회귀 방정식은 다음과 같습니다.
y=eta_{0}+eta_{1}X
어디:

  • Y는 종속변수입니다.
  • X는 독립 변수입니다.
  • β0는 절편입니다.
  • β1은 기울기이다

다중 선형 회귀

여기에는 하나 이상의 독립변수와 하나의 종속변수가 포함됩니다. 다중 선형 회귀 방정식은 다음과 같습니다.
y=eta_{0}+eta_{1}X+eta_{2}X+………eta_{n}X
어디:

  • Y는 종속변수입니다.
  • X1, X2, …, Xp는 독립 변수입니다.
  • β0는 절편입니다.
  • β1, β2, …, βn은 기울기입니다.

알고리즘의 목표는 다음을 찾는 것입니다. 최고의 핏라인 독립변수를 기반으로 값을 예측할 수 있는 방정식.

회귀 분석에서 레코드 세트에는 X 및 Y 값이 있으며 이러한 값은 함수를 학습하는 데 사용되므로 알 수 없는 X에서 Y를 예측하려는 경우 이 학습된 함수를 사용할 수 있습니다. 회귀에서는 Y의 값을 찾아야 합니다. 따라서 X가 독립 특성으로 주어진 회귀의 경우 연속 Y를 예측하는 함수가 필요합니다.

가장 좋은 핏라인은 무엇인가요?

선형 회귀를 사용하는 동안 우리의 주요 목표는 가장 적합한 선을 찾는 것입니다. 이는 예측 값과 실제 값 사이의 오류가 최소로 유지되어야 함을 의미합니다. 가장 적합한 라인에는 오류가 가장 적습니다.

최적선 방정식은 종속변수와 독립변수 간의 관계를 나타내는 직선을 제공합니다. 선의 기울기는 독립변수의 단위 변화에 대한 종속변수의 변화량을 나타냅니다.

기계 학습의 선형 회귀

선형 회귀


여기서 Y는 종속 변수 또는 목표 변수라고 하며 X는 Y의 예측 변수라고도 알려진 독립 변수라고 합니다. 회귀 분석에 사용할 수 있는 함수 또는 모듈에는 여러 유형이 있습니다. 선형 함수는 가장 간단한 유형의 함수입니다. 여기서 X는 문제를 나타내는 단일 특성일 수도 있고 여러 특성일 수도 있습니다.

선형 회귀는 주어진 독립 변수(x)를 기반으로 종속 변수 값(y)을 예측하는 작업을 수행합니다. 따라서 이름은 선형 회귀입니다. 위 그림에서 X(입력)는 경력이고 Y(산출)는 개인의 급여입니다. 회귀선은 우리 모델에 가장 적합한 선입니다.

가중치 또는 선 계수에 대한 서로 다른 값으로 인해 서로 다른 회귀선이 생성되므로 가장 적합한 선을 얻기 위해 비용 함수를 사용하여 최상의 값을 계산합니다.

선형 회귀 분석의 가설 함수

이전에 우리의 독립 특성은 경험, 즉 X이고 해당 급여 Y는 종속 변수라고 가정했습니다. X와 Y 사이에 선형 관계가 있다고 가정하면 다음을 사용하여 급여를 예측할 수 있습니다.

hat{Y} = heta_1 + heta_2X

또는

hat{y}_i = heta_1 + heta_2x_i

여기,

  • y_i epsilon Y ;; (i= 1,2, cdots , n) 데이터에 대한 레이블입니다(지도 학습).
  • x_i epsilon X ;; (i= 1,2, cdots , n) 입력 독립 훈련 데이터(일변량 – 하나의 입력 변수(매개변수))
  • hat{y_i} epsilon hat{Y} ;; (i= 1,2, cdots , n) 예측된 값입니다.

모델은 최적의 θ를 찾아 최적의 회귀 적합선을 얻습니다.1그리고 θ2가치.

  • 1 : 가로채기
  • 2 : x의 계수

가장 좋은 θ를 찾으면1그리고 θ2값에 따라 가장 적합한 라인을 얻습니다. 따라서 최종적으로 예측을 위해 모델을 사용하면 입력 x 값에 대해 y 값을 예측하게 됩니다.

θ 업데이트 방법 1 그리고 θ 2 가장 적합한 라인을 얻기 위한 값은 무엇입니까?

가장 적합한 회귀선을 달성하기 위해 모델은 목표 값을 예측하는 것을 목표로 합니다.hat{Y} 예측값 사이의 오차 차이hat{Y} 참값 Y는 최소값입니다. 따라서 θ를 업데이트하는 것이 매우 중요합니다.1그리고 θ2예측된 y 값(pred)과 실제 y 값(y) 사이의 오류를 최소화하는 최상의 값에 도달합니다.

minimizefrac{1}{n}sum_{i=1}^{n}(hat{y_i}-y_i)^2

선형 회귀의 비용 함수

그만큼 비용 함수 아니면 그 손실 함수 예측값 사이의 오류나 차이일 뿐입니다.hat{Y} 그리고 참값 Y.

선형 회귀에서는 평균 제곱 오차(MSE) 예측 값 사이의 제곱 오차의 평균을 계산하는 비용 함수가 사용됩니다.hat{y}_i 실제 값{y}_i . 목적은 절편에 대한 최적의 값을 결정하는 것입니다. heta_1 입력 특성의 계수 heta_2 주어진 데이터 포인트에 가장 적합한 라인을 제공합니다. 이 관계를 표현하는 선형 방정식은 다음과 같습니다.hat{y}_i = heta_1 + heta_2x_i .

MSE 함수는 다음과 같이 계산할 수 있습니다.

ext{Cost function}(J) = frac{1}{n}sum_{n}^{i}(hat{y_i}-y_i)^2

MSE 함수를 활용하여 경사하강법의 반복 과정을 적용하여 의 값을 업데이트합니다. heta_1 & heta_2 . 이렇게 하면 MSE 값이 전역 최소값에 수렴되어 선형 회귀선이 데이터 세트에 가장 정확하게 맞는 것을 의미합니다.

100.00 중 10

이 프로세스에는 MSE에서 계산된 기울기를 기반으로 매개변수 ( heta_1) 및 ( heta_2)를 지속적으로 조정하는 작업이 포함됩니다. 최종 결과는 예측 값과 실제 값 간의 전체 제곱 차이를 최소화하는 선형 회귀선으로, 데이터의 기본 관계를 최적으로 표현합니다.

선형 회귀를 위한 경사하강법

최적화 알고리즘을 사용하여 선형 회귀 모델을 학습할 수 있습니다. 경사하강법 모델의 매개변수를 반복적으로 수정하여 평균 제곱 오차(MSE) 훈련 데이터 세트의 모델. θ를 업데이트하려면1그리고 θ2비용 함수(RMSE 값 최소화)를 줄이고 최적선을 달성하기 위해 모델은 경사하강법을 사용합니다. 아이디어는 무작위 θ로 시작하는 것입니다.1그리고 θ2값을 반복적으로 업데이트하여 최소 비용에 도달합니다.

그래디언트는 입력에 약간의 변화가 있는 함수의 출력에 대한 효과를 정의하는 파생물일 뿐입니다.

비용함수(J)를 다음과 같이 미분해보자. heta_1

egin {aligned} {J}’_{ heta_1} &=frac{partial J( heta_1, heta_2)}{partial heta_1} &= frac{partial}{partial heta_1} left[frac{1}{n} left(sum_{i=1}^{n}(hat{y}_i-y_i)^2 ight ) ight] &= frac{1}{n}left[sum_{i=1}^{n}2(hat{y}_i-y_i) left(frac{partial}{partial heta_1}(hat{y}_i-y_i) ight ) ight] &= frac{1}{n}left[sum_{i=1}^{n}2(hat{y}_i-y_i) left(frac{partial}{partial heta_1}( heta_1 + heta_2x_i-y_i) ight ) ight] &= frac{1}{n}left[sum_{i=1}^{n}2(hat{y}_i-y_i) left(1+0-0 ight ) ight] &= frac{1}{n}left[sum_{i=1}^{n}(hat{y}_i-y_i) left(2 ight ) ight] &= frac{2}{n}sum_{i=1}^{n}(hat{y}_i-y_i) end {aligned}

비용함수(J)를 다음과 같이 미분해보자. heta_2

egin {aligned} {J}’_{ heta_2} &=frac{partial J( heta_1, heta_2)}{partial heta_2} &= frac{partial}{partial heta_2} left[frac{1}{n} left(sum_{i=1}^{n}(hat{y}_i-y_i)^2 ight ) ight] &= frac{1}{n}left[sum_{i=1}^{n}2(hat{y}_i-y_i) left(frac{partial}{partial heta_2}(hat{y}_i-y_i) ight ) ight] &= frac{1}{n}left[sum_{i=1}^{n}2(hat{y}_i-y_i) left(frac{partial}{partial heta_2}( heta_1 + heta_2x_i-y_i) ight ) ight] &= frac{1}{n}left[sum_{i=1}^{n}2(hat{y}_i-y_i) left(0+x_i-0 ight ) ight] &= frac{1}{n}left[sum_{i=1}^{n}(hat{y}_i-y_i) left(2x_i ight ) ight] &= frac{2}{n}sum_{i=1}^{n}(hat{y}_i-y_i)cdot x_i end {aligned}

훈련 데이터에 가장 잘 맞는 선형 방정식의 계수를 찾는 것이 선형 회귀의 목표입니다. 계수에 대해 평균 제곱 오차 음의 기울기 방향으로 이동하면 계수가 변경될 수 있습니다. 그리고 X의 각각의 절편과 계수는 다음과 같습니다.alpha 학습률입니다.

경사하강법

egin{aligned} heta_1 &= heta_1 – alpha left( {J}’_{ heta_1} ight) &= heta_1 -alpha left( frac{2}{n}sum_{i=1}^{n}(hat{y}_i-y_i) ight) end{aligned} egin{aligned} heta_2 &= heta_2 – alpha left({J}’_{ heta_2} ight) &= heta_2 – alpha left(frac{2}{n}sum_{i=1}^{n}(hat{y}_i-y_i)cdot x_i ight) end{aligned}

단순 선형 회귀의 가정

선형 회귀는 변수의 동작을 이해하고 예측하는 강력한 도구이지만 정확하고 신뢰할 수 있는 솔루션이 되려면 몇 가지 조건을 충족해야 합니다.

  1. 선형성 : 독립변수와 종속변수는 서로 선형관계를 갖는다. 이는 종속변수의 변화가 독립변수의 변화를 선형 방식으로 따른다는 것을 의미합니다. 이는 데이터 포인트를 통해 그릴 수 있는 직선이 있어야 함을 의미합니다. 관계가 선형이 아닌 경우 선형 회귀는 정확한 모델이 아닙니다.
  2. 독립 : 데이터 세트의 관측치는 서로 독립적입니다. 이는 한 관측치에 대한 종속변수 값이 다른 관측치에 대한 종속변수 값에 의존하지 않는다는 것을 의미합니다. 관측치가 독립적이지 않으면 선형 회귀는 정확한 모델이 아닙니다.
  3. 동질성 : 독립변수의 모든 수준에서 오류의 분산은 일정합니다. 이는 독립변수의 양이 오류 분산에 영향을 미치지 않음을 나타냅니다. 잔차의 분산이 일정하지 않으면 선형 회귀 분석은 정확한 모델이 아닙니다.

    선형 회귀 분석의 동질성

  4. 정규성 : 잔차는 정규 분포를 따라야 합니다. 이는 잔차가 종 모양의 곡선을 따라야 함을 의미합니다. 잔차가 정규 분포를 따르지 않으면 선형 회귀는 정확한 모델이 아닙니다.

다중 선형 회귀의 가정

다중 선형 회귀 분석의 경우 단순 선형 회귀 분석의 네 가지 가정이 모두 적용됩니다. 이 외에도 아래에 몇 가지가 더 있습니다.

  1. 다중공선성 없음 : 독립변수간 상관관계가 높지 않습니다. 이는 독립변수 사이에 상관관계가 거의 없거나 전혀 없음을 나타냅니다. 다중공선성은 두 개 이상의 독립변수가 서로 높은 상관관계를 갖고 있을 때 발생하며, 이로 인해 각 변수가 종속변수에 미치는 개별 효과를 확인하기 어려울 수 있습니다. 다중 공선성이 있는 경우 다중 선형 회귀 분석은 정확한 모델이 아닙니다.
  2. 가산성: 모델은 예측 변수의 변화가 반응 변수에 미치는 영향이 다른 변수의 값에 관계없이 일관적이라고 가정합니다. 이 가정은 종속변수에 미치는 영향에 있어서 변수들 사이에 상호작용이 없다는 것을 의미합니다.
  3. 기능 선택: 다중선형회귀에서는 모형에 포함될 독립변수를 신중하게 선택하는 것이 중요합니다. 관련이 없거나 중복된 변수를 포함하면 과적합이 발생하고 모델 해석이 복잡해질 수 있습니다.
  4. 과적합: 과대적합은 모델이 훈련 데이터에 너무 가깝게 맞춰져 변수 간의 실제 기본 관계를 나타내지 않는 잡음이나 무작위 변동을 포착할 때 발생합니다. 이로 인해 보이지 않는 새로운 데이터에 대한 일반화 성능이 저하될 수 있습니다.

다중공선성

다중공선성 다중회귀모형에서 두 개 이상의 독립변수가 높은 상관관계를 갖고 있어 각 변수가 종속변수에 미치는 개별적인 영향을 평가하기 어려울 때 발생하는 통계적 현상이다.

다중공선성을 탐지하는 데는 두 가지 기술이 포함됩니다.

  • 상관관계 매트릭스: 독립 변수 간의 상관 행렬을 조사하는 것은 다중 공선성을 탐지하는 일반적인 방법입니다. 높은 상관관계(1 또는 -1에 가까움)는 잠재적인 다중 공선성을 나타냅니다.
  • VIF(분산팽창계수): VIF는 예측 변수가 상관된 경우 추정 회귀 계수의 분산이 얼마나 증가하는지 수량화하는 측정값입니다. 높은 VIF(일반적으로 10 이상)는 다중 공선성을 나타냅니다.

선형 회귀에 대한 평가 지표

다양한 평가 조치 선형 회귀 모델의 강도를 결정하는 데 사용할 수 있습니다. 이러한 평가 지표는 모델이 관찰된 결과를 얼마나 잘 생성하고 있는지를 나타내는 경우가 많습니다.

가장 일반적인 측정은 다음과 같습니다.

평균 제곱 오차(MSE)

평균 제곱 오차(MSE) 모든 데이터 포인트에 대한 실제 값과 예측 값 간의 차이 제곱의 평균을 계산하는 평가 지표입니다. 음의 차이와 양의 차이가 서로 상쇄되지 않도록 차이를 제곱합니다.

MSE = frac{1}{n}sum_{i=1}^{n}left ( y_i – widehat{y_{i}} ight )^2

여기,

  • n은 데이터 포인트의 수입니다.
  • 그리고i에 대한 실제 또는 관측된 값입니다.데이터 포인트.
  • widehat{y_{i}} i에 대한 예측값입니다.데이터 포인트.

MSE는 모델 예측의 정확성을 정량화하는 방법입니다. MSE는 큰 오류가 전체 점수에 크게 영향을 미치므로 이상값에 민감합니다.

평균 절대 오차(MAE)

평균 절대 오차 회귀 모델의 정확도를 계산하는 데 사용되는 평가 지표입니다. MAE는 예측값과 실제값 사이의 평균 절대차를 측정합니다.

수학적으로 MAE는 다음과 같이 표현됩니다.

MAE =frac{1}{n} sum_{i=1}^{n}|Y_i – widehat{Y_i}|

여기,

  • n은 관측치 수입니다.
  • 그리고실제 값을 나타냅니다.
  • widehat{Y_i} 예측된 값을 나타냅니다.

MAE 값이 낮을수록 모델 성능이 더 우수함을 나타냅니다. 절대적인 차이를 고려하므로 이상값에 민감하지 않습니다.

RMSE(제곱평균제곱근 오류)

잔차 분산의 제곱근은 다음과 같습니다. 제곱 평균 오차 . 관찰된 데이터 포인트가 예상 값과 얼마나 잘 일치하는지 또는 모델이 데이터에 절대적으로 적합한지를 설명합니다.


수학 표기법에서는 다음과 같이 표현될 수 있습니다.
RMSE=sqrt{frac{RSS}{n}}=sqrtfrac{{{sum_{i=2}^{n}(y^{actual}_{i}}- y_{i}^{predicted})^2}}{n}
모델의 전체 데이터 포인트 수를 자유도로 나누는 대신 편향되지 않은 추정치를 얻으려면 잔차 제곱의 합을 나누어야 합니다. 그러면 이 수치를 잔차표준오차(RSE)라고 합니다.

자바로 파일 열기

수학 표기법에서는 다음과 같이 표현될 수 있습니다.
RMSE=sqrt{frac{RSS}{n}}=sqrtfrac{{{sum_{i=2}^{n}(y^{actual}_{i}}- y_{i}^{predicted})^2}}{(n-2)}

RSME는 R-제곱만큼 좋은 지표가 아닙니다. 평균 제곱근 오차는 해당 값이 변수 단위에 따라 달라지기 때문에(정규화된 측정값이 아님) 변수 단위가 변할 때 변동될 수 있습니다.

결정계수(R-제곱)

R-제곱 개발된 모델이 얼마나 많은 변화를 설명하거나 포착할 수 있는지를 나타내는 통계입니다. 항상 0~1 범위에 있습니다. 일반적으로 모델이 데이터와 더 잘 일치할수록 R-제곱 숫자가 커집니다.
수학 표기법에서는 다음과 같이 표현될 수 있습니다.
R^{2}=1-(^{frac{RSS}{TSS}})

  • RSS(잔차 제곱합): 플롯 또는 데이터의 각 데이터 포인트에 대한 잔차의 제곱합은 잔차 제곱합(RSS)으로 알려져 있습니다. 이는 관찰된 출력과 예상된 출력 간의 차이를 측정하는 것입니다.
    RSS=sum_{i=2}^{n}(y_{i}-b_{0}-b_{1}x_{i})^{2}
  • 총 제곱합(TSS): 응답 변수의 평균에서 나온 데이터 포인트의 오류 합계를 총 제곱합(TSS)이라고 합니다.
    TSS= sum_{}^{}(y-overline{y_{i}})^2

R 제곱 메트릭은 모델의 독립 변수를 설명하는 종속 변수의 분산 비율을 측정한 것입니다.

조정된 R-제곱 오류

조정된 R2회귀 모델에서 독립 변수에 의해 설명되는 종속 변수의 분산 비율을 측정합니다. 조정된 R-제곱 모델의 예측 변수 수를 설명하고 종속 변수의 분산을 설명하는 데 크게 기여하지 않는 관련 없는 예측 변수를 포함하면 모델에 불이익을 줍니다.

수학적으로 조정된 R2다음과 같이 표현됩니다.

Adjusted , R^2 = 1 – (frac{(1-R^2).(n-1)}{n-k-1})

여기,

  • n은 관측치 수입니다.
  • k는 모델의 예측 변수 수입니다.
  • 아르 자형2결정계수가 이다

조정된 R-제곱은 과적합을 방지하는 데 도움이 됩니다. 종속 변수의 분산을 설명하는 데 크게 기여하지 않는 추가 예측 변수를 사용하여 모델에 불이익을 줍니다.

선형 회귀의 Python 구현

필요한 라이브러리를 가져옵니다.

파이썬3 import pandas as pd import numpy as np import matplotlib.pyplot as plt import matplotlib.axes as ax from matplotlib.animation import FuncAnimation>

데이터세트를 로드하고 입력 및 대상 변수를 분리합니다.

데이터세트 링크는 다음과 같습니다. 데이터세트 링크

파이썬3 url = 'https://media.techcodeview.com data = pd.read_csv(url) data # Drop the missing values data = data.dropna() # training dataset and labels train_input = np.array(data.x[0:500]).reshape(500, 1) train_output = np.array(data.y[0:500]).reshape(500, 1) # valid dataset and labels test_input = np.array(data.x[500:700]).reshape(199, 1) test_output = np.array(data.y[500:700]).reshape(199, 1)>

선형 회귀 모델을 구축하고 회귀선을 그립니다.

단계:

  • 순전파에서는 매개변수(m & c)에 임의의 값을 초기에 할당하여 선형 회귀 함수 Y=mx+c를 적용합니다.
  • 우리는 비용 함수, 즉 평균을 찾는 함수를 작성했습니다.
파이썬3 class LinearRegression: def __init__(self): self.parameters = {} def forward_propagation(self, train_input): m = self.parameters['m'] c = self.parameters['c'] predictions = np.multiply(m, train_input) + c return predictions def cost_function(self, predictions, train_output): cost = np.mean((train_output - predictions) ** 2) return cost def backward_propagation(self, train_input, train_output, predictions): derivatives = {} df = (predictions-train_output) # dm= 2/n * mean of (predictions-actual) * input dm = 2 * np.mean(np.multiply(train_input, df)) # dc = 2/n * mean of (predictions-actual) dc = 2 * np.mean(df) derivatives['dm'] = dm derivatives['dc'] = dc return derivatives def update_parameters(self, derivatives, learning_rate): self.parameters['m'] = self.parameters['m'] - learning_rate * derivatives['dm'] self.parameters['c'] = self.parameters['c'] - learning_rate * derivatives['dc'] def train(self, train_input, train_output, learning_rate, iters): # Initialize random parameters self.parameters['m'] = np.random.uniform(0, 1) * -1 self.parameters['c'] = np.random.uniform(0, 1) * -1 # Initialize loss self.loss = [] # Initialize figure and axis for animation fig, ax = plt.subplots() x_vals = np.linspace(min(train_input), max(train_input), 100) line, = ax.plot(x_vals, self.parameters['m'] * x_vals + self.parameters['c'], color='red', label='Regression Line') ax.scatter(train_input, train_output, marker='o', color='green', label='Training Data') # Set y-axis limits to exclude negative values ax.set_ylim(0, max(train_output) + 1) def update(frame): # Forward propagation predictions = self.forward_propagation(train_input) # Cost function cost = self.cost_function(predictions, train_output) # Back propagation derivatives = self.backward_propagation( train_input, train_output, predictions) # Update parameters self.update_parameters(derivatives, learning_rate) # Update the regression line line.set_ydata(self.parameters['m'] * x_vals + self.parameters['c']) # Append loss and print self.loss.append(cost) print('Iteration = {}, Loss = {}'.format(frame + 1, cost)) return line, # Create animation ani = FuncAnimation(fig, update, frames=iters, interval=200, blit=True) # Save the animation as a video file (e.g., MP4) ani.save('linear_regression_A.webp'false'>Python3 # 사용 예 선형_reg = LinearRegression() 매개변수, 손실 = 선형_reg.train(train_input, train_output, 0.0001, 20) 출력: 반복 = 1, 손실 = 9130.407560462196 반복 = 1, 손실 = 1107.1996742908998 반복 = 1, 손실 = 140.315 80932842422 반복 = 1, 손실 = 23.795780526084116 반복 = 2, 손실 = 9.753848205147605 반복 = 3, 손실 = 8.061641745006835 반복 = 4, 손실 = 7.8577116490914864 반복 = 5, 손실 = 7.8331 350515579015 반복 = 6, 손실 = 7.830172502503967 반복 = 7, 손실 = 7.829814681591015 반복 = 8 , 손실 = 7.829770758846183 반복 = 9, 손실 = 7.829764664327399 반복 = 10, 손실 = 7.829763128602258 반복 = 11, 손실 = 7.829762142342088 반복 = 12, 손실 = 7.8297 61222379141 반복 = 13, 손실 = 7.829760310486438 반복 = 14, 손실 = 7.829759399646989 반복 = 15, 손실 = 7.829758489015161 반복 = 16, 손실 = 7.829757578489033 반복 = 17, 손실 = 7.829756668056319 반복 = 18, 손실 = 7.829755757715535 반복 = 19, 손실 = 7.82975 4847466484 반복 = 20, 손실 = 7.829753937309139 선형 회귀선 선형 회귀선은 관계에 대한 귀중한 통찰력을 제공합니다. 두 변수 사이. 이는 독립 변수(X)의 변동에 따라 종속 변수(Y)가 어떻게 변화하는지에 대한 전반적인 추세를 포착하는 가장 적합한 선을 나타냅니다. 양의 선형 회귀선: 양의 선형 회귀선은 독립 변수(X)와 종속 변수(Y) 간의 직접적인 관계를 나타냅니다. 즉, X 값이 증가하면 Y 값도 증가합니다. 양의 선형 회귀선의 기울기는 양수입니다. 즉, 선이 왼쪽에서 오른쪽으로 위쪽으로 기울어져 있음을 의미합니다. 음의 선형 회귀선: 음의 선형 회귀선은 독립변수(X)와 종속변수(Y) 사이의 역관계를 나타냅니다. 즉, X 값이 증가하면 Y 값이 감소합니다. 음의 선형 회귀선의 기울기는 음수입니다. 이는 선이 왼쪽에서 오른쪽으로 아래쪽으로 기울어짐을 의미합니다. 선형 모델을 위한 정규화 기술 Lasso Regression(L1 정규화) Lasso Regression은 선형 회귀 모델을 정규화하는 데 사용되는 기술로, 페널티를 추가합니다. 과적합을 방지하기 위해 선형 회귀 목적 함수에 항을 사용합니다. 올가미 회귀를 적용한 후의 목적 함수는 다음과 같습니다. 첫 번째 항은 최소 제곱 손실로, 예측 값과 실제 값 간의 제곱 차이를 나타냅니다. 두 번째 항은 L1 정규화 항으로, 회귀 계수 θj의 절대값 합에 페널티를 줍니다. 능형 회귀(L2 정규화) 능형 회귀는 표준 선형 목표에 정규화 항을 추가하는 선형 회귀 기술입니다. 다시 말하지만, 목표는 선형 회귀 방정식에서 큰 계수에 불이익을 주어 과적합을 방지하는 것입니다. 예측 변수의 상관 관계가 높은 데이터 세트에 다중 공선성이 있는 경우 유용합니다. 능선 회귀를 적용한 후의 목적 함수는 다음과 같습니다. 첫 번째 항은 최소 제곱 손실로, 예측 값과 실제 값 간의 제곱 차이를 나타냅니다. 두 번째 항은 L1 정규화 항이며, 회귀 계수 θj 값의 제곱합에 페널티를 줍니다. Elastic Net Regression Elastic Net Regression은 선형 회귀 목표에 L1 및 L2 정규화의 강력한 기능을 결합한 하이브리드 정규화 기술입니다. 첫 번째 항은 최소 제곱 손실입니다. 두 번째 항은 L1 정규화이고 세 번째는 능선 회귀입니다.???? 전반적인 정규화 강도입니다. α는 L1 정규화와 L2 정규화 간의 혼합을 제어합니다. 선형 회귀의 응용선형 회귀는 금융, 경제, 심리학 등 다양한 분야에서 특정 변수의 동작을 이해하고 예측하는 데 사용됩니다. 예를 들어, 금융 분야에서는 선형 회귀를 사용하여 회사의 주가와 수익 간의 관계를 이해하거나 과거 성과를 기반으로 통화의 미래 가치를 예측할 수 있습니다. 선형 회귀의 장점 및 단점선형 회귀의 장점선형 회귀는 상대적으로 간단한 알고리즘이므로 이해하고 구현하기 쉽습니다. 선형 회귀 모델의 계수는 독립 변수의 한 단위 변화에 대한 종속 변수의 변화로 해석되어 변수 간의 관계에 대한 통찰력을 제공할 수 있습니다. 선형 회귀는 계산적으로 효율적이며 대규모 데이터 세트를 효과적으로 처리할 수 있습니다. 대규모 데이터 세트에 대해 신속하게 훈련할 수 있으므로 실시간 애플리케이션에 적합합니다. 선형 회귀는 다른 기계 학습 알고리즘에 비해 이상치에 대해 상대적으로 강력합니다. 이상값은 전체 모델 성능에 미치는 영향이 더 작을 수 있습니다. 선형 회귀는 더 복잡한 기계 학습 알고리즘과 비교하기 위한 좋은 기준 모델 역할을 하는 경우가 많습니다. 선형 회귀는 풍부한 역사를 지닌 잘 확립된 알고리즘이며 다양한 기계 학습에서 널리 사용할 수 있습니다. 라이브러리 및 소프트웨어 패키지. 선형 회귀의 단점선형 회귀는 종속 변수와 독립 변수 간의 선형 관계를 가정합니다. 관계가 선형이 아닌 경우 모델이 제대로 수행되지 않을 수 있습니다. 선형 회귀는 독립 변수 간에 높은 상관 관계가 있을 때 발생하는 다중 공선성에 민감합니다. 다중 공선성은 계수의 분산을 부풀려 불안정한 모델 예측으로 이어질 수 있습니다. 선형 회귀에서는 특성이 이미 모델에 적합한 형태라고 가정합니다. 특성을 모델에서 효과적으로 사용할 수 있는 형식으로 변환하려면 특성 엔지니어링이 필요할 수 있습니다. 선형 회귀는 과적합과 과소적합 모두에 취약합니다. 과적합은 모델이 훈련 데이터를 너무 잘 학습하여 보이지 않는 데이터로 일반화하지 못할 때 발생합니다. 과소적합은 모델이 너무 단순하여 데이터의 기본 관계를 포착할 수 없을 때 발생합니다. 선형 회귀는 변수 간의 복잡한 관계에 대해 제한된 설명력을 제공합니다. 더 깊은 통찰력을 얻으려면 더 발전된 기계 학습 기술이 필요할 수 있습니다. 결론선형 회귀는 단순성, 해석 가능성 및 효율성으로 인해 수년 동안 널리 사용되어 온 기본적인 기계 학습 알고리즘입니다. 이는 변수 간의 관계를 이해하고 다양한 응용 분야에서 예측을 수행하는 데 유용한 도구입니다. 그러나 선형성 가정 및 다중 공선성에 대한 민감도와 같은 한계를 인식하는 것이 중요합니다. 이러한 제한 사항을 신중하게 고려하면 선형 회귀는 데이터 분석 및 예측을 위한 강력한 도구가 될 수 있습니다. 선형 회귀 – 자주 묻는 질문(FAQ)선형 회귀는 단순함에서 무엇을 의미합니까?선형 회귀는 하나 이상의 독립 변수를 기반으로 연속 대상 변수를 예측하는 지도 기계 학습 알고리즘입니다. 종속변수와 독립변수 사이의 선형 관계를 가정하고 선형 방정식을 사용하여 이 관계를 모델링합니다. 선형 회귀를 사용하는 이유는 무엇입니까? 선형 회귀는 일반적으로 다음 용도로 사용됩니다. 입력 특성을 기반으로 수치 값 예측과거 데이터를 기반으로 미래 추세 예측변수 간의 상관 관계 식별특정 결과에 대한 다양한 요인의 영향 이해선형 회귀를 사용하는 방법?선을 피팅하여 선형 회귀를 사용하여 변수 간의 관계 예측 , 계수를 이해하고 정보에 입각한 의사 결정을 위해 입력 값을 기반으로 예측합니다. 선형 회귀라고 불리는 이유는 무엇입니까? 선형 회귀는 변수 간의 관계를 모델링하기 위해 선형 방정식을 사용하여 데이터 포인트에 맞는 직선을 나타내는 이름입니다. 선형 회귀 예란 무엇입니까? 평방피트를 기준으로 주택 가격을 예측하고, 학습 시간을 기준으로 시험 점수를 추정하고, 광고 지출을 사용하여 매출을 예측하는 것이 선형 회귀 응용 프로그램의 예입니다.>