분류 전체보기

    [추천시스템] 성능 평가 지표(pyspark) - Precision, Recall, Map, NDCG

    추천시스템에서 랭킹하는 방식으로 좋은 추천(랭킹)을 했는지에 대해 정량평가 할 수 있는 4가지 지표를 정리해보고자 한다. * 이하 코드는 함께 인턴했던 뢀뢀씨❤️와 함께 작성했습니다! 뢀뢀씨 보고 있다면 댓글 달아주세요 1. Precision/ RecallPrecisionK 개 추천했을때, 추천결과가 hit한 precision 평균을 의미순서가 중요하지 않다.모델이 10개를 추천했을때 사용자가 몇개를 봤냐 사실 pyspark에서는 프리시즌을 계산하는 모듈을 제공하는데 생각했던 수식과의 차이 때문에 직접 udf를 제작하게되었다. pyspark 모듈과 udf의 차이는 관련도(relevance)를 매기는 기준이 다르다. pyspark : labeludf : label[:k]예시) prediction : [a,..

    [Spark DEBUG] partiton path load 오류

    문제 상황 참조하는 테이블은 컬럼 기반의 데이터 저장 방식인 parquet 포맷. max partition이 25개로 설정되어 있음. path를 확인하는 시점과 데이터프레임을 load하는 시점에서의 리스트가 달라 path가 없다는 오류 발생. -> 25 제한에 따라 가장 오래 된 파티션이 삭제 됨으로 해당 파티션이 없다는 오류 발생 시도한 것들 기존 방법 (기존 코드를 그대로 따라 갔었는데, 해당 방법은 전체 메타데이터를 로드하는 방법임을 깨달음 stackoverflow) 배열로가져오고 맥스값 가져오기. collect가 한번 로드되면 목록 외로 데이터 전체가 로드 되는 줄 알았는데 아니었음. max_updatetime = spark.sql("""select max(updatetime) from db.ta..

    [글또] 8기를 시작하며

    글또를 시작하게된 계기 작년에 같은 개발 동아리에 속해있는 언니가 글또를 소개시켜주어서 글또를 알게 되었다. 이후에 서칭을 하다보면 글또 분들의 글을 많이 발견할 수 있어 더 흥미가 생겼고, 글또 분들의 글은 일목정연하게 정리가 되어있어 인상깊었던 적이 많았다.나 역시 평소에 블로그에 글을 많이 작성하기는 했지만, 양질의 글을 작성하지 못했기 때문에 더욱더 글또 라는 단체가 궁금해졌다. 평소에 커뮤니티에 대해 긍정적인 입장이었고, 글또를 소개시켜줬던 언니도 커뮤니티에서 만났기에 글또에 들어와서 더 다양한 분들과 교류를 해보고 싶었다. 또한 글또는 일반적인 소통 외로 내 글에 대한 피드백을 받을 수 있고, 다른 분들의 글을 접해볼 수 있다는게 매우 큰 이점이라 생각한다. 이처럼 내가 다른 분들께 도움이 될..

    git commit 되돌리기 (Push 이후 원복)

    1. git commit log 확인 2. reset (원하는 시점의 커밋으로 되돌리기) 3. revert (특정 시점 이후의 변경 사항 되돌리기) 4. force push (repo에 반영) : 원복하게 되면 푸시했던 커밋은 사라짐 ### git log 확인 (2개의 커밋 히스토리를 확인하겠다) git log -2 --pretty=format:"%h - %an, %ar:%s" >> 8e98dj1 - >> 1h20jd3 - # 원복하고 싶은 commit it 가 1h20jd3인걸 확인함. ### 1h20jd3로 reset 하기 git reset 1h20jd3 ### revert #reset을 하게되었을 경우 원래 삭제하고 싶었던 수정상태로 돌아가게된다. git status # 확인해보면 modified:..