본문 바로가기

전체 글

(53)
[MySQL] (Medium) Acceptance Rate By Date 문제: https://platform.stratascratch.com/coding/10285-acceptance-rate-by-date?code_type=3 나의 풀이: with tb as ( select user_id_sender , user_id_receiver , min(date) as date , count(*) as cnt from fb_friend_requests group by user_id_sender, user_id_receiver) select date , count(case when cnt = 2 then 1 end) / count(*) as rate from tb group by date order by date; 그루핑을 어떻게 할 건지 고민을 조금 하다가 결국 풀었당!! 😊 하지..
감으로만 일하던 김 팀장은 어떻게 데이터 좀 아는 팀장이 되었나 (3) Part 2. Applications - 데이터로 비즈니스를 혁신하다 Ch 13. 추천 시스템: 회사 온라인 쇼핑몰의 추천 화면을 바꿔서 매출을 높이다 추천 시스템이 추천하는 것 (대분류) 베스트셀러 ← 가장 효과가 좋다 (소분류) 대체재: 이 상품을 봤던 다른 사람이 많이 보거나 구매한 상품 (중분류) 보완재: 이 상품을 산 사람이 추가로 산 상품 먼저 베스트셀러를 보여주면 고객이 관심있는 상품을 클릭→ 아래에 대체재, 보완재 추천 기본적으로 같은 카테고리 안에서 추천할 때 가장 효과가 좋다 → 카테고리가 잘 갖춰져있어야함 Ch 14. 협업 필터링: 구매 정보를 분석하여 고객마다 추천 제품을 달리 보여주다 추천 시스템 정보 필터링 하이브리드 콘텐츠 기반 → 과거에 주로 사용. 키워드 기반 추천 협업 필..
감으로만 일하던 김 팀장은 어떻게 데이터 좀 아는 팀장이 되었나 (2) Part 2. Advanced - 다른 부서의 데이터 문제를 해결하다 Ch 6. 로지스틱 회귀 재구매 여부 ⇒ 분류 문제?! 결과 유형 2가지: 수치형, 범주형 범주형 → 분류 문제 (수치형처럼 보이는 범주형 주의 ex. 등급, 우편번호, 순위) 수치형 → 회귀 문제 1등급 2등급처럼.. 재구매 확률도 분류문제로 풀어야한다고! 재구매 한다/ 안 한다 두 가지 경우 밖에 없지만 재구매 할지 안 할지 결과를 확실히 알 수 없으니까 확률로써 보여줌 회귀 방법론 선형 회귀 linear regression t-검정, 분산 분석 분류 방법론 로지스틱 회귀 logistic regression 판별 분석 (discriminant analysis), 서포트 벡터 머신 (SVM), 의사결정나무, k-최근접 이웃 (k-ne..
감으로만 일하던 김 팀장은 어떻게 데이터 좀 아는 팀장이 되었나 (1) Part 1. Basic - 김 팀장, 데이터 분석으로 첫 보고 하다. Ch 1. 예측과 추론 💡 데이터를 분석하는 목적 두 가지 예측: 결과를 맞히는 것 추론: 원인과 결과 사이의 관계를 분석하는 것 추론의 결과가 예측이고, 예측 과정이 추론 아닌가요? 예측에서는 관계보다 결과를 정확하게 맞히는 것이 더 중요하다. 오차를 최소화 하는 것을 목적으로 함 (정확한 결괏값) 예시) 신규 매장을 ‘열지 말지’를 결정해야 한다면 매출을 예측하는 것이 중요함 추론에서는 원인과 결과 간 관계에 더 초점을 둔다. x1, x2, xn의 변화에 따른 y의 변화를 이해하는 데 관심이 있음 예시) 이미 신규매장을 열기로 결정했다면, 매출을 높이는 요인이 무엇인지 분석해서 매출을 높이는 방안을 찾는 것이 중요함 우산을 든 사..
[MySQL] (Medium) Risky Projects 문제: https://platform.stratascratch.com/coding/10304-risky-projects?code_type=3 나의 풀이: select p.title , p.budget , round((sum(e.salary)/365) * datediff(p.end_date, p.start_date), 0) as prorated_employee_expense from linkedin_projects p join linkedin_emp_projects ep on p.id = ep.project_id join linkedin_employees e on ep.emp_id = e.id group by title, budget; 이것도 한번에 맞출 줄 알았는데.. ;_; 내 아웃풋과 expected..
[MySQL] (Medium) New Products 문제: https://platform.stratascratch.com/coding/10318-new-products?code_type=3 나의 풀이: select company_name , (net20 - net19) as total_launch from ( select company_name , count(case when year = 2020 then 1 else Null end) as net20 , count(case when year = 2019 then 1 else Null end) as net19 from car_launches group by company_name) tb; 꺄앙 오랜만에 한번에 맞춰서 기분이 좋당 그래도 문제를 이해하는데 시간이 좀 걸렸다.. 이해하고 보니 웃긴 건 'the..
[MySQL] (Medium) Finding User Purchases 문제: https://platform.stratascratch.com/coding/10322-finding-user-purchases?code_type=3 나의 풀이: 못 풀었땅,,ㅠ 나의 잘못된 접근 with first_purchase as ( select user_id , min(created_at) as first_purchase from amazon_transactions group by user_id) , second_purchase as ( select user_id , min(created_at) as second_purchase from amazon_transactions t where created_at > (select first_purchase from first_purchase f ..
[MySQL] Leetcode - 1907. Count Salary Categories 문제: https://leetcode.com/problems/count-salary-categories/description/ 나의 풀이: select category , count(*) as accounts_count from ( select case when income 50000 then 'High Salary' else 'Average Salary' end as category , account_id from accounts) sub group by category 근데 이렇게 하면 틀림!! 왜냐하면 문제는 케이스에 해당하는 값이 없을 경우에 0값을 보고싶은 건데 이렇게 하면 카운트 할 수 없는 카테고리는 결과값에서 제외가 된..