본문 바로가기
카테고리 없음

[5주차 회고] 머신러닝 기초부터 로지스틱 회귀까지

by proprocess-manager 2026. 10. 8.
반응형

SK네트웍스 AI캠프 5주차에는 머신러닝의 기본 개념부터 데이터 전처리, 선형회귀, 로지스틱 회귀까지 학습하였다.

특히 보스톤 집값 예측과 타이타닉 생존 여부 예측 실습을 통해 회귀 문제와 분류 문제의 차이를 직접 경험할 수 있었다.

이번 주에는 단순히 머신러닝 알고리즘의 이름을 외우는 것보다 데이터 → 전처리 → 학습 → 예측 → 평가라는 전체적인 흐름을 이해하는 데 집중하였다.


1. 보스톤 집값 예측 실습

보스톤 집값 데이터셋을 활용하여 선형회귀(Linear Regression) 모델을 학습하였다.

데이터는 총 506개의 행과 14개의 컬럼으로 구성되어 있었으며, 집값(MEDV)을 예측하기 위해 범죄율(CRIM), 평균 방 개수(RM), 지역 특성 등의 다양한 독립변수를 사용하였다.

실습 과정

  • 학습 데이터(X)와 정답 데이터(y) 분리
  • train_test_split()을 이용한 학습용/평가용 데이터 분리
  • StandardScaler를 이용한 표준화
  • LinearRegression 모델 생성 및 학습
  • RMSE를 이용한 성능 평가

표준화(Standardization)

특히 이번 실습에서 표준화 과정이 중요하다는 것을 이해할 수 있었다. 각 변수들의 단위와 범위가 서로 다르기 때문에 평균 0, 표준편차 1의 형태로 변환하는 과정을 거쳤다.

이를 통해 머신러닝 모델이 서로 다른 범위의 데이터를 보다 적절하게 학습할 수 있도록 전처리하는 과정을 경험하였다.

선형회귀를 통해 이해한 것

선형회귀의 목적은 집값 자체를 암기하는 것이 아니라 여러 변수와 집값 사이의 관계를 수학적인 모델로 학습하여 새로운 데이터에 대한 집값을 예측하는 것이다.

보스톤 집값 예측 결과
최종 평가 결과 RMSE는 약 5.46으로 측정되었다.


2. 타이타닉 생존 여부 예측 실습

타이타닉 데이터셋을 활용하여 로지스틱 회귀(Logistic Regression) 모델을 학습하였다.

이 실습을 통해 연속적인 값을 예측하는 회귀(Regression)와 특정 범주를 예측하는 분류(Classification)의 차이를 이해할 수 있었다.

2.1 데이터 병합

  • pd.concat() 함수를 활용하여 학습 데이터와 테스트 데이터 병합
  • SQL의 merge와 Pandas의 concat 차이점 이해

2.2 결측치 처리

타이타닉 데이터에는 여러 컬럼에 결측치가 존재했기 때문에 머신러닝 모델을 학습하기 전에 적절한 처리가 필요했다.

  • Cabin 컬럼 삭제
  • Age 컬럼은 median()과 fillna()를 이용하여 중앙값으로 대체
  • Embarked 컬럼은 최빈값으로 결측치 처리
  • Fare 컬럼은 dropna()를 이용하여 결측값 제거

2.3 특성 가공

  • Age를 구간화하여 Age_step 생성
  • Fare 컬럼의 이상치를 IQR 방식으로 탐지
  • clip() 함수를 이용하여 이상치 처리
  • PassengerId, Name, Ticket 등의 불필요한 컬럼 제거
  • Gender, Embarked 컬럼에 One-Hot Encoding 적용

이번 실습에서 느낀 점
머신러닝에서는 모델 자체도 중요하지만, 원본 데이터를 학습에 적합한 형태로 가공하는 데이터 전처리 과정이 매우 중요하다는 것을 체감하였다.


3. 로지스틱 회귀 이해

이번 주에 가장 인상 깊었던 개념은 로지스틱 회귀(Logistic Regression)였다.

이름에는 '회귀'가 들어가지만 실제 목적은 분류(Classification)이다.

선형회귀와 로지스틱 회귀의 차이

구분 예측 결과 예시
선형회귀 연속적인 숫자 집값 → 25.3
로지스틱 회귀 분류 생존 → 1 / 사망 → 0

시그모이드 함수

로지스틱 회귀는 선형결합 결과를 시그모이드 함수에 넣어 0과 1 사이의 확률값으로 변환한다.

z = wx + b

이렇게 계산된 값을 시그모이드 함수에 통과시키면 0~1 사이의 확률값을 얻을 수 있다.

  • S자 형태의 곡선
  • 출력값 범위 : 0 ~ 1
  • 확률값을 기준으로 클래스를 분류

예를 들어 타이타닉 데이터에서는 승객의 생존 가능성을 확률로 계산하고, 이를 기준으로 생존 여부를 분류할 수 있다.

머신러닝 모델이 학습한다는 것

이번 실습을 통해 모델이 데이터를 단순히 저장하는 것이 아니라 입력 변수와 결과 사이의 관계를 학습한다는 점도 조금 더 명확하게 이해하게 되었다.

결국 머신러닝은 학습 데이터를 이용하여 변수 사이의 패턴을 찾고, 그 패턴을 이용하여 새로운 데이터의 결과를 예측하는 과정이라고 이해할 수 있었다.


