이번 BITAmin 시계열 프로젝트에서 강화학습을 이용한 주식 실시간 트레이딩을 진행하게 되었는데, 프로젝트를 본격적으로 시작하기 전에 공부했던 강화학습의 개념에 대해 정리하고 가고자 한다. 강화학습은 마르코프 의사결정 과정에 학습에 개념을 넣은 것인데, 이번 포스팅에서는 강화학습 뿐만 아니라 많은 모델들의 기본이 되기도 하는 마르코프 의사 결정 과정에 대해 정리해보고자 한다. 먼저,강화학습이란,머신러닝의 한 종류로, 어떠한 환경에서 어떠한 행동을 했을 때 그것이 잘 된 행동인지 잘못된 행동인지를 나중에 판단하고 보상 (또는 벌칙)을 줌으로써 반복을 통해 스스로 학습하게 하는 분야이다. 그림을 보면 알 수 있듯이 강화학습의 두 가지 구성요소는 환경과 에이전트이다.에이전트 : 특정환경에서 행동을 결정..
추천 시스템의 유형 콘텐츠 기반 필터링 협업 필터링 최근접 이웃 협업 필터링 잠재 요인 협업 필터링 콘텐츠 기반 필터링 추천 시스템 사용자가 특정한 아이템을 매우 선호하는 경우, 그 아이템과 비슷한 콘텐츠를 가진 다른 아이템을 추천하는 방식 ex) 사용자가 특정 영화에 높은 평점을 줬다면 그 영화의 장르, 출연 배우, 감독, 영화 키워드 등의 콘텐츠와 유사한 다른 영화를 추천해주는 방식 최근접 이웃 협업 필터링 친구들에게 물어보는 것과 유사한 방식으로, 사용자가 아이템에 매긴 평점 정보나 상품 구매 이력과 같은 사용자 행동 양식만을 기반으로 추천을 수행하는 것이 협업 필터링 방식 협업필터링 -> 사용자-아이템 평점 매트릭스와 같은 축적된 사용자 행동 데이터를 기반으로 사용자가 아직 평가하지 않은 아이템을..
목차 1. 한글 텍스트 처리 - 네이버 영화 평점 감성 분석 2. 텍스트 분석 실습 - 캐글 mercari price suggestion challenge 1. 한글 텍스트 처리 - 네이버 영화 평점 감성 분석 KoNLPy 소개 파이썬의 대표적인 한글 형태소 패키지 **형태소 분석 : 말뭉치를 형태소 어근 단위로 쪼개고 각 형태소에 품사 태깅을 부착하는 작업 ** 한글 형태소 엔진 -sns 분석에 적합한 twitter 클래스 이용 twitter 객체의 morphs() 메서드를 이요하면 입력 인자로 들어온 문장을 형태소 단어 형태로 토큰화해 list 객체로 반환함. *항상! 테스트 세트를 이용해 예측할 때는 학습할 때 적용한 TfidfVectorizer를 그대로 사용해야함. 그래야 학습시 설정된 Tfidf..
문서 유사도 문서와 문서 간의 유사도 비교는 일반적으로 코사인 유사도(Cosine Similarity)를 사용함. ** 코사인 유사도 : 벡터와 벡터 간의 유사도를 비교할 때 벡터의 크기보다는 벡터의 상호 방향성이 얼마나 유사한지에 기반함. → 두 벡터의 사잇각을 구해서 얼마나 유사한지 수치로 적용 두 벡터 사잇각 A * B = ||A||||B||cosθ 따라서, 유사도 cosθ는 두 벡터의 내적을 총 벡터 크기의 합으로 나눈 것 (내적 결과를 총 벡터 크기로 정규화한 것) **코사인 유사도가 문서의 유사도 비교에 가장 많이 사용되는 이유 : 문서를 피처 벡터화 변환하면 차원이 매우 많은 희소 행렬이 되기 쉬움. 희소 행렬 기반에서 문서와 문서 벡터 간의 크기에 기반한 유사도 지표(ex.유클리드)는 정확..
문서 군집화 소개와 실습(Opinion Review 데이터 세트) 문서 군집화 : 비슷한 텍스트 구성의 문서를 군집화 하는 것 ↔ 사전에 결정 카테고리 값을 가진 학습 데이터가 필요한 텍스트 분류 기반의 문서분류와 다르게, 문서 군집화는 학습 데이터 세트가 필요없는 비지도학습 (군집화) 기반으로 동작함. +TfidfVectorizer는 Lemmatization 같은 어근 변환을 직접 지원하지는 않지만, tokenizer 인자에 커스텀 어근 변환 함수를 적용해 어근 변환을 수행할 수 있음. 벡터화 수행해주고, k-평균 이용해서 군집화 해줌. → cluster_label(0, 1, 2..) 별로 filename 확인하면 어떻게 군집화 되어있는지 볼 수 있음. → 군집화된 결과 보면, 군집개수가 많게 설정 되..
토픽 모델링 - 20 뉴스그룹 토픽 모델링 : 문서 집합에 숨어 있는 주제를 찾아내는 것. 숨겨진 주제를 효과적으로 표현할 수 있는 중심 단어를 함축적으로 추출함. -LSA, LDA(Count 기반의 벡터화만 사용) from sklearn.datasets import fetch_20newsgroups from sklearn.feature_extraction.text import CountVectorizer from sklearn.decomposition import LatentDirichletAllocation # 모터사이클, 야구, 그래픽스, 윈도우즈, 중동, 기독교, 의학, 우주 주제를 추출. cats = ['rec.motorcycles', 'rec.sport.baseball', 'comp.graph..