오늘 할 일: 끝내주게 숨쉬기
article thumbnail
[python] tenacity 라이브러리를 이용해 코드 재실행하는 방법

들어가며 파이썬으로 운영을 위한 프로그램을 만들었습니다. 프로그램을 동작시키던 도중 예기치 못한 오류가 발생하여 재실행이 필요한 때는 언제든 발생할 수 있죠. 실제 운영 프로그램을 설계하면 API라던지 DB라던지 파이썬의 메인 프로그램과 다른 여러 환경들이 얽혀있다는 점을 잘 아실 겁니다. 이렇게 파이썬 밖에 있는 환경이 얽혀있을 때는 특히 통신 오류가 발생할 수 있는데요. 정확한 원인을 알 수 없는 오류가 발생하여 잠시 대기한 후에 재실행을 하면 다시 잘 되는 경우도 있죠. 이런 경우를 대비하기 위해 Tenacity 라이브러리를 적용하여 쉽게 코드를 재실행 할 수 있습니다. Tenacity 사용하기 Tenacity는 예외가 발생하는 경우에 다시 함수를 실행시켜서 사용자가 원하는 결과를 받고 안정적으로 ..

article thumbnail
[NLP] 감성 분석과 ABSA(Aspect-Based Sentiment Analysis) 개념

최근 새로운 자연어 처리라는 새로운 태스크를 접하게 되었습니다. 자연어 처리 과제 중에서도 텍스트에 내포된 감성에 대해 분석하는 과제인 "감성 분석(Sentiment Analysis)"과 "ABSA(Aspect-Based Sentiment Analysis)"에 대해 알아보았고, 간단하게 개념을 정리하기 위해 포스트로 남깁니다. 감성분석 ABSA에 대해 이해하기 위해서는 감성 분석에 대해 먼저 알아야겠습니다. 감성 분석이란, "텍스트에서 감정을 파악하는 자연어 처리(NLP, Natural Language Processing) 과제"입니다. 여기서 얘기하는 "텍스트"는 사람의 의견이 담긴 소비자 리뷰, 설문조사 응답, 채팅 등이 될 수 있습니다. 그 의견이 긍정적인지 부정적인지 혹은 중립적인지를 판단하는 것..

article thumbnail
[sklearn] LabelEncoder와 OrdinalEncoder 비교

들어가며 분석 과제를 하던 도중 범주형 변수를 숫자로 인코딩하기 위해 LabelEncoder가 필요하겠다 싶었습니다. 사용법을 확인하기 위해 사이킷런 공식문서를 살펴봤는데.. LabelEncoder는 타겟 변수 y를 하기 위해 사용하라고 써있더군요. label이 붙는 범주형 변수면 으레 사용 가능하다고 생각했었는데, 제가 오해를 하고 있었습니다. 공식문서를 다시금 잘 살펴보자는 교훈을 얻었네요. 이번 포스트는 LabelEncoder 와 OrdinalEncoder를 각각 소개하고 비교하고자 합니다. 두 인코더 모두 범주형 변수를 숫자로 인코딩하기 위해 쓰이는데요, LabelEncoder는 위에서 언급한 바와 같이 범주형 타겟 변수를, OrdinalEncoder는 범주형 입력 변수를 대상으로 합니다. 각각의..

article thumbnail
[pandas] style로 데꾸(데이터프레임 꾸미기)하는 방법

들어가며 오랜만에 파이썬을 사용하다가 유용해보이는 기능을 발견하여 공유하고자 합니다. 바로 pandas의 style 기능입니다. 데이터 분석을 하면 데이터프레임에 찍힌 숫자나 문자와 같은 값들을 보면서 무엇이 제일 크고 작은지, 관심있게 보려는 값이 어디있는지 찾아야하는 일이 생기죠. 이때 내가 원하는 값들이 쉽게 눈에 띄지 않은 경험을 한 번쯤은 해보셨을 것 같습니다. 행, 열이 많아지면 주의 깊게 봐야하는 값이 어디에 있는지 더욱 찾기 어려워지기도 하죠. 이런 일들을 해결하기 위해 데꾸, 데이터프레임 꾸미기를 활용할 수 있습니다. 판다스의 공식 문서를 보며 유용할 것 같은 일부 함수들을 가져와 소개 드립니다. 비어있는 값, nan 강조하기 import numpy as np import pandas a..

article thumbnail
[annoy] annoy 사용방법: 추천시스템에서 유사 아이템 찾기

annoy: Approximate Nearest Neighbors annoy는 스포티파이에서 개발한 라이브러리로, 벡터들 간의 거리를 계산하여 빠르게 유사한 벡터들을 찾아주는 라이브러리이다. Approximate Nearest Neighbors Oh Yeah의 줄임말로, 직역하자면 근사한 이웃 찾기 아싸? 만세(?) 정도가 될 것 같다. 이름에서부터 느끼다 시피 annoy는 최근접 이웃 알고리즘을 사용한다. annoy를 추천시스템에 적용하기 위해 최근접 이웃을 찾아야하는 경우를 생각해보자. 1. 사용자의 로그가 없을 때: 일반적인 프로필 내용(성별, 나이, 지역 등)을 이용해 사용자와 유사한 특성을 가진 다른 유저들 찾기 → 다른 유저들이 선호했던 아이템들을 사용자에게 추천 2. 사용자의 로그가 쌓인 후..

