-
구글 Cloud Vision 제품 검색 API 사용을 이용한 안경검색
현재 인턴에 참여하던중, 제품검색 API사용에 대한 업무가 주어져, 처음으로 외부 API를 사용하여 제품 유사도 값을 실험해보는 시간을 가졌다. 자사에서는 OCR(이미지의 텍스트 감지)기술을 개발하고 있으나, 텍스트 감지가 GF(Glass Finder) 기능을 제대로 구현하지 않을 때를 대비하여, 구글 Cloud Vision 제품검색 API를 사용해보고자 했다. 목표: 구글 Cloud API에서 제공하는 ‘제품 검색 기능’ 구현 목차: 구글 Cloud 제품 검색 API 활용 3단계 CH1. 구글 Cloud API 설정 CH2. 데이터 세트 준비(입력데이터-구글 스토리지URL / 실험데이터-로컬URL) CH3. 제품 검색 API 사용 Cloud Vision API 제품검색 사용자가 자신의 이미지로 제품 세..
-
시계열 데이터 예측 모델 비교, MLP-RNN-LSTM
저번 시간에 생성하였던 ARMA 시계열 데이터를 가지고 다음 날의 값을 예측해볼 것이다. 앞서 create_dataset 함수를 이용하여, X와 Y 데이터를 구분해준다. 이때 몇개의 시차, X값 들을 가지고 다음 값을 예측할 지, Window size로 지정해주면된다. 여기서는 5개의 X으로 다음 값을 예측해볼 것이다. 따라서, 초반에 5개는 이전의 값들이 없기 때문에, 예측을 할 수 없고 오로지 X값으로만 사용된다. 또한, 데이들은 총 3000개에서 10%는 모델을 학습시키기위해 사용되며, 나머지 10% 만들어진 몯르을 가지고 결과와 테스트 값을 비교해볼 것이다. 시퀀셜 모델 객체를 생성한뒤, 여러개의 층과 활성화함수를 설정할 수 있다. 이때, 주의할 점은 층에서는 매개변수의 제한이 없지만, input..
-
DB 파일을 수정해보자
얼마전, 이미지 데이터 파일을 전달하던 중 오류가 발생하여 갑작스럽게 DB파일을 수정하는 일이 생겼다. AI랩실에서 주신 클래스 함수에서 ASSERTION 에러가 발생하여, 해당 문제를 긴급하게 파악하는 일을 진행했다. DB 파일을 cursor.execute로 실행하면, DB파일에 있는 테이블을 체크할 수 있다. 현재 내가 받은 DB파일에는 이미지 상세 정보와 태깅에 대한 정보가 들어가 있는데, 두 테이블이 이미지 파일명에 대하여 순서가 일치하지 않거나 혹은 중복되어 들어가거나 하나의 오류 파일이 들어갈 경우, 에러를 발생시킨다. 따라서 DB파일 속 이미지에 대한 정보와 태깅에 대한 정보가 불일치을 해결하고자 오류 파일을 체크하고 점검하는 작업을 진행했다.
-
Big query를 이용한, 데이터 추출
앱에 대한 사용성 데이터에는 크게 Firebase 기본 통계치 와 직접 함수를 삽입하여 수집하는 통계치들이 있다. 모두 Firebase에서 수집되고 어느정도 dash board를 통해, 시각화를 자동적으로 해준다. 하지만, 데이터를 다양한 방식으로 보기위해서는 계속해서 추출 방식을 새롭게 정의해주어야한다. 즉, Raw data에서 필요한 조건에 따라 새롭게 데이터를 추출할 필요가 있었다. 이번 시간에는 Raw data를 다양한 방식으로 뽑아내기 위한 SQL문을 다룰 것이다. 이때 Non-SQL의 대세인(그보다..지금 써본? ㅎㅎ) Big query를 써볼 것이다. 다음은 빅쿼리에서 Standard SQL 문법을 간단하게 소개하고 있다. {기본 SQL 형식} SELECT * FROM '프로젝트.데이터셋.테..
-
DAY8. OPIC 선택주제(즐기는 운동)
early in the morning/ late at night: 아침 일찍/ 저녁 늦게 *I'm only allowed to jog early in ther morning or late at night. along the path: 길을 따라서 treadmill: 런닝 머신 run on a treadmil: 런닝머신에서 뛰다 jogging/walking path(track): 산책로 spacious/small: (공간에 있어) 넓은/ 작은 take some time to warm up/dowm: 준비운동/정리운동을 위해 시간을 갖다 wear comfortable clothes/shoes: 편안한 옷/신발을 입다/신다 wear sweats: 운동복을 입는다 drink water to hydrate my ..
-
DAY5. OPIC 선택주제(시청하기)
relive my(one's) stress: 나의 스트레스를 풀다 = get rid of my stress gives me practica / useful information: 나에게 실용적/유용적인 정보를 주다 have restriction on: ~에 제약이 있다. local channel: 지역방송 vs. satellite channel: 케이블 방송 a wide variety of: 다양한 종류의 broadcasting station: 방송국 Q. Please talk about your favorite TV show you enjoy watching. Describe what kind of program it is. What makes this show special to you? Tell m..
-
DAY3. OPIC 선택주제(여가활동)
Category: 관람하기(공연보기,콘서트보기) Q1. Please tell me about a concert hall you often go to. Where is it? What does it look like? It's a perfect place for/to~: 그것은 ~하기에 완벽한 장소이다. ex. I guess.. this is the perfect place for shows! One good/bad thing about A is that~: A에 좋은/나쁜 점은 ~이다. ex. One good thing about this stadium is that there is a lot of amenity and it is the center of transportaion. A look like ..
-
데이터 핸들링, FCM 오픈률 조건 조사
유저 리서치팀에 있으며, 어플에 대한 신규 고객의 1주차 리텐션 수치를 30%까지 끌어올리기 위해, 다양하게 FCM(Firebase Cloud Message)를 보내는 일을 하였다. FCM은 Firebase로 직접 예약을 설정하면, 조건에 맞는 잠재고객들에게 메세지를 날림으로써 고객이 앱에 접급하는 비율을 높일 수 있다. FCM을 보내면서 발송에 따른 오픈률을 체크하게 되는데, 이때 오픈률을 높이는 메세지 조건을 찾는 것이 중요하다. 파이썬을 이용하면, 기존의 엑셀 파일을 쉽게 다룰 수 있다. 이번 코드는 condition이라는 조건 리스트를 만들어 해당 리스트를 만족하는 데이터를 추출하여 뽑아오는 일을 한다. 프로젝트를 하다보면, 고유값이 없는 데이터를 받는 경우가 종종있다. 여기서 고유값이란 해당 정..
-
[python] ARIMA 데이터 생성 및 모형 적합 절차
ARIMA(p,d,q)모형은 차수 p,d,q의 값에 따라 다른이름으로 불린다. p는 AR모형과 관련된, q는 MA모형과 그리고 d는 시차와 관련된 파라미터 이다. ARIMA의 모수는 크게 3가지가 있다. AR모형의 Lag을 의미하는 p, MA모형의 Lag을 의미하는 q, 차분(Diffrence)횟수를 의미하는 d 가 그것이다. 보통은 p, d, q의 순서로 쓴다. @ 정상성: 시간의 추이에 관계없이, 평균과 분산이 균일함 예1) d=0이면, ARMA(p,q)모형이라 부르고 이 모형은 정상성을 만족한다. 예2) p=0이면, IMA(d,q)모형이라 부르고 d번 차분하면 MA(q)모형을 따르게 된다. 예3) q=0이면, ARI(p,d)모형이라 부르며, d번 차분한 시계열이 AR(p)모형을 따르게 된다. 이번에..
-
DAY9. OPIC 선택주제(휴가/출장)
my number one place: 내가 제일 좋아하는 장소 locate in/at: ~에 위치해있다 surrounded by: ~로 둘어쌓여있다 movie-goer/ocean-goer: 영화광/ 바다를 자주 가는 사람 check/make a paking list: 챙겨갈 짐 체크리스트를 확인하다/만들다 visit historical sites: 유적지를 방문하다 take 명사: ~을 챙기다 * take neccesities: 필수품을 챙기다 be still fresh in my memory: 아직도 내 기억속에 생생히 남아있다 get lost: 긿을 잃다 Q. You indicated in the survey that you enjoy domestic travel. Please tell me abou..
-
DAY7. OPIC 선택주제(독서하기/음악 감상하기)
touching lyrics: 감동적인 가사 energize: 활력을 불어넣다. ex. It energizes us cheers me up: 나에게 힘을 붇돋아주다. allow me to get rid of my stress: 내 스트레스를 풀게 해주다. on the move: 이동 중에 at home: 집에 on the bus/subway: 버스/지하철에서 while I work out/ commute: 운동 중에/통근 중에 when I am stressed out: 스트레스를 받을 때 dance to the music: 그 음악에 춤을 추다. Q. Please talk about the time you first started reading books. What made you become inter..
-
DAY6. OPIC 여가활동(공원가기)
walking path: 산책로 exercise equipment: 운동기구 surrounded by: ~로 둘러싸여 있다 be separate from A: A와 분리되어 있다 lively: 활기넘치는 crowded: 붐비는 take a (light) walk: (가볍게)산책을 하다 go joging: 조깅하러 가다 get some fresh air: 신선한 공기를 마시다 gather my(one's) thought: 생각을 정리하다 have some private time: 개인적인 시간을 갖다 enjoy the sunshine: 햇빛을 만끽하다 have fun: 즐거운 시간을 보내다 Q. Please tell me about the park you often go to. What are some t..
-
DAY4. TED: "How to lead in a crisis" 1-20
출처: www.ted.com/talks/amy_c_edmondson_how_to_lead_in_a_crisis/transcript Transcript of "How to lead in a crisis" TED Talk Subtitles and Transcript: Humility, transparency and urgency are the keys to successfully steering an organization -- big or small -- through the challenges that come your way. Leadership expert Amy C. Edmondson provides clear advice and examples www.ted.com We think of a gre..
-
DAY2. OPIC 선택주제(여가활동)
Category: 관람하기(영화보기) ticket machine: 티켓 발매기 box office: 매표소 screening room: 상영관 snack bar: 매점 convenient amenity: 편의시설 high-end equipment: 최첨단 장비 spacious: 넓은 well-maintained: 유지보수가 잘 되어있는 storyline: 줄거리 twist(reversal): 반전 * There is a twist in the movie: 영화에 반전이 있다.. overwhelming: 압도적인 sensational: 세상을 놀랍게 하는 fascination: 대단히 흥미로운 star in: ~에 주연을 맡다 main actor / supporting role: 주연 / 조연 have a..
-
DAY1. OPIC 기본 주제(자기 소개, 거주지)
Category: 자기소개 Q1. Please tell me about yourself look on the bright side: 밝은 면을 보다 spend most of the time alone: 대부분의 혼자 보내다 I'm in charge of A: 저는 A를 담당합니다. freshman - sophomore - junior - senior: 1~4학년 I'm graduating this semester: 저는 이번 학기에 졸업합니다. I'm looking for a job: 저는 직업을 찾고 있는 중입니다. go for a walk, go on a trip, go shopping / jogging chat with someone: 누군가와 수다 떨다 work out: 운동하다 surf the ..
-
Google Analytics 및 마케팅 용어 정리
구글 애널리틱스의 모든 데이터는 히트, 세션, 사용자 세 가지 요소를 포함하는 위계형 구조로 되어 있다. 히트가 모여 하나의 세션을 구성하고 여러 세션이 모여 하나의 사용자를 구성한다. # 히트(HIT) 웹 분석 툴에서 사용되는 가장 작은 데이터 단위로 웹사이트 방문자가 웹사이트 내에서 행하는 모든 개별적 상호작용을 '히트' 라고 한다. 히트의 대표적인 예로 페이지뷰(pageview), 이벤트(event) 그리고 거래(transaction)가 있다. '페이지 뷰'는 방문자가 하나하느이 페이지를 열어보는 것을 말하며, 하나하나의 버튼/링크를 클릭하거나 동영상을 재생하거나 마우스 커서를 움직이는 것을 '이벤트' 그리고 구매를 하는 것을 '거래'이다. 앱활동성을 체크하는 Firebase의 경우, 사용자가 앱 ..
-
시계열 데이터 이상치 모니터링 with Window size + 3 Sigma
시계열 데이터는 시간의 영향을 많이 받으며, 원인 변수가 따로 존재하지 않는다. 원인 변수 X는 이전의 값들로 해당 값들을 가지고 트렌드, 계절성 등을 파악하여야 다음 Y값을 예측할 수 있다. 문제를 해결하기위해, 측정을 해야하고 측정한 수치들로 이슈를 만들어낼 수 있어야한다. 현재 회사에서는 Firebase SDK를 삽입하여 특정 화면의 이벤트 수가 사용자 수를 파악하고 있다. 이때 가장 먼저 보는 데이터가 DAU 일일 활성 사용자 수 이다. 일일 사용자들이 얼마나 어플상에 유입이되는 지 확인할 수 있는 어플의 성장을 확인할 수 있는 대표적인 수치이다. 이와 같이 수집한 데이터를 가지고 마케팅 및 기획의 효과를 검증하는데 활용하거나 어플 상에서 발생하는 이슈들을 파악한다. 주간 금요일 마다 DATAST..
-
[SQL] BIG QUERY with Firebase 이벤트 및 사용자 수 추출하기
우리 어플의 경우, WEB의 경우, Google Analytics를 이용하여, 어플의 경우 Firebaes를 이용하여 데이터를 수집하고 있다. 데이터를 수집함으로서 우리 서비스 사용자들의 사용성을 확인하고 사용자 입장에서 적합한 기획-개발을 진행한다. 예를 들어, 단계별 이벤트를 설정하여, 이탈하는 페이지를 찾아내고 이벤트 수가 적은 버튼들을 점검하여 사용자 편의도 가 높은 UI를 개선하기 위한 개선 작업을 진행한다. 인턴 과정에서 서비스를 효과적으로 관리하기 위한 대쉬보드를 만드는 작업을 하였다. 처음에는 DATA STUDIO에서 FB 정보가 쌓이는 Big query와 GA를 DATA STUDIO에 직접 연결시켜 실시간 상황판을 작업했지만, DATA STUDIO 내에서 다양하게 연산을 적용하여 데이터를..
-
COVID19 EDA1: Time age data Handling
2020.04.05 TimeAge Data. SUMMARY 1. Time_Age 데이터 에서 확진에 따른 사망률은 그려보면, 60대 이후로 급격하게 증가한다. 2. 매일 확진자를 체크했을때, 20대에서 가장 많이 나타난다. => 그래프를 보면, 20,50대가 주요 확진자이며, 20대가 매일 나타나는 확진자가 가장 많다. => 치사율이 높은 60대 이후의 고연령층 확진자에 대해서는 적극적인 care가 필요하며, 확진자가 많이 나타나는 20대, 50대가 많이 다니는 장소에 대한 주의가 요구된다. 3. 예상과 달리, 요일별 확진자의 추이가 큰 변동이 없다. 4. 연령대에 따라 요일별 확진자 추이 곡선은 매우 유사하다. => 주말이나 근무일에 따라 코로나 질병 확진자는 변화하지 않는다. 시간때에 따라 파악해보는..
-
[Python] CMS DATA Filtering
인턴 과정에서 앱 업데이트에 대한 효과검증을 하게 되었다. CMS 고객 관리 데이터를 가지고 이리저리 만져볼 필요가 있어 Pandas 라이브러리를 활용하여 일을 진행했다. 성수기에 데이터량이 폭발적으로 늘어날 것을 대비하여, 로직을 짜놓으면 대량의 데이터에 대하여 수치의 정확도나 속도에서 효과적이기 때문에 만들어보았다. 코드는 프로그래밍 언어를 모르더라도 작성할 수 있도록, 텍스트 위주로 진행되게끔 input() 입력함수를 활용하였고 추가적으로 try-except 예외처리를 두어, 정해진 조건에서만 프로그램이 작동할 수 있도록 만들었다. 해당 코드의 내용은 다음과 같다. 정리된 엑셀 시트에서 결측값을 제거하고 특정한 데이터를 라벨링하여 묶는 과정을 담고 있고 정해진 조건내에서 사용자 수를 파악하는 것이다..
-
확률론과 Bayesian Decision Rule(Inference Model)
확률론에는 빈도론(Frequentism)과 베이지안(Bayesian)으로 크게 나눌 수 있으며, 머신러닝 모델 또한 이론에 입각하여 빈도론의 Generator model과 베이지안 룰에 따른 Inference model이 있다. 일반적으로 우리가 알고 있는 확률론은 Generator model이다. 발생한 값들을 보고 그 사건에 대한 값을 예측하는 것이다. 예를 들어보면, 동전을 10번 던졌을때, 앞면이 나올 확률이 50%이면, 100번 던졌을때, 앞면이 50%확률로 나온다고 예측하는 것을 말한다. 즉, 빈도론에서 확률은 '사건이 일어나는 장기적인 확률'로써 오로지 경험적 사실만을 통해 이야기할 수 있다는, 객관적인 입장을 취하며, 베이지안은 '지식이나 판단의 정도를 나타내는 수단'으로써, 주관적인 입장..
-
ARIMA: Time Series Analysis 모형
데이터마다 특징이 있다. 예를 들어, 마스크에 대한 수요 데이터를 따져보자. 요즘 빠르게 퍼지고 있는 코로나 바이러스에 따라 마스크의 수요가 급증했다. 마스크에 대한 공급을 정부에서 담당하여, 약국에서 250개씩 할당하고 있을만큼 ... 이때의 마스크의 수요는 무엇에 영향을 받았을까? 당연하게도 코로나의 전파력과 사람의 공포심에 따라 크게 변동할 것이다. 특별한 시간적 흐름보다는 외국에서 유입된 인원, 특히 중국 우한을 방문했던 사람들의 숫자 그리고 국내에서는 대구에 방문한 사람들의 수와 경로에 영향을 받을 것이다. 추가적으로 언론에서 코로나를 다루는 방향과 보도 횟수에 따라 크게 수요는 널뛸 것이다. 아침마당에 소개되는 암예방, 치매예방에 대한 음식, 재료가 소개될 경우 마트에서 매출이 급격하게 증가하..
-
Recursive 함수 폴더 리스트 뽑아내기
데이터 파일을 체크할때, 일일이 경로를 지정하는 것은 불편하다. 파일 곳곳을 자동으로 들어가 파일을 체크하는 코드가 필요하다. 데이터 수가 많아지면, 일일이 핸들링하는데 대단히 많은 시간이 소요되기 때문이다. 이번 시간에는 재귀함수를 이용해, 파일이 담겨있는 폴더 리스트를 뽑아볼 것이다. 재귀함수 문으로 구성되어 약간 헷갈릴 수 있다. 일단 사용된 함수를 먼저 알아보면, 현재 경로를 기점으로 Path 객체를 만들어서 폴더에 있는 파일과 폴더들을 iterdir로 반환하고 is_dir로 폴더만 골라낸다. 추가적으로 sum(valids,[])에서 두번째 인자 [ ]빈 리스트의 역할은 다음같다. (리스트의 원소를 합하는 느낌) sum([1,2,3])을 호출하면 start(=0) + 1 + 2 + 3 을 계산해 ..
-
Sigmoid와 ReLU 예측 모델 비교
이번 시간에는 가장 많이 사용되는 신경망 모델 sigmoid와 relu를 사용해 볼 것이다. 임의로 랜덤한 값으로 데이터 셋을 형성한뒤, 모델을 2가지로 분류하여 평가해볼 것이다. 지금 까지 데이터를 임의로 생성하여 분포를 살펴보았다면, 이제는 모델을 사용해볼 것이다. x2는 결과Y, x1는 변수X로 사용할 것이다. model1에 시퀀스 객체를 선언하고 층별로 활성화함수를 집어넣는다. 이때, input_dim이 입력값 X, 마지막층에 인자 4가 아웃풋 Y가 된다. 아웃풋은 숫자가 아닌 타입이여햐 하기 때문에, softmax 활성화함수를 사용하며, softmax는 타입별로 확률 값을 반환하고 전체 합이 1이 된다. 이때, 가장 높은 확률, 1에 가장 가까운 값을 가진 index가 타겟일 확률이 가장 높은 ..
-
kaggle 데이터(2019 Corona)시각화 따라하기
요즘 코로나 바이러스19에 대한 위험 단계가 '심각' 🤢 에 이르면서, 우리 회사에서도 재택근무를 시행하고 있을 만큼 다들 주의를 기울이고 있는듯 하다. 오늘 준비한 kaggle 데이터는 바로 Coronavirus-covid-19에 대한 자료이다. https://www.kaggle.com/brendaso/2019-coronavirus-dataset-01212020-01262020 2019 Coronavirus dataset (January - February 2020) Tracking the spread of 2019-nCoV www.kaggle.com 2020년 1월부터 2월까지 코로나 바이러스에 대한 감염 이력 데이터이다. 지역과 발병 여부에 대한 정보가 담겨 있어, 지도를 이용한 시각화를 효과적으로..
-
KoNLpy 텍스트 빈도수 체크
앞서 웹에 있는 텍스트 데이터를 수집했다면, 이번에는 데이터를 가지고 간단하게 가공해보고 시각화해보는 작업을 할 예정이다. 앱에 대한 사용성 피드백을 체크하던 중, 평점이 낮은 데이터에 대한 리뷰를 가지고 시각화해보는 작업이 사용자 피드백을 점검하는데 효과적일 수 있다는 생각을 하면서 시작하게 됐다. KoNLpy는 텍스트 마이닝을 위한 라이브러리에서 한국어에 최적되어, 한글을 분석하는데 효과적이다. 하지만, 윈도우 환경에서는 몇가지 설치 과정이 필요하다. 1. 자바설치: https://java.com/ko/download/ 2. JPype(>=0.5.7) 다운로드 설치 * 윈도우 환경 설정: https://blog.naver.com/myincizor/221624979283 윈도우에 KoNLPy 설치 방법..
-
[python] Review web Crawling 쉽게 쉽게!
인턴과정을 진행중, Firebase의 기반으로 수집된 앱 사용성 데이터 이외에 정성적인 데이터에 대한 분석에 관심이 갔다. 앱에서 정석적인 데이터라하면, 사용자자 앱마켓에 올리는 리뷰 의견이 대표적으로 볼 수 있다. 이번 시간에는 구글 앱에서 리뷰에 대한 크롤링 작업이다. 참고할 좋은 자료가 있어 이해한 과정을 순서대로 적어볼 생각이다. from bs4 import BeautifulSoup as BS from selenium import webdriver import re from selenium.webdriver.common.keys import Keys import time import csv 일단, 웹 크롤링을 위해 셀레니움 webdriver와 beautifulsoup 라이브러리이다. F12를 눌러..