머신러닝을 처음 배우던 시절, 다양한 알고리즘들이 복잡하게 느껴졌지만, 그중에서도 선형회귀와 로지스틱 회귀는 이해의 출발점이 되어주었습니다. 특히 데이터를 시각화하고 직선 하나를 그어 예측을 하는 과정은 매우 직관적이었고, 로지스틱 회귀를 통해 분류 문제도 수치적으로 접근할 수 있다는 사실은 신선하게 다가왔습니다. 모델의 복잡함보다는, 그 근간이 되는 수학적 직선과 확률 개념을 얼마나 정확히 이해하느냐가 중요하다는 것을 점차 느끼게 되었습니다. 선형회귀 – 연속적인 수치를 예측하는 가장 단순한 모델 선형회귀(Linear Regression)는 독립 변수와 종속 변수 간의 선형 관계를 기반으로, 입력값에 따라 연속적인 수치 값을 예측하는 회귀 알고리즘입니다. 예를 들어 면적에 따른 집값 예측, 공부 시간에 따른 시험 점수 예측처럼, 결과가 숫자로 나타나는 문제에서 활용됩니다. 선형회귀의 수식은 다음과 같습니다. y = w1x1 + w2x2 + ... + wnxn + b 여기서 y는 예측값, x는 입력 변수, w는 가중치(회귀계수), b는 절편을 의미합니다. 이 모델은 데이터 포인트를 가장 잘 설명하는 직선을 찾는 것이 핵심이며, 손실 함수로는 보통 평균제곱오차(Mean Squared Error, MSE)를 사용합니다. 즉, 실제 값과 예측 값의 차이를 제곱해 평균을 구하고, 이 값을 최소화하는 방향으로 가중치를 조정합니다. 선형회귀의 장점은 해석이 매우 명확하다는 점입니다. 각 변수의 계수가 결과에 어떤 영향을 미치는지 직관적으로 이해할 수 있기 때문에, 통계 분석과 실무 보고서에서도 자주 사용됩니다. 하지만 변수 간 선형성이 없거나, 이상치에 민감한 경우에는 성능이 급격히 떨어질 수 있으므로 주의가 필요합니다. 로지스틱 회귀 – 분류 문제를 위한 회귀 알고리즘 로지스틱 회귀(Logistic Regression)는 선형회귀와 유사한 구조를 가지지만, 결과값이 연속적인 수치가 아닌 범주(클래스) 라는 점에서 차이가 있습니다. 대표적으로 이...
최근 자연어처리 기술을 활용한 텍스트 분석 프로젝트를 진행하면서, 문장 내 단어들이 서로 어떤 관계를 맺고 있는지를 파악하는 일이 얼마나 중요한지를 체감한 경험이 있습니다. 문장의 의미를 제대로 해석하려면 단순한 단어 나열이 아닌 구조적인 이해가 필요합니다. 이때 핵심이 되는 기술이 바로 '의존구문 분석'입니다. 본 글에서는 의존관계, 문장 구조 추출, 문맥 이해를 중심으로 의존구문 분석의 개념과 활용을 자세히 설명드리겠습니다. 의존구문 분석이란 무엇인가 의존구문 분석(Dependency Parsing)은 문장에서 단어들이 서로 어떤 관계를 가지는지를 파악하여, 문장의 구조적 의미를 해석하는 자연어처리 기술입니다. 기존의 문장 구조 분석 방식인 구성구문 분석(constituency parsing)이 문장을 문법적 구성을 중심으로 분해하는 방식이라면, 의존구문 분석은 단어 간 관계에 초점을 둡니다. 의존구문 분석에서는 보통 하나의 중심 단어(head)가 있고, 이 중심 단어에 다른 단어들이 의존(dependent)하는 관계로 문장 구조를 표현합니다. 예를 들어, "학생이 책을 읽는다"라는 문장에서 '읽는다'는 중심 동사이고, '학생이'는 주어, '책을'은 목적어로서 각각 중심 동사에 의존하는 구조입니다. 이러한 분석은 단어 간의 의존 방향, 의존 유형(주어, 목적어, 수식어 등), 거리 등의 정보를 포함하며, 이를 통해 문장의 전체적인 의미 흐름을 이해할 수 있습니다. 문장을 트리 구조로 표현하기도 하며, 이를 통해 기계가 문장의 구성 요소를 구조적으로 분석하고 해석할 수 있게 됩니다. 최근에는 딥러닝 기반의 BERT나 Transformer 모델이 의존구문 분석 정확도를 높이는 데 사용되고 있으며, 한국어처럼 어순이 유연한 언어의 문장 구조를 분석하는 데 큰 역할을 하고 있습니다. 의존관계 유형과 구조 추출 방식 의존구문 분석에서는 단어 사이의 관계를 '의존관계...
머신러닝 모델을 처음 만들어봤을 때, 정확도가 90% 이상 나오자 속으로 꽤 잘 만들었다고 생각했습니다. 하지만 막상 실제 데이터에 적용해보니 예측 결과가 엉뚱하게 나오는 경우가 많았습니다. 그때 처음으로 ‘정확도만 보고 판단하면 안 되겠구나’라는 생각이 들었습니다. 이후 정밀도, 재현율, F1 Score 같은 지표들을 접하면서 비로소 모델 성능을 입체적으로 해석하는 것이 얼마나 중요한지 깨닫게 되었습니다. 정확도(Accuracy) – 가장 기본적인 성능 지표 정확도는 전체 예측 중에서 정답으로 맞힌 비율을 나타내는 가장 기본적인 모델 평가 지표입니다. 수식으로는 다음과 같이 표현됩니다. 정확도 = (정답으로 맞힌 건수) / (전체 건수) 예를 들어 100개의 샘플 중에서 90개를 정확히 예측했다면 정확도는 90%입니다. 간단하고 직관적인 지표이기 때문에 많은 입문자들이 가장 먼저 사용하게 됩니다. 그러나 정확도에는 한 가지 큰 함정이 있습니다. 바로 데이터가 불균형한 경우, 높은 정확도에도 불구하고 모델이 쓸모없을 수 있다는 점입니다. 예를 들어 암 환자 데이터 중 95%가 정상이고 5%만 환자일 경우, 모든 샘플을 ‘정상’이라고 예측하면 정확도는 95%가 됩니다. 하지만 이 모델은 정작 암 환자를 전혀 찾아내지 못하는 무의미한 결과를 만들어냅니다. 이처럼 클래스 불균형 문제에서는 정확도 하나만으로 모델을 평가할 수 없습니다. 정밀도(Precision)와 재현율(Recall) – 오류의 방향을 분석하다 정밀도와 재현율은 이진 분류 문제에서 오류의 종류에 따라 성능을 평가하는 데 사용됩니다. 둘은 서로 다른 관점을 제공합니다. 정밀도(Precision) 는 모델이 ‘양성’이라고 예측한 것들 중에서 실제로 양성인 비율을 의미합니다. 즉, 모델이 얼마나 신중하게 양성으로 판단했는지를 나타냅니다. 정밀도 = TP / (TP + FP) (TP: 진짜 양성, FP: 거짓 양성) 예를 들어 스팸 필터에서 스팸으로 분류된 메일 중 실제로 스팸인...
댓글
댓글 쓰기