로지스틱 회귀분석(Logistic Regression) 이란 데이터가 어떤 범주에 속할 확률을 0에서 1 사이의 값으로 예측하고 그 확률에 따라 가능성이 더 높은 범주에 속하는 것으로 분류해 주는 지도 학습 알고리즘입니다.
쉽게 말하면, 선형회귀분석과 비슷한데 Y값이 확률로 되어 있기 때문에 하한, 상한이 [0, 1] 사이로 정해져 있습니다.
그리고 특정 threshold 값을 기준으로 삼아서 예측된 확률 값이 threshold 이상인 것과 미만인 것으로 분류를 하는 식입니다.
즉 1개 이상의 독립변수가 있을 때 이를 이용하여 데이터가 2개의 범주 중 하나에 속하도록 결정하는 이진 분류(binary classification) 문제를 풀 때 로지스틱 회귀분석을 많이 사용합니다.
로지스틱 회귀식은 다음과 같이 나타낼 수 있어요. 만일 종속변수가 0일 확률을 라고 한다면, 이를 구하는 식은 다음과 같습니다.
위 값에 log를 취한 값을 라고 부릅니다. 그런데 이 의 형식이 맨 처음 나온 좌변의 식과 같지 않나요? 결국에는 이 라는 값을 선형회귀분석의 종속변수처럼 구하면 됩니다.
위와 같은 식에 주어진 데이터를 이용하면, 주어진 데이터를 잘 설명하는 회귀계수(\beta) 값을 구할 수 있어요. 이렇게 로지스틱 회귀모델이 구성되는데, 이 회귀모델은 수식적으로 볼 때 의 선형 회귀모델이라고 할 수도 있겠습니다.
그런데 실제로 우리가 원하는 값은 값일까요?
우리는 종속변수가 0일 확률, 1일 확률 자체를 원하는 것이지 자체의 값이 필요하지는 않답니다. 그래서 로부터 특정 범주에 속할 확률을 얻기 위해 의 식을 $P(Y=0|x)$에 대해서 다시 정리하게 되면,
와 같은 식을 얻게 됩니다. 라고 한다면, 식은 보다 간결하게 표현됩니다.

결국 Log-odds 값을 구한 다음, 이를 sigmoid function에 넣어서 0에서 1 사이의 값으로 변환해 주는 것입니다.
이 함수는 확률모델을 선형 회귀모델로 표현한 것이 아니라, 위 그래프에서 인 지점을 중심으로 하여 두 범주 간 경계가 불명확해지는 의 구간을 최소화해 주기 때문에 분류모델의 분류 성능을 매우 향상시켜 줍니다.
정리하자면, 로지스틱 회귀에서는 데이터가 특정 범주에 속할 확률을 예측하기 위해 아래와 같은 단계를 거칩니다.
- 실제 데이터를 대입하여 Odds 및 회귀계수를 구한다.
- Log-odds를 계산한 후, 이를 sigmoid function의 입력으로 넣어서 특정 범주에 속할 확률 값을 계산한다.
- 설정한 threshold에 맞추어 설정값 이상이면 1, 이하면 0으로 이진 분류를 수행한다.
분류 문제

분류 문제는 정답이 0 또는 1 두개의 문제로 볼 수 있다.
선형회귀를 사용해서 분류문제를 해결하려고 하면 대부분의 상황에서 정상적으로 동작하지 않는다.
그래서 Logistic Regression을 사용하는데 분류문제인데 Regression이 붙는 이유는 역사적(?)으로 그렇게 불렸기 때문이라고 한다.

우선 h(x)는 그대로 선형회귀에서 사용했던 모델을 그대로 사용한다. (1차결합 식)
다만 g(z)라는 형태로 h(x)를 새롭게 사용하게되는데 g(z)는 sigmoid function이라고도 한다.
Logisitic Function의 모양은 위의 그림과 같다. 결과값이 0일때 0.5가 되고 작으면 0으로 수렴하고 크면 1로 수렴한다.
쉽게 말하면 선형회귀의 값을 0~1사이의 값으로 만들고 싶고 중간이 되는 지점은 h(x)가 0일때를 말한다.
분류를 정하는 방법은 logisitic regression의 결과값이 0.5보다 크면 양성 작으면 음성으로 분류를 하면된다.
cost function
logistic regressor의 cost function 아래와 같이 정의 된다.

선형 회귀의 비용함수를 그대로 적용을 하면 non-convex한 비용함수가 된다.
극소값을 여러개 같게 되므로 비용함수가 0이 되는 지점이 최저점이라고 볼 수 없기 때문이다.
그래서 logistic regressor의 비용함수는 log함수를 사용한다. 0~1사이의 값만을 가지므로 비용함수를 그려보면 아래와 같다.

convex한 함수이며 미분시 0이 되는 지점이 최소값임이 자명하기 때문이다.
두가지 케이스로 비용함수를 설정하는 것보다는 한식에 비용함수를 설정하는것이 더욱 좋기때문에 표현하면 다음과 같다.

y가 0이라면 앞의 항이 날아가고 y가 1이라면 뒤의 항이 날아가기 때문의 같은 효과를 볼 수 있다.
비용함수를 설정했으면 이제 경사하강법을 이용해서 파라미터를 업데이트 하는 식은 다음과 같다.

