반응형

Today I Learned 124

[Pandas] categorical columns to numeric - get dummies()

전처리 과정중 하나로 컬럼 값이 categorical 타입일 때, 추후 편리한 연산을 위해 True or False (1 or 0) 값으로 변경해주는 것이 좋다. 하나의 컬럼안에 여러 중복 값이 있을 때 이를 유니크한 단위로 쪼개서 정리해줄 수 있는데, 아래 예시를 살펴보자 영화 데이터인데, 'genres' 컬럼을 보면, 한 컬럼안에 복수개의 장르가 들어가있는걸 볼 수 있다. 이런 데이터는 다루기 까다로우니, 전처리가 필요하다. 방법1. for 문 활용 1) unique genres 추출 2) genres unique list 활용해서 For 문으로, 각 row의 genres column에 해당 장르가 포함 되어있으면, True, 없으면 False 할당해서 새로운 컬럼 생성해줌 방법2. get_dummi..

내가 쓰는 앱에서 추천시스템 찾아보기

쏟아지는 콘텐츠 속에서, 유저가 헤매지않고 원하는 콘텐츠를 적은 노력으로 발견할 수 있도록 도와 줄 수 있는것이 추천시스템이라고 생각한다. 그 추천시스템은 어떤 로직으로 만들어지는지 알아보고, 내가 사용하는 앱에서 사례를 찾아서 이해해보자. 추천 시스템 분류 1. 시나리오에 따른 분류 - 연관된 상품 추천: 아이템끼리 얼마나 연관되어 있는지 - 개인화 상품 추천: 개인의 취향에 얼마나 맞는지 2. 피드백 종류에 따른 분류 - 명시적 피드백 : 좋아요, 싫어요, 별점 등 유저가 직접 피드백한 내용 기반 - 암시적 피드백 : 시청 시간, 클릭율 등 유저 행동 기반 3. 업데이트 주기에 따른 분류 - 정적: 특정 시점까지의 데이터 기준 - 동적: 실시간 데이터 업데이트 크게 이렇게 추천시스템을 분류할 수 있다..

[Python] Sort dict values in list

Checkio 문제 출처: https://py.checkio.org/mission/bigger-price/solve/ 문제 설명 dict타입을 가진 list에서 price가 높은 순서대로 limit 개수만큼 출력해라 예시) input: data, limit data = [ {"name": "bread", "price": 100}, {"name": "wine", "price": 138}, {"name": "meat", "price": 15}, {"name": "water", "price": 1} ] limit = 2 output [ {"name": "wine", "price": 138}, {"name": "bread", "price": 100} ] 내 풀이 dict를 dataframe으로 변경해서 풀어주기..

통계적 가설 검정 - 1종 오류가 더 위험한 이유

귀무가설을 검정하는 과정에서, 오류를 발생시킬 수 있는 경우가 2가지가 있다. 예를들어보자, 상황: 추천시스템 새로 개발 대립가설: 새로 개발한 추천시스템을 통한 클릭율이 기존보다 더 높을 것이다. 귀무가설: 새로 개발한 추천시스템을 통한 클릭율이 기존보다 더 높지 않을 것이다. 1) 귀무가설이 참인데, 기각하고 대립가설 채택: 1종오류 > 새로 개발한 시스템이 더 좋지 않음에도 좋다고 판단해서 업데이트를 해버리는 상황 2) 귀무가설이 거짓인데, 기각하지 않음: 2종오류 > 새로 개발한 시스템이 더 좋은데, 좋지 않다고 판단하고 업데이트 하지 않는 상황 이 때, 새로 개발한 추천시스템이 클릭율이 사실은 1% 더 낮다고 해보자. 1종오류를 범하면 현재보다 더 안좋은 결과를 초래할 수 있고, 2종오류를 범하..

[Python] Strip()은 공백만 제거해주지 않는다.

checkio 문제 참고: https://py.checkio.org/mission/beginning-zeros/solve/ 문제 설명: 숫자로만 구성된 string에서 앞에 연속된 '0'이 몇개인가? EX. '0012' -> 2개 / '1000' -> 0개 / '0300' -> 1개 내 풀이 재귀호출 사용 (재귀호출 공부한 뒤로, 이런문제는 재귀호출로 풀게된다) 참고: 2020/09/18 - 파이썬 재귀호출로 반복문 줄이기 def beginning_zeros(number: str) -> int: # your code here if len(number) == 0 or number[0] != '0': return 0 if number[0] == '0': return 1 + beginning_zeros(num..

[Pandas] any(),all() 사용법과 예시

