우리아이 영양 간식

공개된 블로그지만, 아무도 보지 않았으면 하는 블로그

전체 글 39

2021-10-16 데이터야 놀자 회고

가장 인상깊은 3가지 1. SQL 을 좀더 숙달해야겠다. > https://programmers.co.kr/learn/courses/30/parts/17042 프로그래머스 SQL 문제 다 풀어봐야지 2. A/B 테스트 및 A/B 테스트시 함정 케이스를 공부해야겠다. 3. 데이터 `분석` 기본기를 쌓아야 겠다. --------------------------------------------------------------------------------------- [ 데이터 분석 기본기 ] 저도 많이 고민했었던 부분이네요! 프로덕트 분석을 시작한 초기에 가장 도움이 된 자료는 Amplitude - Product Analytics Playbook 입니다 (https://www.productanalytics..

카테고리 없음 2021.10.17

08-23 회고 : 의심 상위 그룹에서의 성능

앞서 여러 모델을 준비했었다. Basic V1 V2 V4 실제로 좋은 모델이란 무엇일까? 보편적인 성능 평가 척도인 AUC 가 있을 것이고, 다른 평가 척도인 AUCPR, Recall 등이 있을 것이다. 그러나 현재 회사에서는 전체 테스트 데이터셋을 10개 그룹으로 나누고 Fraud Proba 내림차순으로 정렬한다. 그리고 그 중에서 상위 1~2개 그룹에 대해서만 집중적으로 fraud 검증을 한다. 현실적으로 만약에 5만건의 테스트 데이터가 있다면 모든 5만 건에 대해서 fraud 확인을 할 수 없기 때문이다. ============= 자.. 그래서 새롭게 만든 모델이 얼마나 개선됐는지 평가 척도로, 의심 상위 1~2개 그룹에 대해서 실제 라벨의 존재 퍼센트를 보자. Basic : 8% V1 : 8.5%..

카테고리 없음 2021.08.23

08-20 회고 : Custom Loss Function, 과대 추정하는 경향

하하.. (감사하게도 팀장님께서 부여한) 연이은 휴가도 있었고, 딱히 회고를 하지 않았다. ====================== 1. 커스텀 Loss Func 로 효과를 봤다. 특이한 점은 AUC 자체는 큰 변화가 없는데, precision, recall 값이 큰 차이를 보였다. 즉, 모델의 bias가 변했다는 것이다. 예를 들자면, 임밸런스한 데이터셋으로 학습을 하면, 99%가 정상 유저고 1%가 비정상 유저라면, 모델은 새로운 데이터에 대해서 정상 유저라고 판단할 경향이 높다. 왜냐하면 정상이라고 찍으면 99%가 정답이니까. 그런데 커스텀 로쓰로 이러한 판단에 대해서 더 큰 페널티를 준다면 ( ex. Focal Loss, or Confusion Matrix 에 따라서 penalty에 차등을 줌 )..

카테고리 없음 2021.08.22

[2021-08-13] 17일차 회고 ( Info. Value, Custom Loss )

1. 단순히 Info Value ( 이하 줄여서 IV ) 로 변수 선택하기 보다, 앞서 Random Forest (RF) 로 구한 중요도 높은 변수를 섞어서 변수 선택을 했다. 예를 들어서 IV 상위 30개, RF 상위 20개 변수 골라서 중복 5개가 있어서 총 45개 변수를 사용했다. 2. CatB 모델로 하이퍼파라미터 튜닝 없이 학습을 진행했다. - 기존 RF 모델이 AUC가 79% 쯤 나온다. CatB는 81.x % 가 나온다. 3. 더 성능을 높이기 위해 하이퍼파라미터 튜닝 대신, 커스텀 Loss Function을 도입했다. - Focal Loss ( gamma : 2 ) - Confusion Matrix 별 Loss 를 약간 더 주고 덜주고 v1 ( True Neg 케이스는 로스(페널티)를 덜 ..

카테고리 없음 2021.08.13

[2021-08-16] 16일차 회고 ( WOE, Info Value )

1. 변수 600개 가운데 ( 예전부터 하면 좋겠다 싶었던 ) WOE, Info. Value 를 내림차순으로 해서 상위 n개 피쳐를 사용해 모델링을 해보면 어떨까 싶었는데, 직접 해봤다. 2. n개 피쳐 선택 -> 결측치 채우기(KNN impute 사용, 카테고리 변수는 dummy화 해서 ex. Y가 1 이면 1로, N이 1이면 0으로, 둘 다 0이면, Y,N 중에 개수가 더 많은 값으로 1로 채움 ) -> 모델 피팅 3. 앗, 만들고보니 AUC가 98% ?? 나중에 선임에게 물어보니 학습때 들어가면 안되는 타겟 인코딩된 피쳐가 있었다;; ============= 1. 내일 다시 타겟 인코딩된 피쳐 제거하고 다시 학습해봐야 한다. 2. 카테고리형 변수가 많아서 CatBoost 를 사용할 듯 하다. 3. ..

카테고리 없음 2021.08.12

[2021-08-11] 15일차 회고

1. H2O 로 XGB, GBM 튜닝한 모델 소개 2. 지금 우리(인턴)들에게 주어진 업무들은 스터디에 가까운 것이라, 당장 적용가능한 것 보다는 성능을 매우 크게 올릴 수 있는 방법에 대해서 고민해볼 것을 당부 ( 예 : TabNet 으로 성능이 좋게 나오는지 해보고, 그다음에, 해당 모델을 Java app 으로 만들 수 있는지 여부가 중요 ) 3. 다음에 시도 예정인 오버샘플링, 스노클 같은 방법에 관심이 많아 보였다. ㄴ 그리고 생각해보면 AUC로 예측한 다음, F2 로 추가로 걸러내면 어떨까? ================== 개인적인 회고 1. 너무 많은 하이퍼 파라미터를 튜닝하다보니, 성능 향상 속도가 너무 느린 단점이 존재한다. 2. 중요 파라미터를 튜닝하여 빠르면서도 더 높은 성능을 추구하..

카테고리 없음 2021.08.11