✔️ .describe()를 하는 이유?
✔️ histogram을 확인하는 이유?
✔️ 결측치를 확인하는 이유?
-> 변수가 너무 많기 때문에 결측치가 있는 데이터만 가져와서 봄
✔️ 이상치가 있을 때 어떻게 처리할까?
✔️ 희소값 탐색을 하는 이유?
✔️ 표준정규분포 형태를 만들기 위해서는?
1️⃣ 스케일링이 먼저다 2️⃣ 로그변환이 먼저다
✔️ 왜 데이터를 정규분포 형태로 만들어주면 머신러닝이나 딥러닝에서 더 나은 성능을 낼까?
-> 너무 한쪽에 몰려있거나 치우쳐져 있을 때보다 고르게 분포되어 있다면 데이터의 특성을 더 고르게 학습할 수 있음.
✔️ 너무 큰 음수값이 있을때! 음수인 값이 너무 뾰족하거나 치우쳐져 있어서 로그를 취하기 위해서는 어떻게 전처리 해야 할까? 예를 들어 -1000 이라면?
-> 최소값 +1, -1000이라면 1001을 더함
✓ 원래 값으로 되돌리려면?
-> np.exp(x) -1001
✔️ 이산화를 하는 이유?
✔️ LabelEncoder, OrdinalEncoder 의 입력값의 차이?
X, y 정의
X => 독립변수, 2차원 array 형태, 학습할 피처 (ex. 시험의 문제)
y => label, target, 정답, 1차원 벡터 (ex. 시험의 답안)
✔️ 인코더 3가지의 공통점?
-> 범주형 데이터를 수치형 데이터로 바꿔줌
분산 기반 필터링
: 범주형 변수 주에 어느 하나의 값에 치중되어 분포되어있지 않은지 확인
상관관계 기반 필터링
✔️ SQL로 관리하는 데이터와 파일로 관리하는 데이터는 어떻게 구분해서 관리할까?
-> SQL에 저장하는 데이터는 실시간으로 사용해야 하는 데이터,
-> 파일로 관리하는 데이터는 로그성 데이터
✔️ train과 test를 concat했을 때 장/단점?
상관 계수는 두 변수의 상관관계를 나타내는 지표입니다.
상관관계는 두 변수 간의 직선 관계를 나타냅니다.
상관관계가 있다는 것이 두 변수가 서로 "인과관계"가 있다는것은 아닙니다.
상관관계가 높다고해서 두 변수에서 하나의 변수가 다른 변수의 원인을 설명할수는 없습니다.
원인이나 이유는 알 수 없지만 서로 상관관계가 높을 뿐입니다.
상관관계를 분석하는데 있어서 가장 직관적인 방법은 지금처럼 산점도를 살펴보는 것입니다.
산점도에서 분포가 직선에 가까울수록 상관관계가 높다고 할 수 있습니다!
최빈값
-> DF.mode().loc[0]
=> DF.describe().loc['top']
.select_dtypes(include=None, exclude=None)
-> 열에 포함된 데이터들을 type 기준으로 인덱싱
-> include에 넣은값을 포함하고, exclude에 넣은 값을 제외한 columns(열)을 DaraFrame 형태로 반환
왜도
-> DF.skew()
척도
-> DF.kurt()