any(), all() 둘다 boolean(True or False) 값을 return 해주는 pandas의 내장함수이다. 데이터분석을 하다보면, 특정 값을 가진 행이 있는지 판별해야하는 경우가 있다. 그 특정값이 몇개가 있는지가 아니라 단순히 1개라도 있는지, 아니면 전체 행이 그 값을 가졌는지 여부를 판단해줄 때 any() 혹은 all()을 써줄 수 있다. 예시를 통해 확인해보자 1. Student Table 에 'hana'라는 이름을 가진 학생이 있는가? 2. Student Table 에 'zero'라는 이름을 가진 학생이 있는가? 3. Student Table 의 학생들중 남학생이 있는가? 4. Student Table 의 학생들은 전부다 여자인가? 이 함수는 조건문이랑 함께 사용하면 매우 편할 ..

P-value 로 두 집단에 차이가 있는지 검증하기

귀무가설, P-value 등 이게 대체 무슨 소리인가 싶었고, 그냥 P-value가 0.05 이하면 된다 이정도로만 이해하고 있었는데 오늘 한 단계 더 이해해보았다. 구체적 상황 설정 상황: 이번에 우리 서비스의 추천 알고리즘을 개선했다. 콘텐츠를 추천했을 때 기존의 알고리즘보다 클릭율이 높은지 검증하려고 한다. 새로 개발한 추천 시스템 -> A, 기존 추천 시스템 -> B 대립가설: A 클릭율이 B 클릭율보다 높다. 귀무가설: A 클릭율이 B 클릭율보다 작거나 같다. 여기서 우리의 목표는 귀무가설을 기각하고, 대립가설을 채택하는 것이다. 이렇게 귀무가설을 세우는 이유는, 대립가설을 증명하는 것보다 귀무가설이 틀렸음을 증명해서 대립가설을 선택하는 것이 더 쉬운 방법이라고 한다. P-value 등장 귀무가..

내가 열심히 보고하는 지표가 허무지표 일 수 있다.

지표는 사업하는데에 꼭 필요한 도구이다. 일주일에 몇명의 신규회원이 발생하고 있는지, 하루에 발생하는 매출은 얼마인지 등을 숫자로 나타내서 알고 있어야한다. 그런데, 모~~든 것을 매일 숫자로 보고를 하려고하면 문제가 발생한다. 예를들어 로그인 수, 가입자 수, 다운로드 수 등을 매일매일 보고한다고 해보자. "어제는 다운로드 수가 100건 이었군, 10건이 늘었네" "어제는 매출이 10만원 감소했군" 하지만 이 지표만 보고 무엇을 해야할지 알 수 없다. 지표의 목표없이 단순히 측정하기 쉬운 지표, 기분좋은 지표들만 수집하고 보고하는 것은 의미없다. 이렇게 일했다는 기분을 주고, 나아지는 지표를 보고 순간순간 기분은 좋게만들지만 추가 액션을 발생시키지 못하는 지표들을 허무지표라고 한다. 허무지표 특징 쉽게..

파이썬 재귀호출로 반복문 줄이기

알고리즘은 효율적인 패턴을 찾아내어 문제를 해결하는데 도움을 준다. 앞으로 그 알고리즘을 하나하나 배우면서 문제를 풀어나가려고 한다. 첫번째로 재귀호출에 대해서 공부해보았다. 알고리즘 문제를 풀 때, 복잡한 수식을 생각하기전에 단순하게 모든 경우의 수를 계산해보는 방법이 있다. 이를 완전탐색이라고하는데, 이 때 재귀함수를 사용하면 간단하게 해결할 수 있다. 재귀호출이란? 자신이 수행할 작업을 유사한 형태의 여러 조각으로 쪼갠 뒤 그 중 한 조각을 수행하고, 나머지를 자기 자신을 호출해 실행하는 함수 반복문을 재귀호출 이용하도록 바꿔보자! 문제) 1~N까지의 수를 더해주는 함수 ex) numbers=5 -> 1+2+3+4+5 1) 반복문 사용 def is_sum(N): sum_num = 0 for i in..

3가지 리텐션(Retention) 계산 방법 특징

인프런 양승화님의 그로스해킹 수업을 듣고 작성합니다. 잘못된 내용이 있으면 댓글로 알려주세요 🙌🏻 AARRR 에서 3R중 하나인 Retention 에 대해 알아보자. * 나중에 개인적으로 참고하는 용도로 작성해서 설명없이 최대한 간단하게 작성했습니다. Retention 3가지 계산 방법 개념 수식 장점 단점 보완 및 활용 Classic Retention 특정일 (N)에 컴백한 유저 비율 Day N 이용자 / Day 0 에 처음 이용자 쉬움 - 일단위 데이터 모두 쌓아놔야함 - 특정일 노이즈에 취약 ex) user 5 - daily 사용이 중요한 서비스에서 사용하기 적합 - 기준일 N을 6일,7일,8일등 다양하게 두고 평균치 구해서 노이즈 줄이기 Range Retention 특정기간에 컴백한 유저 비율 R..

반응형