타이타닉 데이터
Q. 당뇨병 데이터셋보다 더 난이도가 있는 이유는?
A. 전처리할 데이터가 많다(결측치, 다양한 데이터 형식, 더 큰 크기)
데이터 전처리
- 정규화(Normalization) : 숫자 스케일의 차이가 클 때 값을 정규분포로 만들어 주거나 스케일 값을 변경해 주는 것
- 이상치(Outliers) : 이상치를 제거하거나 대체
- 대체(imputation) : 결측치를 다른 값으로 대체
- 인코딩(encoding) : 호칭, 탑승지의 위치, 문자 데이터를 수치화, 너무 범위가 큰 수치 데이터를 구간화
머신러닝과 데이터 타입
머신러닝 내부에서는 수치 데이터만 연산 가능 => 중요 feature의 경우 수치 데이터로 변환 필요
- binary encoding : bool 값 등으로 변환 해주는 것(머신러닝 알고리즘에서 bool 값은 수치 데이터로 취급)
ex. 타이타닉 데이터에서의 'Sex' - one-hot encoding
y_test가 없을 때 accuracy를 구하는 방법
hold-out-validation 이라든지 cross_validation을 사용해서 구한다
- hold-out-validation : valid 가 한 조각
- cross_validation : valid 가 여러 조각
Q. 캐글 등에서 제출 횟수를 제한한 이유?
A. 서버무리, 점수조작, 찍어 맞출 수도 있겠죠. 어뷰징 때문에 API등 도 제공하고 있기 때문에 너무 많이 제출하면 어뷰징(잘못된 사용)
어뷰징 사례 : 광고에서 어뷰징 AD Fraud 광고사기, 게임사기 다양한 분야에 어뷰징이 있을 수 있죠
캐글에는 상금걸거나 채용을 걸거나 상을 걸고 하는 대회에 어뷰징이 있을 수 있기 때문입니다. 그래서 하루 제출 횟수를 제한합니다. 한국 데이콘도 마찬가지 입니다.
지니 불순도
- 0에 가까울수록 좋다
- 짜장 짬뽕 중 아무거나가 아니라, 조금이라도 더 먹고 싶은지
- 두 값이 얼마나 섞여있는가
로그
- 지수함수의 역함수
- 이진로그, 자연로그, 상용로그...
1) x가 1이면 y는 0이다.
2) x는 0보다 큰 값을 갖는다.
3) x < 1 이면 y < 0, y는 - 무한대로 수렴
=> 0 < x < 1 이면 y는 음수
엔트로피 - 정보획득량
정보획득량은 정보 이론의 엔트로피의 개념에 근거를 두고 있다. 기술적인 관점에서 보면 정보는 발생 가능한 사건이나 메시지의 확률분포의 음의 로그로 정의할 수 있다. 각 사건의 정보량은 그 기댓값, 또는 평균이 섀넌 엔트로피인 확률변수를 형성한다.
클래스에 따라 최대 엔트로피가 달라진다.
- 이진 클래스 : 엔트로피 np.log2(2) == 1
- 멀티 클레스 : 엔트로피 np.log2(클래스개수)
ex. 클래스 개수가 8개 라면 최대 엔트로피는 3이 됩니다. np.log2(8) == 3 - 멀티클래스의 Metric 측정 방식 중 하나로 logloss 공식을 사용, 측정 공식이 엔트로피와 비슷하지만 다름
새넌 엔트로피(정보 엔트로피)
다양한 엔트로피 중 디시전트리에서 사용하는 엔트로피로, 정의는 아래와 같다.
- 2 섀넌의 엔트로피: 2 개의 공정한 동전을 던질 때 정보 엔트로피는 발생 가능한 모든 결과의 개수에 밑이 2 인 로그를 취한 것과 같다. 2 개의 동전을 던지면 4 가지 결과가 발생할 수 있고, 엔트로피는 2 비트가 된다. 일반적으로 정보 엔트로피는 모든 발생가능한 결과의 평균적인 정보가 된다(위키백과).
Q. 지니불순도와 엔트로피를 사용하는 목적?
A. 값이 얼마나 섞여 있는지를 비교하기 위함이다. 분류를 했을 때 True, False 로 완전히 나뉘지 않는데 이 때 값이 얼마나 섞여있는지 수치로 확인하기 위해서이고, 0에 가까울 수록 다른 값이 섞여있지 않은 상태입니다. 분류의 분할에 대한 품질을 평가하고 싶을 때 사용합니다.
트리와 엔트로피, 지니불순도
- 엔트로피:
np.log2(클래스 개수)
일때 가장 값이 많이 섞여있음 - 지니불순도: 0.5일 때 가장 값이 많이 섞여 있음
=> 0에 가까울수록 분류가 잘 된 것 - 트리가 아래로 갈 수록 0에 가까워지며 0이 되는 순간 트리 분할을 멈춤
=> 오버피팅(과대적합)일 가능성이 높아 일반화하기 어려움
ex. 샘플의 개수가 [1, 0], [2, 0]일 때 엔트로피와 지니불순도는 0이지만 일반화 불가능
Q. 프로젝트 등을 할 때 지니불순도 등을 참고하게 되나요?
A. 캐글이나 데이콘 등에 제출하기 전에 시각화를 해보고 그 모델이 얼마나 잘 나뉘었는지 여러가지로 평가해 볼 수 있는데 이 때 함께 참고해 볼 수 있을거 같아요. 이 때 함께 참고해 볼 수 있는 것은 피처 중요도, 교차검증(cross validation) 값 등을 참고해 볼 수 있겠습니다.
'멋쟁이사자처럼 AIS7 > 오늘코드' 카테고리의 다른 글
[1108] log를 이용한 데이터 전처리, 하이퍼 파라미터 튜닝, Feature Engineering (0) | 2022.11.08 |
---|---|
[1107] 피처 선별 등의 머신러닝 접근법과 RMSLE (0) | 2022.11.07 |
[1031] 분류와 회귀의 평가 지표와 하이퍼 파라미터 튜닝 (0) | 2022.10.31 |
[1026] Feature Engineering & K-fold Cross Validation (0) | 2022.10.26 |
[1025] Machine Learning (0) | 2022.10.25 |
댓글