[빅데이터] 특징량 엔지니어링

751

특징량을 직역하자면, 데이터 중 수치로 된 관측된 값의 대표적 특징이라고 이해하는게 좋은 것 같다.

  • 데이터를 머신러닝 알고리즘에서 사용할 수 있게 변환하는 것
  • 데이터를 기반으로 머신러닝 알고리즘을 예측할 때, 새로운 특징량(데이터의 대표적인 값)을 만드는 것
  • [글쓴이의 견해]특징량은 어려운 개념이 아니다. 사실 일상생활 에서도 많이 쓰인다. 대표적인 예로 우리는 어떤 친구가 시험을 잘봤는지 못봤는지 평가하기 위해서 그래서 너의 평균 점수가 몇이야? 라고 말한다. 왜? 기준이 필요하기 때문이다. 그 사람을 대표하는 점수가 그 사람의 특징을 나타내기 때문이다.위의 설명은 이해를 돕기 위한 예시일뿐이다. 그렇다고 모든 데이터가 위처럼 국한되지는 않는다. then 일반화 하여 말하자면 데이터의 어떤 값을 특정상황에 활용할 수 있게 만들어 내는것을 특징량 엔지니어링이라고 일괄할 수 있다.
  • 아래는 타이타닉 데이터 셋 중 예제 코드 중 특징량 처리 과정 중 한 부문을 발췌하였다.
# 타이타닉 데이터 예제 코드
[1] 분할된 학습용 데이터 세트와, 검증용 데이터 세트를 정렬하지 않고 세로로 결합한다.
[2] 성별 변수 중 문자열 자료형인 male과 female을 0과 1로 바꾼다. (특징량 엔지니어링)

[1] data = pd.concat([train,test],sort=False) 
[2] data['sex'].replace(['male,'female'],[0,1],inplace=True)
[1] Fare(요금) 변수 중 숫자형 자료형 중 관측값이 없는 (NA) 데이터를 평균값으로 대체한다. (특징량 엔지니어링)

[1] data['Fare'].fillna(np.mean(data['fare']),inplcae=True)

[데이터 처리]특징량 일반화

  • 대표적인 일반화하는 정규화 함수 중 로지스틱 회귀는 특징량의 범위가 다르면 학습이 제대로 되지 않는다.
  • 이러한 문제를 해결하는 방법은 최대한 특징량의 범위를 조정해야한다.
  • 특징량의 평균을 0, 표준편차를 1로 변환 하는게 대표적이다.
  • 로지스틱 회귀 외 ‘랜덤 포레스트’,’LightGBM’ 등이 여기에 해당한다.

[데이터 처리]결손값 처리

  • 일반적으로 결손(NA)값은 다음과 같이 처리한다
  1. 결손값을 그대로 다룬다.
  2. 대푯값으로 결손값을 보완한다.
  3. 다른 특징량으로 결손값을 예측해서 보완한다.
  4. 결손값인지 아닌지를 기반으로 새로운 특징량을 만들어서 사용한다.

답글 남기기

이메일 주소는 공개되지 않습니다.