4. 학습하며 느낀 점

처음에는 머신러닝이 매우 복잡하게 느껴졌다.

하지만 실제 실습을 진행하면서 데이터 → 전처리 → 학습 → 예측 → 평가라는 흐름을 반복적으로 경험하니 전체 구조가 조금씩 보이기 시작하였다.

이번 주에 특히 기억에 남은 개념

  • fillna()를 이용한 결측치 처리
  • median()과 mean()의 차이
  • StandardScaler를 이용한 표준화
  • One-Hot Encoding
  • Linear Regression과 Logistic Regression의 차이
  • RMSE와 Accuracy 같은 평가 지표

특히 데이터 분석에서는 단순히 코드를 작성하는 것만 중요한 것이 아니라 데이터의 특성을 이해하고 적절한 전처리 방법을 선택하는 능력이 중요하다는 점을 느꼈다.


5. 머신러닝 학습 흐름 정리

이번 주에 배운 내용을 하나의 흐름으로 정리하면 다음과 같다.

데이터
   ↓
데이터 확인
   ↓
결측치 / 이상치 처리
   ↓
Feature(X) / Label(y) 분리
   ↓
데이터 전처리
   ↓
학습 데이터 / 평가 데이터 분리
   ↓
모델 학습
   ↓
예측
   ↓
성능 평가

이번 주 핵심

머신러닝 알고리즘을 이해하는 것도 중요하지만, 그보다 먼저 데이터를 제대로 준비하고 전처리하는 과정이 중요하다는 것을 직접 경험하였다.


6. 다음 주 학습 목표

  1. 로지스틱 회귀의 시그모이드 함수 원리 심화 학습
  2. SVM, Decision Tree, Random Forest 알고리즘 이해
  3. 모델 성능 평가 지표(Precision, Recall, F1-Score) 학습
  4. Feature Importance 분석을 통한 변수 영향력 해석
  5. 실제 데이터셋을 활용한 독립적인 머신러닝 프로젝트 수행

7. 주요 Python & 머신러닝 문법 정리

이번 주 학습에서 실제로 자주 사용한 문법과 머신러닝 관련 명령어를 복습용으로 정리하였다.

문법 / 함수 의미 기억할 것
pd.concat() DataFrame 연결 데이터를 위/아래 또는 축 방향으로 연결
pd.merge() 공통 컬럼을 기준으로 데이터 결합 SQL JOIN과 유사
df.isnull() 결측치 여부 확인 True / False로 확인
fillna() 결측값 대체 평균, 중앙값 등으로 대체 가능
median() 중앙값 계산 이상치 영향을 상대적으로 적게 받음
mean() 평균 계산 전체 값의 평균
dropna() 결측값이 있는 데이터 제거 데이터 손실에 주의
clip() 값의 범위를 제한 이상치 처리 등에 활용
StandardScaler() 데이터 표준화 평균 0, 표준편차 1
train_test_split() 학습/평가 데이터 분리 Train / Test
LinearRegression() 선형회귀 모델 생성 연속적인 값 예측
LogisticRegression() 로지스틱 회귀 모델 생성 분류 문제에 사용
.fit(X, y) 모델 학습 X와 y의 관계를 학습
.predict(X) 결과 예측 학습된 모델로 새로운 값 예측
One-Hot Encoding 범주형 데이터를 숫자 형태로 변환 Gender, Embarked 등
RMSE 회귀 모델 평가 예측값과 실제값의 오차 평가
Accuracy 분류 모델 평가 전체 예측 중 맞힌 비율

8. 회귀와 분류 한눈에 비교

구분 회귀 분류
목적 숫자 예측 범주 예측
예시 집값 예측 생존 여부 예측
대표 모델 Linear Regression Logistic Regression
평가 예시 RMSE Accuracy

9. 5주차 회고를 마치며

5주차는 머신러닝의 기본적인 구조를 이해하기 시작한 한 주였다.

처음에는 머신러닝이라는 단어 자체가 어렵게 느껴졌지만, 실제 데이터를 가지고 직접 전처리하고, 모델을 학습시키고, 예측 결과를 확인하고, 성능을 평가하는 과정을 반복하면서 조금씩 전체적인 흐름이 보이기 시작하였다.

특히 보스톤 집값 예측을 통해 회귀의 개념을 경험했고, 타이타닉 생존 여부 예측을 통해 분류의 개념을 경험했다.

두 실습을 비교해 보면서 무엇을 예측하려는 문제인가?를 먼저 판단하는 것이 머신러닝 문제를 이해하는 데 중요하다는 것도 알게 되었다.

그리고 이번 주 학습을 통해 좋은 머신러닝 모델을 만드는 것뿐만 아니라 데이터를 제대로 이해하고 전처리하는 과정이 매우 중요하다는 점을 직접 경험하였다.

5주차 회고 한 줄

이번 주는 머신러닝의 기본 흐름과 데이터 전처리의 중요성을 이해하고, 선형회귀와 로지스틱 회귀를 통해 예측과 분류 문제의 차이를 실습으로 경험할 수 있었던 의미 있는 시간이었다.

5주차 학습 완료.
다음 주에는 조금 더 다양한 머신러닝 알고리즘을 직접 경험해 보자.

반응형