선형회귀의 비용함수의 미분과 똑같은 형태를 띄는 것을 확인할 수 있었다.
선형회귀와 logisitic regressor 의 차이점은 가설함수의 차이가 있고 y값이 0,1밖에 나오지 않는 다는 점에 있다.
Multiclass classification

분류를 두개가 아닌 여러개의 클래스를 분류해야한다면 어떻게 해야할까?
이진분류는 logisitic regressor에 의해 분류를 할 수 있다. 여러개의 클래스를 분류하기 위해서는 logisitic regressor을 여러개 사용하면 된다.
오른쪽 예시처럼 각각의 클래스를 분류하는 모델을 모두 fitting하면 된다.
아래의 식에는 y=1이 아닌 i를 변수로 두어 0,1,2,3일때의 확률을 구하고 h(x)에도 i가 첨자로 붙어서 각각의 분류모델을 사용하면된다. 3개의 분류하는 선이 나오고 그중 0.5보다 큰 값을 나타내는 모델이 그 클래스로 분류 할 수 있을 것이다.
출처: https://hwanny-yy.tistory.com/16
선형회귀 개요

입력데이터 x, 결과 값 y가 주어졌을때 분포되어있는 값들을 직선으로 회귀 시키는 것이다.
h(x) 가설 함수라고 한다.

일차식 y = ax + b의 형태와 똑같다.
주어진 데이터 x,y를 통해 최적의 theta1, theta2를 찾는것을 의미한다.
최적의 theta1, theta2는 어떻게 찾아야할까?
손실함수를 통해 찾을 수 있다.
비용함수(Cost function)
최적의 파라미터를 찾기 위해 비용함수를 사용한다.

오른 쪽 그림처럼 데이터가 있을때 어떤 기울기와 절편을 가진 직선이 최적의 선형회귀 함수라고 할 수 있을까?
당연하게도 실제 값과의 차이가 가장 적은 함수가 최적이라고 볼 수 있다.
그렇다면 그 최적을 찾기위해서는 우선 예측한 회귀 함수와 실제 데이터의 차이를 계산하는 비용함수가 필요하다.

비용함수는 위의 식으로 나타낼 수 있는데 식을 들여다 보면 매우 간단하다.
x,y의 대응되는 값을 집어넣어서 차이를 구한다.
h(x)에 x1을 집어넣고 나온 값과 실제 데이터의 값 y의 차를 구해서 제곱을 한뒤 모든 값의 차를 더한뒤에 m개수로 나눈다.
비용함수의 파라미터 값들을 넣은것을 그래프로 나타내면 다음과 같다.

theta1,theta2의 따른 비용함수의 그래프이다.
이 그래프는 볼록한 convex형태를 띄고 있으며 가장 최소점이 극소점을 나타낸다.
경사 하강법
비용 함수가 최소값을 가지고 있으며 그 값이 선형회귀에 있어서 최적의 파라미터가 된다는 것을 확인 했다.
그렇다면 우리는 그 최소값을 어떻게 찾을 수 있을까? 순서는 다음과 같다.

비용함수가 있고 원하는 목표는 비용함수가 최소가 되는 파라미터를 찾는것이다.
그러기 위해서는 우선 파라미터를 임의의 값으로 초기화를 한다. (예를들면 0,0같은)
비용함수가 작아지는 방향으로 파라미터들을 바꿔주면서 마지막에는 최소가 되는 값이 되면 된다.
아무렇게나 값을 바꾸면 최소값은 영원히 찾지 못할 것이다. 최소값을 찾는것에도 방향이 필요하다.
그러기 위해 미분을 사용한다.

비용 함수 J에 대해 미분값에 alpha를 곱한 값을 원래의 파라미터 theta_j에 대해 빼서 새로운 theta_j를 구한다.
각각의 파라미터에 미분 식을 쓰면 다음과 같다.

이제 파라미터를 찾기 위해 변수의 우리가 알고 있는 값을 대입만 해주면서 업데이트만 해주면된다.
하지만 이때 아직 모르는 값 하나가 남아있다. alpha이며 alpha는 learning rate(학습률)이다. 얼마만큼 값을 업데이트 하는지를 결정한다.
학습률이 너무 큰경우, 작은 경우 모두 문제가 있다.

학습률이 너무 작게 설정되면 최소값으로 가는데에 시간이 너무 오래걸린다.
안그래도 최소값으로 갈수록 업데이트 되는 범위가 점점 작아지는데 시작부터 작게 출발하면 오래걸릴 것이다.
너무 크게되면 최소값에 도달하지 못하고 좌우를 반복해서 움직일 것이다.
학습률을 어떻게 설정하는지는 중요한 문제이다.
요약

선형회귀 함수가 있고 선형회귀 함수를 구성하는 파라미터는 비용함수를 통해 구한다.
비용함수가 최소값이 되는 theta1, theta2를 구하기 위해 경사하강법을 사용하고 경사하강법은 미분값을 이용하고 학습률을 곱해서 값을 갱신해서 업데이트 해간다.
'프로그램 개발(분석, 설계, 코딩, 배포) > 100. 기타' 카테고리의 다른 글
| 테스트 단계 (0) | 2026.03.31 |
|---|---|
| AI (0) | 2026.03.30 |
| [오픈소스] Craft CMS로 콘텐츠 중심 웹사이트 만들기 (0) | 2026.03.25 |
| 데이터 허브 (0) | 2026.03.23 |
| OpenSearch 설치 후 패스워드 (0) | 2026.03.23 |