분류 전체보기
[Ray] 0. GCP와 Docker를 이용한 Jupyter Notebook 환경 구성
Ray란 아주 단순한 데코레이터만 사용하는 것으로 병렬 처리를 구현해주는 기능입니다. # https://docs.ray.io/en/latest/# # Ray 공식 문서에 있는 Getting Started with Ray Code import ray ray.init() @ray.remote def f(x): return x * x futures = [f.remote(i) for i in range(4)] print(ray.get(futures)) # [0, 1, 4, 9] @ray.remote라는 단순한 데코레이터로 함수 또는 클래스를 감싸는 것만으로 코드를 병렬 처리할 수 있습니다. 일반적인 파이썬 코드뿐 아니라 ML, Crawling 등에서 Ray를 활용하여 병렬 처리를 적용할 수 있고, 코어가 많을수..
[회사 생활] 1년 8개월이 지나서
2개월이 지난 회사 적응기를 썼던 것이 얼마 전이었던 것 같은데 벌써 그로부터 1년 반이 지났고 많은 일을 경험했다. SQL이 익숙해졌고, 생각보다 SQL로 많은 일을 할 수 있다는 것을 경험했다. MSSQL, Presto SQL, Spark SQL, Bigquery 등의 다양한 SQL 환경을 경험했고 돌아가는 구조 등을 조금씩 이해하려는 노력을 하고 있다. Scala Spark와 Pyspark에 조금은 익숙해지기 시작했고, API를 이용한 SQL 쿼리나 MLlib 등을 공부하기 시작했다. DBeaver, Zeppelin, Databricks, GCP Bigquery 같은 다양한 플랫폼을 경험했고, 빅쿼리가 100GB 이상, 1TB 이상의 데이터를 핸들링하는 것에서 너무 편하다는 것을 느끼고 있다. 다양..
[회사 생활] #1 신입의 2개월 게임 회사 적응기
4학년 2학기의 학생, 그리고 신입 2개월 차 어떻게 재학 중에 운이 좋아서 3곳의 게임 회사에 데이터 분석가 포지션으로 서류를 넣었고 1곳이 떨어지고 2곳이 붙어서 지금 회사로 오게 되었다. 게임을 좋아하지만 전공과 관련된 금융 회사만을 생각했던 나에게 게임 회사에는 전혀 생각치 못 했던 선택지였다. 그래서 정보가 부족했고 회사 생활이 어떨지 가늠이 되지 않았지만, 아직까지는 후회없이 만족스러운 선택인 듯하다. 아직 수습 딱지도 떼지 않은 신입이 뭘 알겠냐만은, 한 번씩 야근을 하면서도, 예상과 전혀 다른 일을 하고 있으면서도, 회사 생활에 만족스럽고 다시 선택한다고 해도 지금 여기로 올 것 같다. 지금 하는 일은 데이터 분석 설계, 데이터 전처리, 머신러닝 등의 기존에 하던 공부와 사실 크게 동떨어져..
[Open API] 사이퍼즈 전적 검색 사이트 만들기 #1 - 닉네임 검색
롤, 배그 Open API를 다뤄보다 보니 한 번의 분석으로 끝나는 것이 아니라, 분석 결과를 상시적으로 라이브 할 수 있는 사이트를 만들어보고 싶어 졌다. 그래서 사이퍼즈 Open API를 이용해 전적 검색 사이트를 간단하게 만들어 보고, 더 나아가서 게임 내의 요소들을 분석하고 결과를 라이브 해보려고 한다. 파이썬을 이용해 분석 및 웹 개발을 하며 웹 개발은 처음이기에 Flask라는 간단하게 시작할 수 있는 프레임워크를 공부하며 간단하게 만들어보기 시작했다. 여기서 '고구마' 유저의 닉네임을 클릭하면 해당 유저의 전적 기록을 조회한다. 현재는 닉네임 검색과 해당 유저들의 전적 검색 결과를 간단한 표로 보여주는 기능만 구현한 상태 기능도 계속해서 추가하고, 비효율적이고 가독성 떨어지는 코드들도 수정해야..
[SQL] SQL 기초교재 10 ~ 12
10장 테이블 합치기 1. 내부 조인 SELECT 테이블명1.열 이름1, 테이블명2.열 이름2 FROM 테이블명1, 테이블명2 WHERE 테이블명1.KEY=테이블명2.KEY; SELECT 별칭1.열 이름1, 별칭2.열 이름2 FROM 테이블명1 (AS) 별칭1, 테이블명2 (AS) 별칭2 WHERE 별칭1.KEY=별칭2.KEY; SELECT 테이블명1.열 이름1, 테이블명2.열 이름2 FROM 테이블명1 INNER JOIN 테이블명2 ON 테이블명1.KEY=테이블명2.KEY; SELECT 별칭1.열 이름1, 별칭2.열 이름2 FROM 테이블명1 (AS) 별칭1 INNER JOIN 테이블명2 (AS) 별칭2 ON 별칭1.KEY=별칭2.KEY; EX1) INNER JOIN 사용하기 SELECT TMP1.*,..
[SQL] SQL 기초교재 07 ~ 09
7장 기본 함수 배우기 1. 문자 함수 함수설명 LOWER 소문자로 변환 UPPER 대문자로 변환 LENGTH 문자의 길이 반환 SUBSTR 문자 값 중 원하는 길이만큼 반환 RTRIM 문자열 오른쪽 공백 제거 LTRIM 문자열 왼쪽 공백 제거 TRIM 문자열 양쪽 공백 제거 REPLACE 특정 문자열을 다른 문자열로 대체 COALESCE 조건에 따라 여러 가지 값으로 치환 INTCAP 첫 글자를 대문자, 나머지를 소문자로 변환 2. 숫자 함수 함수설명 ROUND 소수점의 자릿수를 지정하여 반올림 TRUNC 해당 소수점 자리에서 잘라낼 때 사용 MOD(M, N) M을 N으로 나눈 나머지 ABS 값을 절대값으로 변환할 때 사용 SIGN 숫자가 양수면 1, 음수면 -1, 0이면 0을 반환 SORT 값의 제곱..
[SQL] SQL 기초교재 04 ~ 06
4장 WHERE 조건절을 활용한 데이터 조건 주기 1. 숫자형 데이터 조건 SELECT 열 이름1, 열 이름2 FROM 테이블명 WHERE 비교할 열 이름=숫자; 2. 문자형 데이터 조건 SELECT 열 이름1, 열 이름2 FROM 테이블명 WHERE 비교할 열 이름='문자'; EX1) 가입금액이 1백만원 이상인 고객들의 고객번호, 계약번호, 가입금액을 추출 SELECT ID, CNRT_NO, CNRT_AMT FROM INS_INFO WHERE CNRT_AMT >= 1000000; EX2) 상품 계약일이 2013년 04월 16일 이후인 고객들의 고객번호, 계약일, 상품명을 추출하고 고객번호는 오름차순으로 정렬 SELECT ID, CNRT_DT, PRDT_NM FROM INS_INFO WHERE CNRT_..
[SQL] SQL 기초교재 01 ~ 03
아래의 내용은 김지훈, "칼퇴족 김대리는 알고 나만 모르는 SQL", 책밥(2014)의 내용을 참고하여 공부한 기록입니다. 1장 SQL의 개요 데이터베이스(Database) : 공유의 목적을 가지고, 구조적인 방식으로 관리되는 데이터의 집합. 연관된 정보의 중복을 최소화하여 저장. 정규화를 통해 중복을 단계적으로 제거해 나간다. 데이터베이스 관리 시스템(DBMS, Database Management System) : 데이터를 정리하고 보관하기 위한 시스템 테이블(Table) : 특정한 종류의 데이터를 구조적 목록으로 묶은 것 스키마(Schema) : 테이블에 어떤 데이터를 어떤 형식으로 저장할 것인지 정의한 것 열(Column) : 속성(Attribute). 테이블을 구성하는 각각의 정보 행(Row) :..
[프로세스 마이닝] Data Science In Action 강의 - 02
Decision Trees 2018-02-20에 작성한 글 1.4 Learning Decision Trees Decision Tree 는 의사결정 나무, 결정 트리로 불리는 supervised learning 기법이다. flow-chart와 유사한 그래프를 이용하여 의사결정을 도와주는 도구로써 예측 성능은 일반적으로 그리 뛰어나지 않은 편이지만, 해석력이 매우 뛰어나다. 또한 Decision Tree는 Robust한 특성을 가지고 있어서 정규화나 결측치 처리 등의 전처리 과정을 할 필요가 없이 작동하는 장점을 가지고 있다. 그래서 자료 자체를 시각화하여 보여주거나 머신 러닝의 결과를 해석하는 데에 사용하는 경우도 많다. 그리고 아주 손쉽게 알고리즘을 적용가능한데 반해 각 변수의 영향력을 그런대로 잘 측정..
[프로세스 마이닝] Data Science In Action 강의 - 01
Introduction 2018-02-13에 작성한 글 개인적으로 진행하는 스터디에서도, 학교에서도 여러가지 경로를 통해 접해보면서 프로세스 마이닝을 이벤트 로그를 이용하여 프로세스 모델을 규명하고 문제점을 찾아서 해결하는 것 정도로만 생각해왔다. 하지만 지속적으로 프로세스 마이닝에 대한 이야기를 나눌 때 용어나 개념이 이해가 가지 않는 부분이 많아서 좀 더 자세히 공부해보고자 한다. 구글링을 해보니 Coursera에서 Wil van der Aalst라는 네덜란드 출신의 Eindhoven 대학 교수님이 강의하신 Process Mining: Data Science in Action이 유명한 것 같아 공부하면서 블로그에 정리해볼 것이다. Data and Process Mining 1.1 Data Scienc..