Day 21 - 머신러닝 2 > 로지스틱 회귀

2022. 11. 8. 17:38Python

이번 글에서는 머신러닝 방법 중 로지스틱 회귀에 대해서 다룰 것이다.

로지스틱 회귀는 이진 분류를 다루며, 두가지 범주로 나뉘어진 값을 예측하는데 사용한다. 이는 기존의 선형 회귀가 이러한 값을 잘 예측하지 못하기 때문이다. 분류문제에 있어 타 모델과 비교하는데 있어 기준선으로 사용되며, 구현과 설명이 쉽다. 다만 선형관계가 아닌 데이터에 대한 예측력은 떨어진다는 단점이 있다. 자세한 이유는 모르겠지만, 아마 결국 선형회귀와 비슷한 방식의 회귀분석 방법이라서 그런게 아닐까 싶다.

 

Titanic dataset을 활용하여 로지스틱 회귀 실습을 진행했다.

Titanic dataset을 불러왔다.
데이터의 간단한 정보를 보았다.
Embarked 컬럼의 NaN값을 S로 대체하고, 생존여부와 크게 관련 없어보이는 Cabin과 Ticket 컬럼을 삭제했다.
Age컬럼의 결측치를 대체하기 위해 Name컬럼에서 호칭 데이터로 따로 컬럼을 만들어서, 호칭 별 평균 나이로 Age 컬럼의 결측치를 대체했다. 이후 Name, Title 컬럼을 삭제했다.
마지막으로 Sex, Embarked 컬럼의 데이터를 숫자 데이터로 바꾸었다.
전처리 이후 학습을 수행하고, 모델을 평가했다. 예측 정확도가 0.799 정도 나온 것을 알 수 있다.

실습을 통해 알게 된것은, 어떤 머신러닝 기법을 사용하더라도 해당 기법에 맞게 데이터 전처리를 해주어야 한다는 것과 따라서 데이터 전처리가 정말 중요하다는 점이었다. Titanic dataset을 활용한 실습은 이번이 두 번째였는데, kaggle에서 보고 흥미가 생겼던 airline 데이터 등을 통해 전처리 연습을 해보아야겠다. 또한, 특정 상황에 적용할 기법을 생각해내는 것도 중요한 요소라고 생각한다.