본문 바로가기

프로그래머스59

뒤늦게 써보는 데이터분석 데브코스 2기 후기 요약1. 취직이 급하거나, 현업 수준으로의 성장을 원한다면 실망할것.2. 정말 단순 호기심, 데이터 섹터를 가볍게 경험해보고 싶다면 만족할것.  올해 가장 후회되는 일이 있다면 이 과정에 국비지원 찬스를 날린게 아닐까 싶다.2기때보다 많은게 바뀌었을수도 있지만취직이 급한사람, 데이터 분야로 빠른 취직을 원하는 사람이라면 듣지 않는걸 추천한다.강의는 80% 이상이 재사용 강의이며 데이터 분석에 대한 심도있는 과정이 아닌데이터 관련 섹터의 전체적인 찍먹이다.단순 호기심으로 듣지말라는 문구가 써져있지만 단순 호기심이 아니라 그 이상, 현업수준을 기대한다면 무조건 실망할것이라고 생각한다.한쪽에서는 SQL만 알아도 된다고 하면서도 다른쪽에서는 ML/DL 강의가 진행된다. 프로젝트 또한 문제가 많았다.분석을 해야하.. 2024. 10. 15.
나는 왜 프로젝트를 두번이나 엎었는가. 최근 데이터 분석 프로젝트를 진행하며 엄청 좋은 기획이었음에도 불구하고 두 번이나 엎었다. 처음 엎은것은 분석이 아닌 머신러닝 + 웹 프로젝트가 되어버릴 것 같았고, 데이터를 구하고 처리하기에 시간이 촉박했기에 팀원들과 상의 후 플랜 B를 진행하기로 했다. 음악 관련, 운세 관련 사용자 로그데이터를 얻는건 사실상 불가능했다. 그래서 비교적 많이 뿌려져 있는 공공데이터를 이용하여 노인 관련 분석 프로젝트로 방향을 틀었다.하지만 여기에서도 난관에 부딪혔다. 품질이 좋은 데이터는 직접 관련 기관에 가서 분석을 하고 결과만 가지고 나와야 했다. 그 외에는 분석을 하기에는 이미 특정 목적을 위해 수집된 데이터들이었다. 노래 데이터는 크롤링이라도 하면 메타데이터를 구할 수 있었지만 이번 같은 경우에는 오프라인 기반.. 2024. 6. 11.
프로그래머스 데이터분석 데브코스 15-2(A/B test) 왜 A/B Test를 하고 왜 애자일 A/B Test가 필요한가 A/B Test 왜?? 하?? 나?? 요 ??비즈니스 관련 지표가 개선되는지 객관적으로 측정하기 위함가설 기반의 실제 사용자 대상 비교위험을 최소화 하기 위함아무리 사용자 설문 등이 좋아도 실제 사용자들이 어떻게 반응할지는 알 수 없음처음에는 작은 퍼센트의 사용자들에게만 새 기능을 노출시키고 문제가 없으면 퍼센트 증가왜 애자일 해야함?최근 경험했던것처럼 결과물이 이상해질수도 있음.(3차 프로젝트 EDA, 전처리 과정)잘못됨을 빠르게 파악하지 못할 가능성A/B테스트 결과의 빠른 반영을 위해 전체적인 A/B Test 프로세스가설설정 (가볍게)내부테스트(QA)일부 사용자에게 테스트테스트 하는 사용자 비율 늘려감A/B 테스트 결과로 중단, 지속 결.. 2024. 5. 21.
ML 예측 모델 구현 프로젝트 셀프리뷰 xgboost 모델 구현, 학습 notebookhttps://www.kaggle.com/code/arinmu/pubg-xgb/notebook pubg xgbExplore and run machine learning code with Kaggle Notebooks | Using data from PUBG Finish Placement Prediction (Kernels Only)www.kaggle.com EDA, 전처리 과정 notebookhttps://www.kaggle.com/code/arinmu/pubg-eda pubg edaExplore and run machine learning code with Kaggle Notebooks | Using data from PUBG Finish Placement.. 2024. 5. 15.
SQL lv3 즐겨찾기가 가장 많은 식당 정보 출력하기 with f_cnt as(select food_type, max(favorites) as favoritesfrom rest_infogroup by 1)SELECT r.food_type, r.rest_id, r.rest_name, max(r.favorites)from rest_info rjoin f_cnt f on f.food_type = r.food_type and f.favorites = r.favoritesgroup by 1order by 1 desc 다른문제에서도 겪었던 문제인데 group by 사용했을 때 매핑이 제대로 되지 않아 따로 with문이나 서브쿼리를 이용하여 매핑 진행한 후에 다시 비교하여 일치하는 레코드들만 출력하는 방식으로 문제를 해결했다. 2024. 5. 3.
SQL lv4 언어별 개발자 분류하기 2진법으로 해놓은것을 보니 비트연산자를 사용해야만 할 것 같았다.문제 분류가 group by 로 되어있긴 했는데 group by 거의 안쓰고 풀었다...with fe as(select category, sum(code) as codefrom skillcodesgroup by 1having category = "Front End"),c as (select name , codefrom skillcodeswhere name = "C#"),py as(select name, codefrom skillcodeswhere name = "Python")select case when d.skill_code&f.code and d.skill_code&p.code then "A"when d.skill_code&c.code .. 2024. 5. 2.
SQL lv3 물고기 종류 별 대어 찾기 with mf as (select nn.fish_type, nn.fish_name, max(ii.length) as ltfrom fish_info iijoin fish_name_info nn on nn.fish_type = ii.fish_typegroup by 1, 2)select i.id, mf.fish_name, mf.lt as lengthfrom fish_info ileft join mf mf on (i.length = mf.lt and i.fish_type = mf.fish_type)where mf.lt is not nullorder by 1 with절 사용하지 않으면 id와 함께 group by 해야해서 id 별 길이를 출력해버린다.그래서 id를 제외하고 join 시 길이와 이름을 매핑시키기 위.. 2024. 4. 30.
SQL lv4 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 문제부터 이해하기 쉽지 않아서 간만에 엄청 오래걸리고 엄청 고민한 문제였다.같이 SQL 스터디 하는 분의 도움을 받아서 겨우 해결했다. 정답코드는 아래와 같다.WITH DIFF AS ( SELECT DISTINCT a.CAR_ID, h.END_DATE, h.START_DATE FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY h JOIN CAR_RENTAL_COMPANY_CAR a ON a.CAR_ID = h.CAR_ID WHERE END_DATE >= '2022-11-01' AND START_DATE = 500000 AND 30 * (c.DAILY_FEE - c.DAILY_FEE * t.DISCOUNT_RATE * 0.01) 처음에는 DIFF 테.. 2024. 4. 29.
SQL lv3 카테고리 별 도서 판매량 집계하기 SELECT B.CATEGORY AS CATEGORY, sum(B_S.SALES) AS TOTAL_SALESFROM BOOK BINNER JOIN BOOK_SALES B_S ON B.BOOK_ID = B_S.BOOK_ID where date_format(B_S.SALES_DATE, "%m") = 1GROUP BY 1ORDER BY 1 asc 1월의 판매량을 구하기 위해 where 절에서 date_format사용해서 필터링 진행했다.카테고리별 합계를 내기 위해 group by와 판매량에 sum 사용했다.카테고리 명 기준으로 오름차순 정렬했다. 2024. 4. 24.