전체 글 (34) 썸네일형 리스트형 [ SQL 레시피 ] 시계열 기반으로 데이터 집계하기 분석 현장에서는 시계열로 매출 금액, 사용자 수, 페이지 뷰 등의 다양한 데이터를 집계하는 경우가 많다. 예를 들어 매일의 매출을 단순하게 수치로만 확인하면 장기적인 관점에서 어떤 경향이 있는지 알 수 없다. 하지만 시계열로 매출 금액을 집계하면 어떠한 규칙성이나 변화폭을 확인할 수도 있다, 이번 포스팅에서는 데이터의 집약뿐 아니라 변화를 이해하기 쉽게 표현할 수 있는 리포팅 방법과 관련된 내용을 알아볼 것이다. - 샘플 데이터 2014~2015년까지의 매출을 나타낸 purchase_log테이블을 샘플로 한다. 1. 날짜별 매출 집계하기 날짜별 매출과 평균 구매액을 집계해보자 select dt , count(*) as purchase_count , sum(purchase_amount) as total_a.. [ SQL레시피 ] 여러 개의 테이블 조작하기 데이터 분석에서는 여러 개의 테이블을 기반으로 데이터를 분석해야 하는 경우가 많다, 그 경우들과 이를 SQL로 가독성 높고 간단하게 작성하는 방법, 부족한 데이터를 보완하는 방법 등을 알아보자 😒여러 개의 테이블을 기반으로 데이터를 분석해야 하는 경우 - 업무 데이터를 사용하는 경우 업무 데이터는 RDB를 사용해서 관리하는 경우가 많다. 여기에서는 일반적으로 데이터를 정규화하고 여러 테이블을 나누어서 관리한다, 따라서 데이터 분석을 할 때는 여러 테이블을 기반으로 정보를 추출해야한다. - 로그 데이터를 사용하는 경우 다양한 행동을 기록하는 하나의 거대한 로그파일이 하나의 테이블에 저장된 경우. 여러 처리를 실행하려면 여러 개의 select구문을 조합하거나 자기 결합해서 비교해야한다. 1. 여러 개의 테이.. [ SQL 레시피 ] 하나의 테이블에 대한 조작 앞선 포스팅에서는 테이블의 레코드 하나하나에 대한 조작 방법을 배웠다. 이번 포스팅에서는 대량의 데이터를 집계하고, 몇가지 지표를 사용하여 데이터 전체의 특징 파악할 수 있도록 하는 데이터 집약과 가공법을 알아볼 것이다. - 데이터 집약 SQL에는 집약 함수가 존재한다. 레코드 수를 계산하거나, 레코드의 합계, 평균, 최대, 최소 등을 계산해주는 역할 등을 한다. - 데이터 가공 테이블의 형식이 집계에 적합하지 않은 경우 서비스를 구축하기 위해 설계된 업무 데이터를 사용해야하는 경우 이들을 분서하기 쉬운 형태로 가공하는 방법을 알아볼 것이다. 1. 그룹의 특징 잡기 예제로 사용할 상품 평가(review) 테이블 상품(product_id)에 대한 사용자 평가(score)가 저장된다. 🫥 집계함수 알아보기 .. [ SQL레시피 ] 여러 개의 값에 대한 조작 🫠 새로운 지표 정의하기 왜 기존의 지표를 조합해서 새로운 지표를 만들어낼까? "방문자 수" 같은 단순 지표 하나만으로도 대략적인 성과를 알아보는 것은 물론 가능하다. 하지만 기존의 지표를 조합하여 / 를 구하면 사용자 한 명이 페이지를 몇 번이나 방문했는가?라는 새로운 지표를 계산할 수 있다. 이는 단순 숫자로 비교할 수 있던 큰 데이터에서 개인별 또는 비율 등의 지표를 계산하여 다양한 관점에서 데이터를 바라볼 수 있게한다. 이제 여러 개의 값을 어떻게 조작하는지 알아보도록하자 1. 문자열 연결하기 리포트를 작성할 때는 용도에 맞게 여러개의 데이터를 연결해서 다루기 쉬운 형식으로 만드는 경우가 많다. 아래의 샘플 데이터로 주소를 연결해보자 concat함수를 사용하여 각 컬럼의 데이터를 .. [ SQL레시피 ] 하나의 값 조작하기 하나의 값을 데이터분석에 적합한 형태로 가공하는 방법에 대한 포스팅이다. 🤔 데이터를 가공해야 하는 경우 1. 다룰 데이터가 데이터 분석용으로 되어있지 않은 경우 제품번호와 같이 코드값과 이에 대한 의미를 다른 데이터를 다른 테이블에서 관리하는 경우나 여러개의 정보가 하나의 문자열로 저장되어 있는 경우를 예로 들 수 있다. 2. 비교 가능한 상태로 만들고 오류를 회피하기 위한 경우 업무 데이터와 로그 데이터의 형식을 통일해두거나 오류를 발생시킬 수 있는 NULL이 포함된 데이터를 가공할 경우를 예로 들 수 있다. - 코드 값을 레이블로 변경하기 다음 데이터처럼 회원 등록 때 사용한 장치를 저장하는 컬럼이 코드값으로 저장되어 있다. 1 : 데스크톱, 2 : 스마트폰, 3: 애플리케이션 코드를 해당하는 레이.. [ 혼공머신 ] 주성분 분석: 차원 축소 알고리즘 PCA 모델 만들기 이전 포스팅에서는 k-평균 군집 알고리즘에 대해 알아봤다. 이번 포스팅에서는 주성분분석(PCA)에 대해 알아볼 것이다. 예전에 비지도 학습의 방법에는 2가지 방법이 있다고 했었다. 바로 군집과 차원축소인데, 주성분분석은 차원축소에 해당한다. - 차원 2차원 배열 이상 : 축 = 차원 1차원 배열(벡터) : 원소의 개수 = 차원 - 차원 축소 데이터를 가장 잘 나타내는 일부 특성을 선택하여 데이터 크기를 줄임으로써 학습 모델의 성능을 향상시킬 수 있는 방법 - 주성분(Principal Component Analysis) 쉽게 말해서 데이터의 분산이 큰 방향을 찾는 것이다. 그림을 보면 샘플 데이터 s(4,2)가 점으로 존재하는데, 이 데이터를 저 직선에 수직으로 내려보면 4.5라는 값 하나로 표현될 수 있.. [ 혼공머신 ] k-평균 알고리즘 작동 방식을 이해하고 비지도 학습 모델 만들기 이전 포스팅에서는 군집을 이용한 과일 분류를 했었다. 이번 포스팅에서는 k-평균 군집 알고리즘에 대해 알아볼 것이다. 이전에 배운 내용에서는 순서대로 100개는 사과, 100개는 파인애플, 100개는 바나나라는 것을 알고 있었다. 그렇지만 실제 비지도 학습을 할 때는 어떤 과일이 들어 있는지 알지 못한다. 이 때 사용할 수 있는 것이 k-평균 알고리즘이다. [ k- 평균 알고리즘 ] k- 평균 알고리즘의 작동 원리는 다음과 같다. 1) 그림 1과 같이 무작위로 k(미지수)개의 클러스터 중심을 정한다. 우리는 k를 3개로 지정한다. 2) 각 샘플에서 가장 가까운 클러스터 중심(그림에선 빨간점)을 찾아 해당 클러스터의 샘플로 지정 저 점을 클러스터 중심 or 센트로이드라고 부른다. 3) 클러스터에 속한 샘플.. [ 혼공머신 ] 흑백 이미지 분류 방법과 비지도 학습, 군집 알고리즘 이해하기 이전 포스팅들이 지도 학습에 대해서 다뤘다면 이번 포스팅에서는 비지도 학습에 대해 알아볼 것이다. 과일의 사진만을 보고 종류별로 분류해야하는 상황이라고 가정해보자 구체적인 정답 데이터가 없는 상황에서 어떻게 분류해야할까? 이럴 때 사용하는 알고리즘이 비지도 학습이다. [ 사과, 파인애플, 바나나를 분류해보자 ] 비지도 학습의 2가지 방법은 군집, 차원축소가 있다. 이 둘 중에서 군집을 먼저 사용해보자 - 과일 사진 데이터 준비하기 fruits = np.load('fruits_300.npy') print(fruits.shape) (300, 100, 100) shape()은 차원을 나타내는 함수이다. fruits 데이터에서 첫 번째 차원 300은 샘플의 개수, 두 번째 차원 100은 이미지 높이, 세 번째 .. 이전 1 2 3 4 5 다음