전체 글
-
[프로그래머스] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기Data miner/Developer 2023. 6. 29. 23:56
문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/157339 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블에서 자동차 종류가 '세단' 또는 'SUV' 인 자동차 중 2022년 11월 1일부터 2022년 11월 30일까지 대여 가능하고 30일간의 대여 금액이 50만원 이상 200만원 미만인 자동차에 대해서 ..
-
[SQL] SUB QUERYData miner/Development log 2023. 4. 6. 16:11
서브 쿼리의 종류 - 서브쿼리는 QUERY OF QUERY 로 메인 쿼리의 각 부분 파트에 또 다른 쿼리문이 있는 형태다. 별도로 괄호로 묶은 쿼리 블록으로 표현된다. SQL 옵티마이저는 서브쿼리를 참조하는 메인 쿼리 블록을 포함하여, 쿼리 블록 단위로 쿼리 최적화를 수행한다. 1) SELECT 문에 SUB QUERY가 있는 경우 - 스칼라 서브쿼리라고 불림 - 하나의 레코드 당 하나의 값을 반환하는 서브 쿼리 - 주의할 점 : 데이터 양이 많으면, 실행속도가 느려짐 2) FROM 문에 SUB QUERY가 있는 경우 - 테이블 처럼 사용됨. 인라인뷰 서브쿼리라고 불림 ex) SELECT c.고객번호, c.고객명 FROM 고객테이블 c, (SELECT 고객번호, avg(거래금액) 평균거래 ,min(거래금액..
-
[SQL] JOIN TUNING / NL JOINData miner/Development log 2023. 4. 3. 15:39
JOIN 은 SQL에서 가장 많이 활용되는 기본 명령어이다. 두 테이블을 공통값을 활용하여 병합하여 볼 수 있기 때문이다. JOIN의 테이블 병합 방식에 따라 INNER / OUTER (LEFT, RIGHT, ALL) / CROSS / Self JOIN 4가지 종류로 나뉜다. - INNER JOIN (두 테이블의 교집합 / 공통값이 매칭되는 경우에만 조회) - LEFT JOIN (왼쪽 테이블 기준 데이터 조회) - RIGHT JOIN (오른쪽 테이블 기준 데이터 조회) - FULL JOIN (양쪽 테이블 기준 데이터 조회, LEFT/RIHGT JOIN의 성질을 모두 다 가지고 있음) - CROSS JOIN (두 테이블의 행을 결합하는 명령어, A의 n행과 B의 m행을 n*m으로 결합) - SELF JOI..
-
[parquet] 파일 나눠서 저장하기Data miner/Development log 2023. 3. 25. 19:55
parquet은 hadoop에서 열 우선으로 열의 연속 요속가 메모리에 나란히 저장되는 데이터 포맷형태다. csv파일이 행 중심 데이터 저장 포맷형태로, sample 중심이라면 parquet은 피처(열) 중심이라고 볼 수 있다. 대용량 데이터를 처리하는데 있어서 하나의 대용량 데이터 파일을 여러개의 parquet의 파일로 나눌 때 사용하는 함수는 다음과 같다. #split the data import dask.dataframe as dd train = dd.read_parquet('./나누고자하는 파일 경로 입력/train.parquet') train.repartition(6).to_parquet('./나눈 파일 저장하고자 하는 경로 입력/split/') # 나누고자 하는 파일 개수, N 숫자 repar..
-
[A/B testing] 예시 프로젝트 1Data miner/Kaggle Notetaking 2023. 1. 18. 12:07
"새롭게 런칭한 웹페이지의 고객 전환율이 이전 웹페이지에 비해 나아졌을까?" 실제로 새롭게 수정한 웹페이지의 화면을 서비스에 배포하기 전에, 이 방식이 이전보다 나은 방식인지를 통계적으로 유의한지 검증하는 작업이 필요하다. A/B testing은 그것을 검증하는 방법이다. 1. 실험설계하기 1-1. 가설설정하기 귀무가설 : "수정된 웹페이지 화면이 고객 전환율에 의미있는 영향을 끼치지 못한다/ 고객 전환율 향상이 없다" 대립가설 : "수정된 웹페이지 화면이 고객 전환율에 의미있는 영향을 준다/ 고객 전환율 향상이 있다 (예. 2%의 향상)" 양측검증, 왼/오 단측검증의 방법이 있으며, 이번 포스팅에서는 양측 검증*에 대해 다루고자 한다. 귀무가설 혹은 대립가설을 채택할 것인가 기준이 되는 값이 그 유명한..
-
[Dataset] OTTO – Multi-Objective Recommender SystemData miner/Kaggle Notetaking 2022. 11. 30. 16:05
- 데이터셋 소개 (링크 : https://www.kaggle.com/competitions/otto-recommender-system/data?select=test.jsonl) OTTO – Multi-Objective Recommender System | Kaggle www.kaggle.com 본 데이터셋의 모델링 목표는 이커머스 클릭, 카드 물품 추가 항목 및 순서를 예측하는 것이다. 따라서 우리는 이전 세션의 로그들을 참고하여 다양한 목적의 추천 시스템을 구축해야 한다. Train Data에는 이커머스 세션 전체 데이터가 있다. Test 단계에서는 각각의 session별 aid(article id/제품 id)를 각각의 제품 로그 데이터(event type)와 결합하여 예측해야 한다. (ex. ses..
-
[torch] torch.einsum 함수 이해하기Data miner/Development log 2022. 11. 15. 21:39
torch.einsum함수는 Transformer 논문에서 query의 값과 query에 position embedding값을 연계시키는 부분에서 사용되었다. 이에 대해서 한 번 정리하고 가는 것이 좋을 것 같아 포스팅을 하게 되었다. relative_position_scores = torch.einsum("bhld,lrd->bhlr", query_layer, positional_embedding) 공식문서에 따르면, einsum() 함수는 input operands의 곱을 합하는 방식이며, Einstein 합 방식에 기반하여 output matrix 차원을 만드는 방식이다. 아래의 그림과 같이 operands에 속하는 텐서들의 차원이 순서대로 첫번째 요소에 대응하며, '->' 이후는 연산 이후의 out..