목록범주형 (5)
Yours Ever, Data Chronicles

저번 포스팅에서는 명목형 변수 중에서 nom_9 변수를 제거하여 0.804의 성능으로 향상시켰다. 이번 포스팅에서는, 사용했던 모델인 '로지스틱 회귀' 모델을 하이퍼 파라미터 튜닝하여 좀 더 성능을 향상시켜 보자! 데이터를 불러오는 과정은 앞의 포스팅과 똑같으므로 생략하고, 범주형 변수 인코딩 하는 부분과 모델 하이퍼 파라미터 튜닝하는 부분은 함수로 만들어서 좀 더 코드를 간결하게 만들어보았다. 참고로 하이퍼 파라미터 튜닝은 시간이 꽤 오래 걸리니 코드 실행 시 주의하자! (적으면 10분, 많으면 40분까지도 걸린다) 전체 코드는 이 깃허브에서 다운받을 수 있다 :) ✔Table of Contents 1. nom_9 변수 제외 & 하이퍼 파라미터 튜닝 함수화 먼저 데이터를 불러오고, 데이터 인코딩 하는 ..

이전 포스팅에서는 범주형 변수를 전처리하기 위한 인코딩을 하고, 기본적인 베이스라인 모델을 만들어 제출까지 해보았다. 이번 포스팅부터는 성능을 개선하기 위한 여러 방법들을 시도해보자! 내가 시도해본 방법은 다음과 같다. 1) 명목형 변수인 nom_*의 변수 개수 조정 (nom_5~ nom_9번 변수는 의미있는 변수인지 모르니까) 2) 로지스틱 회귀의 하이퍼 파라미터 튜닝 이번 포스팅에선 1번을 해본다. 참고로 전체 코드는 나의 깃허브에서 다운받을 수 있다 :) ✔Table of Contents 1. 데이터 불러오기 import pandas as pd import numpy as np import warnings warnings.filterwarnings("ignore") train = pd.read_cs..

저번 EDA 포스팅을 통해 범주형 변수들이 어떤 카테고리 값을 갖고 있는지와, target과의 관계를 파악하였다. 그리고 주어진 모든 범주형 변수가 target과 유의미한 관계가 있다는 것을 알 수 있었다. (하지만 명목형 변수 nom_5~nom_9는 카테고리가 워낙 많아 검증이 필요하다.) 이번에는 베이스라인 모델을 만들어본다. 주어진 범주형 변수들을 활용해 target을 예측하는 모델을 만들어 볼 것이며, 베이스라인 모델이므로 가장 간단한 형태로 만들 것이다. 이번 포스팅에서는 범주형 변수를 전처리하는 변수 인코딩(Encoding) 방법과, 아주 간단한 로지스틱 회귀 모델을 만들어 보고 score가 얼마가 나오는지 알아보자. ✔Table of Contents 1. 범주형 변수 인코딩(Encoding)..

이전에 쓴 시각화 포스팅의 첫머리에서 데이터의 종류에 대해 설명하였다. 그 때 데이터는 사칙연산이 가능한 '수치형 데이터'(numerical data)와 '범주형 데이터'(categorical data)로 나눌 수 있으며, 범주형 데이터 중에서 순서(순위)가 있는 데이터를 순서형 데이터(ordinal data)라고 하였다. 이런 순서형 데이터가 있는 데이터를 받은 경우, 순위를 꼭 지켜줘야 한다. 그 이유는 순서형 데이터는 순위대로 중요도가 달라지기 때문이다. 대표적인 순서형 데이터인 '학점'의 경우 A+이라는 값과 F 라는 값은 큰 차이가 있듯이! 하지만 데이터셋에 순위가 지정되어 있지 않은 경우가 많다. 이럴 때 판다스의 CategoricalDtype 함수를 사용하면 내가 순위를 지정한 대로 순서가 ..

저번 포스팅에 이어 범주형 데이터를 시각화할 때 주로 사용되는 그래프를 정리한다. ✔Table of Contents 3. 범주형 데이터 시각화 저번 포스팅과 마찬가지로 tips 데이터셋을 사용하였다. tips.head(3) 3-1. 범주형 변수 1개 시각화 카운트플롯: sns.countplot() x: category / y: 각 category별 개수 파이 그래프: pie(x, labels) x: category별 비율 1) 카운트플롯(countplot): category별 개수 확인 주로 범주형 변수의 분포를 파악할 때 사용한다. 형태는 sns.countplot(x or y, data) 예를 들어, day 변수에 대해 어떤 값을 몇 개나 갖고 있는지를 살펴보자. sns.countplot(x = 'da..