Hackathon을 진행하며 데이터 분석에 사용한 함수와 성능 개선 코드, 그리고 시도는 해보았지만 사용하지는 않은 방법들에 대해 알아보자

코드 원본은 여기에서 확인 가능합니다.

데이터 분석에 사용한 함수들

describe() 함수 (결측치, 이상치 확인하기)

describe함수의 경우 위의 그림과 같이 데이터프레임의 형태로 몇 개의 Feature들이 있는지 파악이 가능하고, Count를 통해 각 Feature마다 데이터가 몇개 있는지 파악 가능하다. 예를 들어 bant_submit 처럼 결측치가 없는 경우, 59299개의 데이터가 존재하고, com_reg_ver_win_rate 의 경우 44731개의 결측치가 존재해, Count가 14569로 표시된 것을 확인할 수 있다.

또한, std행을 통해 각 Colum별 표준편차를 확인할 수 있으며, customer_country와 같이 std가 너무 큰 값을 가지고 있다면 이상치가 존재한다고 생각해볼 수 있다.

info() 함수 (결측치, 데이터 타입 확인하기)

info함수의 경우 위의 그림과 같이 결측치가 있는지 없는지와 데이터 타입을 간단하게 확인 가능하다.

.value_counts() 함수 (값의 상대 빈도 구하기)

위 그림과 같이 .value_counts() 함수를 통해 확인 하고자 하는 Column의 각 Value(Class)에 대한 발생횟수를 파악할 수 있다.

.score() 함수 (모델 성능 측정)

위 그림과 같이 .score() 함수를 통해 학습한 모델이 각 데이터 별로 얼마나 잘 맞는지 정확도를 확인할 수 있다.

Seaborn 라이브러리 (데이터 시각화 하기)

# 상관관계 파악 / 상관 관계 높고, 중요도 낮은 특성을 제거해 모델 복잡도를 줄여 일반화 높임
import seaborn as sns

# 상관계수 행렬 계산 (절대값 사용)
corr_matrix = np.abs(df_train.corr())

# plot
plt.figure(figsize=(20, 30))
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm')
plt.show()

# 상관계수 임계값 설정
corr_threshold = 0.5

# 상관계수가 임계값 이상인 특성 찾기
to_drop = [column for column in corr_matrix.columns if any(corr_matrix[column][corr_matrix[column] != 1] > corr_threshold)]
print(to_drop)