본문 바로가기

분류 전체보기136

프로그래머스 데이터분석 데브코스 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.
캐글 playground spaceship titanic 두번째로 도전했던 문제였다. 첫번째로 도전한건 건강상태를 보고 흡연 여부를 분류하는 문제였는데, 이건 분류모델의 기능, 각종 메소드와 손실함수 평가지표가 뭐하는녀석인지도 모른 채 퍼셉트론만 잔뜩 만들어 진행했었다. 그 다음으로 진행한 space titanic 문제는 그래도 matric이 뭘 계산하는지 과적합 났을때 어떻게 해야하는지 스케일러는 뭘 써야하는지 고민해보고 엄청 복잡한 딥러닝 모델도 만들어보고 쉽고빠른 랜덤포레스트 모델도 사용해 보았다.결측치를 밥먹듯이 삭제하는게 아니라 데이터 분포를 살펴보고 채워넣는 방법도 배웠다. 원 핫 인코딩을 진행했더라면, ordinary 인코딩 할 때 인코딩 된 숫자를 조금 더 신경썼더라면 좋았겠지만df_train["RoomService"].fillna(0, inpl.. 2024. 5. 13.
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 lv2 연도별 대장균 크기의 편차 구하기 어렵게 푼건지 lv2 치고는 쿼리의 양도 많고 조금 복잡했다with st as (select year(DIFFERENTIATION_DATE) as year, max(size_of_colony) as year_devfrom ecoli_datagroup by 1)select s.year, max(s.year_dev)-max(c.size_of_colony) as YEAR_DEV, c.idfrom ecoli_data cjoin st s on s.year = year(c.DIFFERENTIATION_DATE)group by 1, 3order by 1 asc, 2 asc즐겨 사용하던 date_format이 아닌 year를 사용해야 했다.이 부분을 제외하면 문제 자체가 괴랄한 느낌은 아니었다.다만 같은 테이블 jo.. 2024. 4. 30.
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.
GPT통해서 Metric 컨닝페이퍼 만들기 ROC Curve, Confusion Matrix 계산, 출력 예시코드from sklearn.metrics import roc_curve, auc, confusion_matrix, ConfusionMatrixDisplay# ROC Curvefpr, tpr, thresholds = roc_curve(y_test, y_proba[:, 1], pos_label=1)roc_auc = auc(fpr, tpr)# Confusion Matrixcm = confusion_matrix(y_test, y_pred)disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=iris.target_names)# ROC Curve visplt.figure(figsize=.. 2024. 4. 26.