캐글 [t1-39 퇴근후딴짓 교육 분석] 7번 문제 질문
64
작성한 질문수 8
안녕하세요.
늦은 시간까지 공부하다가 질문이 생겨 문의 드립니다.. 시간이 시간인지라 시험 전까지 질문에 답변이 없으시면 어쩔 수 없겠죠 ㅠㅠ
캐글 문제를 풀다가 상위 20% 사용자 또는 하위 15% 사용자 필터링 하는 과정의 풀이 방법에 대해 질문 드립니다.
저는 상위 20%의 데이터 추출할 때 특정 컬럼을 기준으로 내림차순 sort를 진행하여 인덱싱으로 추출하였는데 강사님께서는 quantile(0.8) 함수로 데이터를 추출하셨더라구요
답이 다른데.. 제 풀이 방법에 대해 어디에 오류가 있는지 잘 모르겠습니다ㅜㅜ
상위 N% 데이터 추출 시에 제 풀이처럼 풀 수 없나요?
#본인의 풀이
top20 = df.sort_values('학습 효율 지수', ascending=False).reset_index(drop=True)
end = int(len(top20)*0.2)
df1 = top20[:end]
result7 = df1['총 결제 금액'].mean()
print("result7:", int(result7)) #답 : 127125
#강사님의 풀이
top_20_cutoff = df['학습 효율 지수'].quantile(0.8)
top_20_df = df[df['학습 효율 지수'] >= top_20_cutoff]
result7=top_20_df['총 결제 금액'].mean()
print("result7:", int(result7)) #답 : 123304
답변 2
0
실제 문제에서는 동일한 결과가 나오게 만들 것 같습니다.
우선 정리하면
end는 개수로 자름 예를 들어, 10개면 딱 10개만 자름 (절대적 개수 기준)
quantile(0.8) 예를 들어, 97.3 이라면 10개만 자른것과 차이가 있을 수 있음
퍼센트(%)”라고 적혀 있으면 → 상대 기준(분위수, quantile)
학습효율지수가 높은 상위 20명의 사용자를 추출하시오. -> 절대적인 개수(명수)
0
안녕하세요, 인프런 AI 인턴입니다. 민지님.
상위 N% 사용자를 추출할 때, 두 가지 접근법의 차이에 대해 고민하고 계시는군요.
두 가지 접근법 비교
셰이프를 이용한 분할:
본인의 풀이는 데이터를 내림차순으로 정렬한 후, 총 데이터의 20% 지점까지의 데이터를 선택하여 평균을 구하는 방식입니다. 이 방식은 전체 데이터의 정확한 상위 20% (내림차순 정렬 기준)만을 선택하는 데 유리합니다.Quantile 함수를 이용한 분할:
강사님의 풀이는quantile함수를 통해 특정 지점의 값을 기준으로 원본 데이터에서 필터링하는 방식입니다. 이 방법은 ‘학습 효율 지수’가 포함하는 모든 행의 각'총 결제 금액'에 대하여 상위 20% 조건을 직접 적용하여 평균을 계산하므로, 데이터의 분포를 기반으로 한 필터링이 가능합니다.
발생할 수 있는 오차의 이유
두 방법 사이의 결과 차이는 데이터의 분포에 따라 다를 수 있습니다.
- 정렬 후 자르기는 상위 20% 부분만의 평균을 구하기 때문에 특정 구역만의 집중된 평균을 구합니다.
- Quantile은 실제로 데이터 분포에 기초하여 상위 20%와 해당 기준 이상인 모든 행을 고려하여 평균을 산출합니다.
따라서 두 방법이 다를 수 있는 이유는 데이터의 분포 상태와 커트라인 설정 방식의 차이에서 발생합니다.
제안
본인의 방법도 맞지만, 원하는 결과가 상위 20%에 해당하는 값들의 평균을 구하는 것이라면 quantile을 사용하는 방법이 일반적으로 더 안정적인 결과를 제공합니다.
비슷한 문제 해결에 관한 논의를 다룬 캐글 T1-16 문제 풀이중 질문드립니다 를 참고하시길 추천드립니다. 이 링크는 다른 데이터 프레임 문제 해결 시 어떤 선택지를 둘러볼 수 있는지에 대한 안내 자료로도 유용할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
대응표본검정 레빈
0
13
2
단일표본검정 문제 유형
0
16
2
[작업형 3] 6~7. 카이제곱 검정
0
15
2
9회 작업형3 문제 1-1
0
19
2
최종답안 계산 방식 질문
0
14
1
시험 치기 전 급하게 질문 사항
0
24
2
유형3
0
23
2
작업형 2 연습문제 섹션 3
0
17
2
11 기출문제 ipynb파일
0
21
2
작업형 3 유형
0
21
2
11회 기출 유형(작업형1) 2번 정답
0
18
2
f1 score 질문
0
19
2
10회 작업형 2 인코딩 질의
0
15
2
53번 강의에서 갑자기 수업노트가 없어졌습니다.
0
21
2
28:19 roc_auc이유
0
20
2
수강연장문의
0
23
2
전체적인 머신러닝 순서
0
24
2
빅분기 실기 유형2질문
0
26
1
ID 전처리 이유
0
31
2
데이터제공
0
33
2
예시문제 작업형3 꼬리질문2번
0
22
1
데이터 개수를 구할 때, len과 value_counts 차이
0
28
2
작업형 2 제출방
0
22
2
인코딩 스케일링 순서
0
24
2





