로지스틱 회귀(Logistic Regression)란? AI에서 선형 점수를 확률로 바꿔 분류하는 방법
TL;DR
로지스틱 회귀는 입력 특징의 선형 점수를 확률로 바꾸고, 그 확률을 이용해 클래스를 예측하는 지도학습 모델입니다. 이진 분류에서는 시그모이드 함수를 쓰고, 여러 클래스에는 다항 로지스틱 회귀로 확장합니다. 이름에 회귀가 들어가도 머신러닝에서는 대표적인 분류 방법으로 다룹니다. 확률 출력, 분류 임계값, 규제 강도는 각각 역할이 다르며 높은 확률이 실제 정답을 보장하지는 않습니다.
핵심 3줄 요약
- 핵심 1
선형 점수를 확률로 바꿉니다. 특징별 가중치와 절편으로 점수를 계산하고, 이진 분류에서는 시그모이드로 양성 클래스 확률을 만듭니다. - 핵심 2
학습과 판정 기준을 나눠 봅니다. 모델은 정답 라벨로 계수를 배우며, 실제 분류는 예측 확률과 임계값을 비교해 결정합니다. - 핵심 3
규제와 검증이 함께 필요합니다. 특징 척도, 클래스 불균형, 규제 강도에 따라 계수와 확률이 달라지므로 새 데이터에서 따로 평가합니다.
이 글에서 다룰 내용
- 로지스틱 회귀의 한 문장 정의
- 고객 문의 분류로 이해하는 쉬운 예시
- 선형 점수·시그모이드·로그 손실의 역할
- C·규제·최적화 알고리즘의 구분
- 일반 회귀·나이브 베이즈·SVM과의 차이
- 실전 사용처와 데이터·확률 검증 체크리스트
- AI 초보자가 자주 묻는 질문
로지스틱 회귀를 한 문장으로 정의하면 무엇인가요?
로지스틱 회귀는 정답 라벨이 있는 데이터에서 선형 계수를 학습해, 입력이 특정 클래스에 속할 조건부 확률을 추정하는 모델입니다.
영문 이름은 Logistic Regression이며 로짓 회귀라고도 부릅니다. scikit-learn 문서는 최대 엔트로피 분류라는 이름도 소개합니다. 별개의 새 알고리즘을 뜻하는 것이 아니라 같은 모델을 다른 관점에서 부르는 표현입니다.
이진 분류에서는 어떤 사건이 일어날지 여부를 두 클래스로 나눕니다. 문서가 스팸인지, 문의에 추가 확인이 필요한지처럼 정답을 정해 놓고 배웁니다. 라벨 없이 비슷한 자료를 묶는 군집화와는 출발점부터 다릅니다.
한 줄 정리: 로지스틱 회귀는 숫자 점수를 만드는 과정과 확률을 해석하는 과정을 연결하는 분류 모델입니다.
쉬운 예시로 이해해 볼까요?
고객 문의를 추가 확인 필요와 일반 처리로 나누는 상황을 생각해 보겠습니다. 과거 문의에서 반복 연락 횟수, 지연 일수, 특정 표현의 등장 여부를 특징으로 만들고, 담당자가 확인한 실제 분류를 정답 라벨로 준비합니다.
모델은 각 특징에 계수를 곱해 더하고 절편을 붙입니다. 같은 지연 일수라도 다른 특징이 함께 바뀌면 총점은 달라집니다. 사람이 항목별 배점을 임의로 정하는 대신, 학습 데이터의 정답을 설명하도록 계수를 조정합니다.
새 문의의 추가 확인 필요 확률을 0.8로 추정했다고 가정하겠습니다. 판정 기준이 0.5라면 확인 대상으로 분류하지만 0.9라면 그렇지 않습니다. 이 수치는 설명용 가정이며 실제 서비스에서 측정한 성능이나 권장 임계값은 아닙니다.
임계값을 바꾸더라도 이미 계산한 확률 자체가 바뀌지는 않습니다. 놓친 문의의 비용이 큰지, 불필요한 검토가 늘어나는 부담이 큰지에 따라 판정 기준을 별도로 비교합니다. 학습 설정과 업무 결정 규칙을 구분하면 결과를 해석하기 쉽습니다.
왜 AI에서 로지스틱 회귀가 중요한가요?
복잡한 모델과 비교할 기준을 만듭니다
로지스틱 회귀는 선형 분류 모델로 구조가 비교적 단순합니다. 숫자 특징이나 희소한 문서 특징을 입력받아 분류하므로, 더 복잡한 신경망이나 트리 모델이 실제로 나은지 확인할 비교 대상으로 쓸 수 있습니다. 단순하다는 이유로 모든 데이터에서 빠르거나 정확한 것은 아닙니다.
확률과 최종 라벨을 따로 다룹니다
같은 클래스로 분류된 두 문의도 예측 확률은 다를 수 있습니다. 확률을 보관하면 검토 우선순위를 정하거나 임계값을 바꿔 결과를 비교하기 편합니다. 다만 확률을 실제 발생 비율로 사용하려면 별도의 데이터에서 캘리브레이션을 확인합니다.
입력 특징과 점수의 관계를 살펴봅니다
학습한 계수는 다른 입력을 고정했을 때 각 특징이 모델 점수를 어느 방향으로 바꾸는지 알려 줍니다. 설명의 단서가 된다는 장점이 있지만, 단위가 다른 열의 계수 크기를 곧바로 중요도 순위로 읽거나 원인 효과로 해석해서는 안 됩니다.
로지스틱 회귀는 어떤 순서로 작동하나요?
1. 특징과 정답 클래스를 준비합니다
한 행을 하나의 사례로, 각 열을 입력 특징으로 정리합니다. 문자열 범주는 적절히 인코딩하고 결측값 처리 규칙도 정합니다. 전처리에 필요한 통계와 코드표는 학습 구간에서만 만들고, 검증·테스트에는 같은 규칙을 적용해 정보가 새어 들어가는 일을 막습니다.
2. 선형 점수를 확률로 변환합니다
이진 모델은 특징과 계수의 곱을 더한 뒤 절편을 붙여 점수를 만듭니다. 시그모이드는 이 점수를 0과 1 사이의 확률로 바꿉니다. 점수 자체는 확률이 아니며, 유한한 점수에 대한 시그모이드 값은 수학적으로 두 끝값 사이에 놓입니다.
시그모이드가 곡선이라고 해서 모델이 모든 복잡한 경계를 배우는 것은 아닙니다. 원래 특징의 선형 조합만 쓴다면 이진 분류 경계도 그 특징 공간에서 선형입니다. 상호작용이나 비선형 변환을 입력에 추가하면 원래 공간에서 표현하는 경계는 달라질 수 있습니다.
3. 로그 손실과 규제를 줄이며 계수를 배웁니다
학습에서는 정답 클래스에 낮은 확률을 줄수록 손실이 커지는 로그 손실을 사용합니다. 규제를 적용하면 계수 크기에 대한 벌점도 함께 고려합니다. 최적화 알고리즘은 이 목적함수를 줄이도록 계수를 반복 조정하며, scikit-learn 구현은 기본적으로 규제를 적용합니다.
4. 새 사례의 확률과 라벨을 반환합니다
학습 뒤
predict_proba
는 클래스별 확률을,
predict
는 최종 클래스를 돌려줍니다. 확률 배열의 열이 어느 라벨에 해당하는지는
classes_
에서 확인합니다. 두 번째 열을 무조건 업무에서 말하는 위험 확률로 간주하면 라벨 뜻을 거꾸로 읽을 수 있습니다.
클래스가 여러 개라면 다항 로지스틱 회귀가 각 클래스 점수를 소프트맥스로 변환합니다. 클래스별 이진 모델을 따로 만드는 일대나머지 방식과는 학습 목적이 다릅니다. 사용할 구현과 최적화 알고리즘이 어느 방식을 지원하는지 확인합니다.
규제 강도와 주요 설정은 무엇을 뜻하나요?
C는 규제 강도의 역수입니다
scikit-learn의
C
는 값이 작을수록 규제를 강하게 적용하는 설정입니다. 크게 올린다고 정확도가 자동으로 좋아지지 않습니다. 학습 자료에 지나치게 맞출 수 있으므로 같은 검증 분할에서 여러 후보를 비교합니다. 최종 테스트를 설정 선택에 반복 사용하지 않습니다.
L1과 L2는 계수에 다른 벌점을 줍니다
L1 규제는 일부 계수를 정확히 0으로 만들어 희소한 해를 얻는 데 쓰입니다. L2 규제는 계수의 제곱 크기에 벌점을 줍니다. Elastic-Net은 두 종류를 섞습니다. 공식 희소성 예시는 규제 강도와 종류에 따라 남는 계수 수가 달라지는 모습을 보여 줍니다.
조회한 scikit-learn API는
l1_ratio=0
을 L2,
l1_ratio=1
을 L1로 설명하며, 그 사이 값은 Elastic-Net입니다. 예전
penalty
인자는 폐기 예정으로 안내하므로 과거 예제를 그대로 복사하기보다 설치한 버전의 API와 설정 조합을 맞춥니다.
solver는 계수를 찾는 계산 방법입니다
solver="lbfgs"
와
solver="saga"
는 서로 다른 최적화 알고리즘을 선택합니다. 조회한 문서에서 Elastic-Net은 saga가 지원하고, liblinear는 기본적으로 이진 분류를 처리합니다. 규제 종류와 클래스 수에 맞지 않는 조합을 쓰면 실행 오류가 나거나 의도와 다른 구성이 됩니다.
max_iter
는 반복 횟수의 상한이지 성능 목표가 아닙니다. 수렴 경고가 나면 상한만 올리지 말고 특징 척도, 규제 강도, 최적화 방법을 함께 확인합니다. 특히 sag와 saga는 특징의 척도가 비슷할 때 빠른 수렴을 기대할 수 있다고 공식 문서가 설명합니다.
로지스틱 회귀와 헷갈리는 용어는 무엇이 다른가요?
일반 회귀와의 차이
일반적인 회귀 작업은 배송 시간이나 매출 같은 수치 목표를 예측합니다. 로지스틱 회귀는 범주형 정답의 확률을 모델링하며, 머신러닝 구현에서는 분류기로 사용합니다. 이름의 회귀만 보고 연속값 정답을 그대로 넣는 실수를 피해야 합니다. 관련 개념은 회귀의 기본 개념 글에서 함께 확인할 수 있습니다.
나이브 베이즈와의 차이
나이브 베이즈는 클래스가 주어졌을 때 특징들이 조건부 독립이라는 가정을 사용해 분류합니다. 로지스틱 회귀는 그런 독립 가정 대신 입력에 따른 클래스 확률을 직접 모델링합니다. 서로 관련된 특징이 많아도 사용할 수 있지만, 계수의 안정성과 규제 필요성은 따로 살펴야 합니다.
서포트 벡터 머신과의 차이
둘 다 선형 분류기로 사용할 수 있지만 학습 기준이 다릅니다. SVM은 마진과 위반 비용을 고려하고, 로지스틱 회귀는 클래스 확률의 로그 손실을 사용합니다. SVM의 결정 점수와 로지스틱 회귀의 확률은 같은 단위가 아니므로 숫자의 크기만 비교하지 않습니다.
로짓과 확률 캘리브레이션의 차이
로짓은 확률과 연결되는 점수 표현이며, 로지스틱 회귀는 그 관계를 이용하는 모델입니다. 캘리브레이션은 예측 확률과 실제 발생 비율의 일치를 점검하거나 보정하는 절차입니다. 로지스틱 회귀가 확률을 출력한다는 사실만으로 모든 데이터에서 보정이 잘됐다고 결론 낼 수는 없습니다.
실전에서는 어디에 쓰이나요?
문서와 고객 문의를 분류합니다
단어 빈도나 TF-IDF처럼 텍스트를 숫자로 바꾼 특징을 사용해 스팸, 주제, 문의 유형을 분류하는 후보 모델로 씁니다. 원문을 그대로 이해하는 대화형 AI와는 다릅니다. 학습 때 만든 어휘표와 변환기를 예측 때도 함께 사용해야 같은 입력 의미가 유지됩니다.
표 형태 데이터의 발생 여부를 예측합니다
서비스 기록의 특정 사건 발생 여부나 품질 검사 통과 여부처럼 범주형 결과를 다룰 때 비교 모델로 시험합니다. 숫자 특징과 범주 특징을 함께 쓸 수 있지만, 기록 시점 이후에만 알 수 있는 정보를 입력에 넣으면 실제 운영보다 평가가 좋아 보입니다.
확률이 필요한 검토 순서를 만듭니다
사람이 처리할 수 있는 검토량이 제한된 상황에서는 예측 확률로 후보를 정렬하는 방식을 검토할 수 있습니다. 순위가 좋은 모델과 확률 수치가 잘 보정된 모델은 평가 기준이 다릅니다. 검토 대상 선정과 확률 안내에 같은 결과를 쓰더라도 두 요구를 각각 점검합니다.
로지스틱 회귀를 적용할 때 어떤 순서로 확인하나요?
1. 정답 의미와 데이터 분리를 고정합니다
양성 클래스가 무엇인지, 언제 확정된 라벨인지부터 적습니다. 같은 사람의 반복 기록이나 시간상 가까운 사례가 학습·테스트에 섞이지 않도록 업무에 맞게 나눕니다. 드문 클래스가 평가 구간에 충분히 들어 있는지도 확인합니다.
2. 전처리와 설정을 함께 비교합니다
수치 열의 스케일링, 범주의 인코딩, 결측값 대체를 모델과 하나의 파이프라인으로 묶습니다. 학습 때 저장한 열 이름과 순서를 예측 입력에서도 유지합니다. 규제 후보와 solver의 호환성을 확인하고, 수렴 경고와 실제 반복 횟수도 남깁니다.
3. 분류·확률·임계값을 나눠 검증합니다
정확도만 보지 말고 정밀도·재현율과 혼동 행렬로 어떤 오류가 늘었는지 확인합니다. 확률을 업무에 사용한다면 캘리브레이션 곡선과 로그 손실도 살핍니다. 임계값은 오류 비용과 검토 용량에 맞춰 검증 자료에서 정하고 최종 테스트에서 한 번 더 평가합니다.
실전 팁: 전처리, 모델, 클래스 순서, 임계값을 한 묶음으로 기록하세요. 모델 파일만 같아도 나머지 조건이 다르면 실제 분류는 달라집니다.
사용할 때 무엇을 주의해야 하나요?
첫째, 확률을 정답 보증으로 읽지 않습니다. 공식 캘리브레이션 문서도 모델 가정과 데이터가 맞고 규제가 적절한 조건에서 확률이 잘 맞는 예를 설명합니다. 운영 데이터가 달라지거나 입력 표현이 부족하면 높은 확률로 틀릴 수 있습니다.
둘째, 클래스 가중치와 임계값을 구분합니다.
class_weight="balanced"
는 클래스 빈도에 반비례하는 가중치로 학습 목적을 바꿉니다. 학습 후 임계값만 옮기는 것과 다르며, 적용 뒤 분류 성능과 확률 해석을 다시 점검합니다.
셋째, 계수를 인과관계로 해석하지 않습니다. 특정 특징의 계수가 양수라는 것은 현재 모델 안에서 점수를 높이는 방향이라는 뜻입니다. 다른 조건이나 관측 편향을 통제한 원인 효과가 자동으로 확인된 것은 아닙니다.
넷째, 단순한 경계의 한계를 봅니다. 복잡한 상호작용을 충분히 표현하지 못하면 학습과 검증 성능이 모두 낮을 수 있습니다. 규제만 약하게 만들기보다 특징 표현과 다른 모델을 같은 조건에서 비교합니다.
주의: 확률 출력이 있다는 이유만으로 중요한 결정을 자동 승인하지 않습니다. 잘못된 분류의 영향과 사람이 검토할 예외 조건을 먼저 정합니다.
자주 묻는 질문
Q1. 이름이 회귀인데 왜 분류에 쓰나요?
클래스에 속할 확률을 수치로 모델링한 뒤 라벨을 고르기 때문입니다. scikit-learn도 범주형 정답을 받는 분류기로 구현합니다. 매출이나 시간을 예측하는 일반 회귀 모델과 입력할 정답의 의미가 다릅니다.
Q2. 두 클래스만 다룰 수 있나요?
아닙니다. 다항 로지스틱 회귀는 여러 클래스의 확률을 함께 계산합니다. 일대나머지 방식으로 여러 이진 분류기를 묶는 방법도 있지만, 같은 학습 방식은 아니므로 구현과 solver의 지원 조건을 확인합니다.
Q3. 확률이 높으면 그대로 믿어도 되나요?
아닙니다. 모델이 출력한 추정치입니다. 비슷한 확률을 받은 사례들의 실제 정답 비율을 별도 평가 자료에서 살펴야 합니다. 데이터가 달라진 뒤에도 같은 수준으로 맞는지 운영 중 점검이 필요합니다.
Q4. C를 크게 하면 더 정확해지나요?
C가 커지면 규제가 약해집니다. 학습 자료에 더 잘 맞을 수 있지만 새 자료의 성능까지 좋아진다는 뜻은 아닙니다. 전처리와 분할 조건을 고정한 검증 결과로 후보를 선택합니다.
Q5. 표준화는 항상 해야 하나요?
모든 입력에 무조건 적용하지는 않습니다. 수치 특징의 척도와 규제·최적화 방법을 고려해 선택합니다. 희소한 문서 특징은 평균을 빼는 과정이 희소성을 깨뜨릴 수 있으므로 데이터 형식에 맞는 전처리를 사용합니다.
출처
마무리
로지스틱 회귀는 선형 점수를 클래스 확률로 바꾸는 지도학습 모델입니다. 이진 분류의 시그모이드, 다중 클래스의 소프트맥스, 학습에 쓰는 로그 손실을 구분하면 이름 때문에 생기는 혼동을 줄일 수 있습니다.
처음에는 확률을 만드는 모델, 계수를 제한하는 규제, 최종 라벨을 정하는 임계값을 나눠 기억하세요. 전처리와 클래스 순서를 고정하고 새 데이터에서 분류 성능과 확률을 따로 점검하는 것이 실제 사용의 출발점입니다.
