간략한 Feature Engineering

yuns_u·2021년 7월 12일
0

Feature Engineering

Feature Enginnering(특성공학)이란 도메인 지식과 창의성을 바탕으로, 데이터셋에 존재하는 Feature들을 재조합하여 새로운 Feature를 만드는 것이다. 즉, 데이터 분석에 사용되는 모델의 정확도를 높이기 위해서 주어진 데이터를 예측 모델의 문제를 잘 표현할 수 있는 features로 변형하는 과정이다.

통계 분석 혹은 머신러닝, 더 나아가 딥러닝까지 대부분의 분석은 데이터에 있는 패턴을 인식하고 해당 패턴들을 바탕으로 예측을 하기 때문에, 더 좋은 퍼포먼스를 위하여 더 새롭고 더 의미있는 패턴을 제공하는 것이 궁극적인 Feature engineering의 목적이라고 할 수 있다.

Feature Engineering에 대한 너무나도 많은 내용들을 다룰 수 없기에, 간략하게 배운 것들을 위주로 정리해보고자 한다.

❓feature란 무엇인가?

feature는 어떤 대상에 대한 정보의 나열인가?

Dataframe

pandas의 dataframe을 간략하게 표현하자면 table 형태의 data라고 할 수 있다.

tidy 형태
일반적으로 하나의 행에는 하나의 데이터 혹은 관측치를, 하나의 열에는 하나의 feature를 기반으로 저장된 형태. 다른 라이브러리들과의 호환성을 위해서 tidy형태로 저장하는 것이 좋다.

❓Na, Null, NaN, 0, Undefined 의 차이

R에서의 NA는 '잘못된 값', Null은 '아직 정해지지 않은 값'으로, 서로 다른 의미인데 Python에서는 NA과 Null을 NaN으로 표현한다고 한다.

Na(Not Available) : 결측값
Null : 값이 입력되지 않음, 결측값
NaN(Not a Number) : 숫자가 아니다, 결측값.
0 : 실수
Undefined : 선언은 되었으나 값이 할당되지 않은 변수로 오류 표기?

Data type (데이터의 형태)

일반적으로 머신러닝 모델링에서는 문자열(string)로 이루어진 값은 잘 사용하지 않는다. 정수(integer)나 실수(float)형태의 값으로 바꿔줘야하는 경우가 많다!

string replace

string variable.replace(“삭제할 값“, ‘’)

column 단위로 int 값으로 바꾸는 replace 함수 사용하기: DataFrame.apply()

df['index1'] = df['index2'].apply(사용자지정함수)
profile
💛 공부 블로그 💛

0개의 댓글