article thumbnail
[GeoPandas] GeoPandas를 이용한 좌표 데이터 다루기

최근 좌표를 포함하는 데이터를 전처리하면서 geopandas라는 라이브러리를 접하게 되어, 사용방법을 간단하게 포스팅하고자 한다. GeoPandas https://geopandas.org/en/stable/ GeoPandas 0.12.0 — GeoPandas 0.12.0+0.g31f8e6a.dirty documentation GeoPandas 0.12.0 GeoPandas is an open source project to make working with geospatial data in python easier. GeoPandas extends the datatypes used by pandas to allow spatial operations on geometric types. Geometric op..

article thumbnail
[pandas] map과 replace의 차이

판다스로 데이터프레임을 사용하면서 새로운 컬럼을 만들어야할 상황이 생겼다. 예를 들어 기존 값이 '1'이면 '01'로 대체하는 식의 작업이 필요했다. 이미 알고 있던 지식을 총동원하여 map을 적용하면 값을 변경된 새로운 컬럼을 만들 수 있을 것이라 판단했다. 그리고 실패했다.. 이유를 알아보았다. import pandas as pd df = pd.DataFrame({'a': ['x', 'y', 'z']}) df 예시로 사용할 데이터 프레임으로, a 컬럼에는 x, y, z 값이 들어있다. 이 값들을 딕셔너리를 이용해 맵핑하여 새로운 값으로 전환하려고 했다. x는 xx로, y는 yy로, w는 ww로 전환하고, 만약 딕셔너리에 기존 값이 키로 존재하지 않으면, 값을 그대로 보존하기를 바랬다. df['a_ma..

article thumbnail
[AutoML] pycaret 패키지를 이용한 분류모델 학습 (2) create_model, tune_model, predict_model, finalize_model

지난 포스트 pycaret 패키지를 이용한 분류모델 학습 (1) 에서는 머신러닝 학습을 위해 환경을 세팅하고, 평가지표를 추가하고, 다양한 모델을 학습하여 비교하는 실습을 했습니다. 이어서 본 포스트에서는 개별 모델 생성, 모델 튜닝, 모델을 이용해 예측하기, 모델 완성하고(finalize) 저장하기를 진행하겠습니다. 1) create_model 머신러닝 모델을 학습하고 Cross Validation을 이용해 검증을 진행하는 함수입니다. 분석가가 학습하고자 하는 알고리즘을 직접 지정하는데, 알고리즘에 적용하고 싶은 하이퍼파라미터도 직접 설정할 수 있습니다. 머신러닝 분석에 대한 방향성이 없을 때는 일단 적용할 수 있는 알고리즘들을 모두 적용해보는 compare_models 함수를 사용할 수 있겠습니다만,..

article thumbnail
[AutoML] pycaret 패키지를 이용한 분류모델 학습 (1) setup, add_metrics, compare_models

pycaret 이란 파이썬에서 작동하는 AutoML 오픈소스입니다. 단순한 코드 몇 줄로 머신러닝 모델을 쉽게 구현할 수 있습니다. 빠르게 피처 엔지니어링, 모델 학습, 하이퍼파라미터 튜닝, 예측을 포함하는 전체 프로세스를 실행할 수 있습니다. 어디서부터 머신러닝 프로젝트를 시작해야할지, 어떤 모델부터 구현해볼지 잘 모르겠을 때 pycaret을 이용해보면 좋을 것 같습니다. 🏭 AutoML 자동화된 머신러닝으로, 머신러닝 및 딥러닝 모델을 구축할 때 분석가는 AutoML에 학습 데이터만 제공하고 최적화된 모델을 제공받을 수 있다. (출처: https://www.itworld.co.kr/news/129362) 0) 설치 및 데이터 로드 !pip install pycaret 설치 후 사용할 라이브러리들을 불..

article thumbnail
os.path 를 이용하여 파일 경로와 디렉토리 다루는 방법

파이썬으로 코딩을 할 때 다른 폴더나 파일에 대한 경로 접근이 필요할 때가 있습니다. 본 포스트에서는 파이썬 작업 시에 os.path 모듈을 이용해 파일 경로 및 디렉토리를 다루는 방법에 대해 알아보겠습니다. import os 1. 현재 작업 폴더 확인하기 os.getcwd() 2. 작업 폴더 변경하기 os.chdir('변경할 디렉토리 경로') 작업 폴더를 변경한 후, 다시 os.getcwd()를 이용해 작업 폴더를 확인해보면 경로가 변경된 것을 확인할 수 있습니다. 3. 특정 경로에 대해 절대경로 얻기 절대 경로란, 최초 디렉토리를 기준으로 경유한 경로를 모두 기입한 전체 경로를 의미합니다. 상대 경로는 절대 경로와는 다르게 최초 디렉토리가 아닌 특정 경로를 기준으로 경로를 기입하는 방식입니다. 주로 ..

반응형