[Data Science] Feature Engineering

감자둘둘·2023년 8월 14일
0
post-thumbnail

✅ 포스팅 요약

이번 포스팅은 인공지능과 머신러닝의 가장 중요한 측면인 피처 엔지니어링에 대한 것이다.

☝ 피처 엔지니어링의 중요성

피처 엔지니어링은 일반적으로 머신러닝 파이프라인의 다른 단계보다 더 많은 시간을 투자해야 한다.

피처 엔지니어링은 ☝ 데이터 차원을 줄이고(오버피팅 방지), ☝ 특정한 피처가 알고리즘을 통계적으로 지배하지 못하게 한다.

우리는 피처 엔지니어링과 시각화를 통해 데이터셋의 이상치(outlier), 상관관계 및 주성분에 대해 이해할 수 있다.

또한 우리가 사용하는 AI/ML 모델의 관점에서 피처들을 분석하여 어떤 피처가 다른 피처보다 더 중요한지 직관적으로 파악할 수 있다.

모델의 성능을 향상시키는 피처가 있는가 하면, 성능 향상과 무관하거나 오히려 성능을 저하시키는 피처도 있다.(잘 거르는게 상책이다.)

솔직히 내가 피처 엔지니어링 잘못해도 끽해야 예측을 잘못하는 모델을 만들 뿐이지만, 크고 위대하신 분들이 피처 엔지니어링을 잘못하면 최악의 경우 인종, 성별, 나이에 대한 편향을 전파하고 사회적인 이슈를 불러일으킬 수 있는 모델을 생성할 수도 있다.

고수준에서 피처 엔지니어링은 크게 피처 선택, 피처 생성, 피처 변환으로 나뉜다.

☝ 피처 선택(Feature Selection)

피처 선택은 데이터셋을 가장 잘 나타내는 데이터 속성들을 식별한다.

또한 통계적인 방법들을 사용해 관련성이 적고 불필요한 속성들을 걸러낸다.

예를 들어, 쿠팡에서 판매하는 물건에 대한 사용자의 리뷰 데이터셋에서는 리뷰가 받은 총 투표 수리뷰가 도움이 된다는 투표 수 같이 상관관계가 높은 변수들의 경우 모델을 훈련시키는 데 둘 중 하나만 필요할 수 있다.

이런 식으로 실질적으로 모델 훈련에 도움이 되는 속성들을 추려내 피처 차원을 줄이면 모델 정확도를 유지하면서 모델을 빠르게 훈련시킬 수 있다.

☝ 피처 생성(Feature Generation)

피처 생성은 말그대로 기존의 데이터셋의 속성들을 병합하여 기존에 없었던 속성을 만들어 피처로 사용하는 것이다.

예를 들어, 쿠팡에서 판매하는 물건에 대한 사용자의 리뷰 데이터셋의 리뷰 제목리뷰 내용을 단일 피처로 결합하면 개별적으로 사용하는 것보다 더 정확한 예측이 이루어질 수 있다.

☝ 피처 변환(Feature Transformation)

피처 변환은 다룰 것이 산더미이다.

피처 변환은 데이터를 한 표현에서 다른 표현으로 변환하여 머신러닝을 사용할 수 있도록 한다.

데이터 비닝(Data Binning)

이산 비닝(Discrete Binning) 혹은 버킷팅(Bucketing)이라고도 하는 데이터 비닝은 연속적인 데이터를 일정 간격으로 담아 정보를 간소화하는 데 사용되는 데이터 전처리 기술이다.

예를 들어, 특정 고등학교 학생들 데이터셋의 6월 모의고사 성적은 원래 0점부터 100점까지 범위 안에 있는 연속적인 값이다.

그 값들을 0점 ~ 20점은 '매우 심각', 20점 ~ 40점은 '여전히 심각', 40점 ~ 60점은 '그래도 심각', 60점 ~ 80점은 '그나마 괜춘', 80점 ~ 100점은 '괜춘'으로 변환하는 것이다.

데이터 정규화(Data Normalization)

데이터 정규화는 특정 데이터 포인트의 모든 값을 0에서 1 사이의 값으로 스케일링하는 데이터 전처리 기술이다.

데이터의 상대적 크기를 유지하면서 각 데이터 포인트를 동등한 범위로 조정한다.

주로 최소-최대 정규화(Min-Max Normalization)이 사용되는데, 이는 데이터를 최솟값과 최댓값 사이의 범위로 변환하는 방법이다.

🚨 수식 참고
normalized_data = (data - mean) / (max - min)

🤔 그럼 데이터 정규화는 언제 사용할까?

데이터셋의 피처들의 스케일이 다를 때 사용한다.

Data normalization is typically used when the features in a dataset have different scales.
For example, if one feature is measured in centimeters and another feature is measured in kilometers, tehn data normalization can be used to bring the values of both features to a common scale.
From. Google Bard

데이터 표준화(Data Standardization)

표준화는 데이터의 평균을 0으로 조정하고 표준 편차를 1로 조정하여 데이터값들이 정규 분포 곡선을 이루도록 스케일링하는 데이터 전처리 기술이다.

주로 Z 점수 표준화(Z-score Standardization)가 사용된다.

표준화는 정규화보다 이상치를 더 잘 감지하고 다양한 단위와 스케일의 피처들을 비교할 수 있게 해준다.

🚨 수식 참고
standardized_data = (data - mean) / standard_deviation

data는 원래 데이터, mean은 데이터의 평균, standard_deviaton은 데이터의 표준 편차이다.

위의 공식을 사용하여 데이터를 정규화하면 평균을 중심으로 데이터가 분포하며, 데이터의 범위는 평균으로부터 표준 편차의 몇 배만큼 떨어져 있는지를 나타낸다.

🤔 그럼 데이터 표준화는 언제 사용할까?

데이터셋의 피처들이 분산들(variance)이 다를 때 사용한다.

Data standardization is typically used when the features in a dataset have different variances.
For example, if one feature has a variance of 100 and another feature has a variance of 1, then data standardization can be used to bring the variances of both features to a common level.
From. Google Bard

표준화는 데이터의 상대적인 위치를 파악하는 데 도움을 줄 뿐만 아니라, 이상치가 있는 데이터셋에서도 영향을 최소화하는데 효과적이다.

데이터 정규화 vs. 데이터 표준화

profile
한 줄 소개.

1개의 댓글

comment-user-thumbnail
2023년 8월 14일

정리가 잘 된 글이네요. 도움이 됐습니다.

답글 달기