캐글 [t1-39 퇴근후딴짓 교육 분석] 7번 문제 질문
78
작성한 질문수 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
22
1
강의 구매했는데 교재 필수일까요
0
23
2
수강기간 연장 가부 문의드립니다.
0
21
2
수강기간 연장이 가능한지 양해를 구하며 문의를 드립니다.
0
27
2
작업형2 모의문제2에서 drop이랑 인코딩
0
31
2
인코딩을 다 꼭 해봐야하는지
0
39
2
안녕하세요? 강사님 질문있습니다.(인코딩관련)
0
57
2
이진분류에서 양성 클래스가 0일 때 평가 방법
0
46
2
원핫인코딩 전 train과 test 병합여부
0
50
2
수강기간 연장
0
69
2
29강 작업2형의 이상치 처리
0
65
2
수강기간 연장 문의드립니다!
0
65
2
9월에 실기출제기준 개정내역에 신설된부분
0
55
1
작업형2 모의문제2 결과값 관련 문의드립니다.
0
66
2
12회차 시험 실패 후 13회 도전 예정입니다.
0
55
1
random_state 값
0
73
2
강의 연장 문의 드립니다.
0
68
2
강의 연장 문의
0
61
2
오징어게임
0
70
1
object 컬럼이 여러 개인 경우 인코딩 전처리 방법
1
49
2
데이터 전처리 순서 관련
0
64
2
작업형2 모의문제 데이터 불러오기
0
63
2
강의 연장 부탁드립니다!
0
69
2
수강기간 연장 문의드립니다!
0
67
2





