피쳐 관련
-
지나치게 세분화된 피처를 더 큰 분류로 묶으면 성능이 좋아지는 경우가 있다.
-
test / train 간에 공통된 값이 있어야 한다. 아니라면 피쳐로 쓸 수 없다.
- train 에 매월 1일부터 19일까지의 데이터가 있다.
- 20일부터 월말까지의 데이터는 test에 있다.
- 따라서 일자는 피처로 사용할 수 없다.
- day 를 피처로 사용하려면 train / test 데이터에 공통된 값이 있어야 하므로.
-
원핫인코딩은 sparse matrix 를 만든다.
- 메모리 낭비가 심하므로 행렬 형식을 변환한다.
- 대표적으로 COO (coordinate list), CSR (compressed sparse row)
- CSR 이 메모리를 더 적게 쓰면서 연산이 빠름.
-
경우에 따라 파생피쳐를 생성한다
- ex1) 하나의 row 가 가진 결측값 개수
- ex2) 명목형 피처의 고윳값별 개수
-
앙상블은 성질이 서로 다른, 다양한 모델로 진행되어야 의미가 있다.
-
피쳐 조합에서, 특정 조합의 판매량이 0이더라도 있는게 낫다.
- 아예 조합이 데이터에 존재하지 않을 경우 생성한다.
from itertools import product
items = [df['col1'].unique(), df['col2'].unique(), df['col3'].unique()]
all_combinations = list(product(*items))- clipping
- 값을 하한값과 상한값에서 잘라내는 기법
- 아웃라이어 제어 용도
np.clip(minval, maxval) # minval 미만이면 minval, maxval 이상이면 maxval
np.clip(a, 0, None) # 0보다 작은 값만 0으로 바꾸고, 큰 값은 무제한 허용.
np.clip(a, None, 100) # 100보다 큰 값만 100으로 바꾸고, 작은 값은 무제한 허용