일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 준비
- List Comprehension
- matplotlib
- separating data(데이터 분리하기)
- 빅데이터 분석기사
- 검정수수료
- context manger1
- teen learn
- 시험 일정
- numpy
- 응시료
- pythonML
- Seaborn
- K 데이터 자격시험
Archives
- Today
- Total
재원's 블로그
Missing value (결측치) 본문
최초 작성일 : 2021-12-21
categories: Python
-Missing Value : 결측치
1. 정의 :
1. Missing Feature(누락 data) 를 처리 해주어야 ML이 잘 돌아 간다.
2. Na, Nan 과 같은 값
2. 종류 :
1. Random : 패턴이 없는 무작위 값
2. No Random : 패턴을 가진 결측치
Deletion
● deletion해서 특성이 바뀌지 않는다면, 가장 좋은 방법
○ dropna()
○ axis = (0 : 행 제거, default),(1: 열제거)
○ subset = (특정 feature을 지정하여 해당 누락 data 제거)
● Listwist(목록삭제)
○ 결측치가 있는 행 전부 삭제
● pairwise(단일 값 삭제)
df = df.dropna() # 결측치 있는 행 전부 삭제
df = df.dropna(axis = 1) # 결측치 있는 열 전부 삭제
df = df.dropna(how = 'all') # 전체가 결측인 행 삭제
df = df.dropna(thresh = 2) # threshold 2, 결측치 2초과 삭제
df = df.dropna(subset=['col1', 'col2', 'col3'])
# 특정열 모두가 결측치일 경우 해당 행 삭제
df = df.dropna(subset=['col1', 'col2', 'col3'], how = 'all')
# 특정열에 1개 초과의 결측치가 있을 경우 해당 행 삭제
df = df.dropna(subset=['col1', 'col2', 'col3'], thresh = 1 )
#바로 적용
df.dropna(inplace = True)
Imputation
- 결측치를 특정 값으로 대치
- mode : 최빈값
- 번주형, 빈도가 제일 높은값으로 대치
- median : 중앙값
- 연속형, 결측값을 제외한 중앙값으로 대치
- mean : 평균
- 연속형, 결측값을 제외한 평균으로 대치
- similar case imputation : 조건부 대치
- Generalized imputation : 회귀분석을 이용한 대치
- 사용함수
- fillna(), replace(), interpolate()
fillna() : 0 처리
df.fillna(0)
● df[].fillna() : 특정 column만 대치
# 0으로 대체하기
df['col'] = df['col'].fillna(0)
# 컬럼의 평균으로 대체하기
df['col'] = df['col'].fillna(df['col'].mean())
# 바로 위의 값으로 채우기
df.fillna(method = 'pad')
#바로 아래 값으로 채우기
df.fillna(method='bfill')
● replace()
# 대체, 결측치가 있으면, -50으로 채운다.
df.replace(to_replace = np.nan, value = -50)
● interpolate()
○ 만약, 값들이 선형적이라추정 후 간격으로 처리
df.interpolate(method = 'linear' , limit_direction = 'forward')
- prediction Model (예측모델)
● 결측치가 pattern을 가진다고 가정하고 진행.
● 결측값이 없는 컬럼들로 구성된 dataset으로 예측
● 회기분석기술 혹은 SVM과같은 ML 통계기법이 있다.
- guid Line (Missiong Value : MV)
● MV < 10% : 삭제 or 대치
● 10% < MV < 50% : regression or model based imputation
● 50%< MV : 해당 column 제거
'Python' 카테고리의 다른 글
python def, decorator (0) | 2023.01.23 |
---|---|
Missing value2 (결측치2) (0) | 2023.01.23 |
Order & Find outliers(주문과 이상치 찾기) (0) | 2023.01.23 |
Trees - Decision Tree about(결정 트리에 대해) (0) | 2023.01.23 |
python_step02,03,04 (0) | 2023.01.23 |