데이터분석
-
BigQueryML로 유저 세그먼트 클러스터링하기About Data 2023. 10. 27. 08:29
BigQueryML? 구글 빅쿼리 콘솔에서 SQL 쿼리로 간편하게 머신러닝 모델을 만들고, 실행할 수 있는 서비스입니다. 기본적인 회귀 모델부터 K-means 클러스터링, 시계열 분석, DNN, 랜덤 포레스트, XGBoost 등 다양한 모델을 활용할 수 있습니다. 유저 세그먼트? 서비스를 이용하는 고객을 임의의 기준으로 분류한 결과를 의미합니다. 주로 User Persona라고 해서 하나의 모델로 유저를 정의하는 경우도 있지만, 사용자 집단의 동질성이 낮은 경우는 하나의 페르소나보다 각각의 군집으로 유저를 분류하는 것이 유리합니다. 이렇게 유저를 분류하는 것이 중요한 이유는 각 분류마다 원하는 것과 행동 양식이 다르기 때문에 만족도를 느끼는 지점 역시 다르고, 이는 곧 기능 개발과 캠페인 메시지 전달 방..
-
웹알못의 데이터 어드민 사이트 만들기(feat. Streamlit) 3. 오픈은 실전etc. 2022. 9. 10. 01:32
두 번째로 만든 서비스는 'userSelector'였습니다. 이번에도 다짜고짜 코드 먼저 첨부합니다. 더보기 import streamlit as st import pandas as pd from datetime import datetime, timedelta st.set_page_config(page_title="userSelector", page_icon="📝", layout='wide') st.title("dat-a-dmin [userSelector]") ### @st.cache(ttl=10800) def get_categories(): engine = db.ps_engine() categories = pd.read_sql("select ", engine)['category'] return categ..
-
웹알못의 데이터 어드민 사이트 만들기(feat. Streamlit) 2. 페이지 작성etc. 2022. 9. 10. 01:00
Streamlit을 띄운 목적이 데이터 애드혹을 줄이는 것이었기 때문에, 주요 테이블을 조회하는 간단한 쿼리를 누구나 클릭 베이스로 작성할 수 있는 페이지를 가장 먼저 작성해 봤습니다. 부끄럽지만 전체 코드(일부를 제외한) 를 첨부합니다. 더보기 import streamlit as st import pandas as pd from datetime import datetime, timedelta st.set_page_config(page_title="queryMaker", page_icon="📝", layout='wide') st.title("dat-a-dmin [queryMaker]") ### d0_options = { "유저, 크리에이터": [""], "마케팅": [""], "사이트/앱 로그": [""..
-
웹알못의 데이터 어드민 사이트 만들기(feat. Streamlit) 1. 환경 구축etc. 2022. 9. 10. 00:39
Streamlit을 사용하기 위한 환경은 크게 어렵지 않습니다. pip install streamlit PIP 설치와 streamlit hello 실행 명령 한 줄이면 로컬에서도 웹앱을 띄울 수 있으니까요. 이 말은 즉, 파이썬과 외부 네트워크만 가능하면 누구나 접속할 수 있는 사이트를 만들 수 있다는 뜻입니다. AWS나 GCP 인스턴스 한 대로도 운영할 수 있지만 현재 저희 데이터 팀에서는 K8S 환경으로 대부분의 서비스를 통합했기 때문에 클러스터에 띄우기로 했습니다. 그렇다면 가장 먼저 필요한 건 도커 이미지입니다. Streamlit 컨테이너를 구성할 재료입니다. 저는 python 3.9 이미지를 기반으로 streamlit 외 데이터 어드민에 사용할 라이브러리들을 설치했습니다. FROM python:..
-
웹알못의 데이터 어드민 사이트 만들기(feat. Streamlit) 0.Prologueetc. 2022. 9. 10. 00:08
스타트업의 데이터 팀에는 수많은 리퀘스트가 들어옵니다. 그 중에서 단순 추출과 개인정보 처리는 그 중요도와는 별개로, 요청은 많고 얻어가는 보람은 적은 일에 속하죠. 조직에 직접 인사이트를 제공하는 생산적인 분석을 하고 싶어 데이터 분석가가 되었는데, 이런 애드혹이 반복되면 결국 내가 데이터 분석가인가? 추출가인가? 자괴감이 들게 됩니다. 이런 문제를 해결하기 위해 On-call(당번), 리퀘스트 워크플로우, 백로그 프로세스 개선 등 다양한 시도를 했지만 문제는 제품과 비즈니스 실무진의 데이터 접근성이 떨어지는 것이었습니다. 분석용 데이터 마트가 갖추어져 있고 리대시나 태블로를 통해 원하는 구성원이라면 누구나 데이터에 접근할 수 있는데 왜 접근성이 떨어지는가? 라고 반문했을 때는 아래와 같은 이유들을 찾..
-
수학으로만 답할 수 없는 데이터들About Data 2020. 10. 19. 19:29
회사 동료 A와의 대화 중, 데이터를 단순한 숫자로 보았을 때 해결할 수 없는 문제들에 대해 이야기를 나누었습니다. 일례로, '오렌지' 라는 단어가 검색된 데이터 하나만으로 유저의 의도를 파악할 수 있을까요? 유저의 검색 목적은 '오렌지 주스'일 수도 있고, '오렌지 티셔츠'일 수도 있고, '오렌지 나무'일 수도 있습니다. 그래서 데이터를 볼 때 문맥(Context)를 파악하는 것이 중요합니다. 유저의 의도에 보다 부합하는 결과를 제공하기 위해 그들의 행동을 따라 분석하고, 그룹화하는 작업이 필요합니다. 1. 문맥과 그룹화 '오렌지 주스'라는 단어는 다음 중 어느 단어 다음에 검색될 가능성이 높을까요? - 오렌지 티셔츠 - 아침 식사 만약 이 단어들을 수학적으로 분류한다면 같은 '오렌지'라는 단어가 들어..
-
AWS 서버를 활용한 Jupyter Notebook + R 세팅하기 (3) R 연동하기etc. 2020. 7. 1. 02:47
2020/07/01 - [etc.] - AWS 서버를 활용한 Jupyter Notebook + R 세팅하기 (2) Miniconda 활용 AWS 서버를 활용한 Jupyter Notebook + R 세팅하기 (2) Miniconda 활용 2020/07/01 - [etc.] - AWS 서버를 활용한 Jupyter Notebook + R 세팅하기 (1) EC2 인스턴스 생성 AWS 서버를 활용한 Jupyter Notebook + R 세팅하기 (1) EC2 인스턴스 생성 그동안 Anaconda를 통해 로컬에서 사용.. datarami.tistory.com Jupyter Notebook 설치가 완료된 후, 간단한 방법으로 R을 연동합니다. conda install -c r r-irkernel IRkernel 패키..