작성
·
253
0
안녕하세요 선생님. 결측치 채우기 섹션에서 궁금한 부분이 있어 질문을 드립니다.
결측치 채우기 부분에서 왜 문자열 데이터는 빈도가 높은 데이터 순을 대치하는 방법을 적용하는지 궁금하여 여쭤봅니다.
그리고 그 아래 코드에 .mode()는 어떤 것을 의미하는 지 알려주시면 감사드립니다.
그 부분과 연결지어 아래 부분에,
# 이제 각 Feature 마다 빈도수가 가장 많이 나타나는 값을 추가하는 코드를 작성한다.
for i in final_cat_vars:
all_df[i] = all_df[i].fillna(all_df[i].mode()[0])
빈도수가 가장 많이 나타나는 값을 왜 추가하는지 알려주시면 감사드립니다.
답변 1
0
결측치 대치는 여러가지 방법이 있는데, 그 중 가장 쉬운 방법인, 빈도수가 가장 많이 나온 것을 대체 한 것입니다. 이 방법이 꼭 좋은 방법은 아니나, base 머신러닝 모형을 구축할 때는 쉽게 구축 할 수 있기 때문에 사용한다고 생각하면 될 것 같습니다.
mode() 함수는 문자열의 각 값을 계산한 후, 높은 순부터 정렬하여 반환합니다. mode()[0]은 각 칼럼에서 가장 높은 값을 추출한다는 뜻입니다.
결측치 대치는 이 문제 하나만으로도 논문으로 나올 수 있는 매우 어려운 문제입니다. 본 강의에서는 가장 쉬운 방법을 택했다고 보면 될 것 같습니다. 문자열 결측치에서 가장 큰 어려운 문제는 high-cardinality 이슈가 있습니다. 관련 키워드로 검색해보시고, 혹시나 이해가 어려우면 추가로 강의를 제작해서 올리도록 하겠습니다.