데이터사이언스 21

맥주 추천시스템 구현 - 2. 데이터 전처리

🍺리뷰 데이터 전처리 1. 여러 개의 파일 병합하기 우선 이전 포스팅에서 수집한 맥주별 csv 파일들을 하나로 합치겠습니다. import pandas as pd # 합친 데이터를 저장할 데이터프레임 data = pd.DataFrame(data=[], columns=['맥주정보', '검색이름', '맥주이름']) # 수집한 파일의 개수 files_cnt = 77 for i in range(files_cnt): # 해당 경로에서 beer_n_1.csv 형식의 파일들만 수집한 뒤 병합합니다. try : tmp = pd.read_csv(r'C:\Users\Ghyeon\beer_n_'+str(i)+'.csv', index_col=0) data = pd.concat([data,tmp]) # 오류 발생 시 넘어갑니다...

맥주 추천시스템 구현 - 1. 데이터 크롤링

🍺 리뷰 데이터 크롤링 💡 어떤 맥주를 수집할 것인가? 추천시스템 구현을 위한 리뷰 데이터를 먼저 수집하려고 합니다. 맥주 데이터를 크롤링 할 곳은 RateBeer라는 전 세계 맥주 리뷰 사이트입니다. BeerAdvocate와 함께 가장 큰 맥주 리뷰 사이트로 유명합니다. https://www.ratebeer.com 우선 필요한 라이브러리들을 가져오고, 수집할 맥주 목록을 정하도록 하겠습니다. import pandas as pd import numpy as np import time import re from selenium import webdriver from selenium.webdriver.chrome.options import Options 수집할 맥주는 국내 편의점에서 구매 가능한 맥주로 한정..

구글 플레이 스토어 - 리뷰 데이터 크롤링하기

스타듀밸리 어플 리뷰 크롤링 인디 게임인 스타듀밸리에 대한 리뷰를 크롤링 해보았습니다. 저도 구매해서 플레이 해봤는데 굉장히 재미있습니다. 다들 큰 기대 없이 시작하지만 한 번 빠지면 몇 시간 뚝딱입니다. Golden Joystick 혁신상을 비롯해 여러 곳에서 상을 받은 게임답습니다. play.google.com/store/apps/details?id=com.chucklefish.stardewvalley&hl=ko&gl=US 스타듀 밸리 Stardew Valley - Google Play 앱 ConcernedApe의 대인기 농장 RPG가 모바일 버전으로 찾아옵니다! 각종 수상 경력에 빛나는 농장 RPG에서 농촌으로 떠나 새로운 삶을 경험해 보세요! 50시간 이상의 즐길거리를 제공합니다. 새로운 엔 pl..

외모지상주의 - 베스트 댓글 크롤링하기

제가 즐겨 보는 네이버 웹툰인 외모지상주의 베스트 댓글을 수집하고 살펴보았습니다. 인기작가 '박태준'님의 신작으로 논란도 많았지만 그만큼 핫했던 작품입니다. 사람들은 어떤 베스트 댓글을 좋아했고, 어떤 내용의 회차였는지 궁금해서 크롤링을 해보았습니다. 1. 댓글 수집하기 1.1 셀레니움을 활용한 데이터 수집 크롤링을 위해 셀레니움을 사용했습니다. BeautifulSoup은 사용해 봤는데, 셀레니움을 요즘은 많이 사용하는 것 같더군요. 사용해보니 굉장히 강력한 툴이라는 생각이 들었습니다. 셀레니움을 사용하기 위해서는 Chromedriver를 먼저 설치해야 합니다. chromedriver.chromium.org/downloads Downloads - ChromeDriver - WebDriver for Chr..

Pandas - 데이터프레임 생성/병합/추출하기

파이썬은 원래 데이터 분석에 특화된 언어가 아닙니다. R로 분석하던 것을 파이썬으로 하고 싶은 개발자들이 만든 도구가 Numpy와 Pandas입니다. 데이터분석을 위한 파이썬의 기본 자료구조 딕셔너리, 리스트만으로는 부족했기 때문에, Pandas에는 데이터프레임, 시리즈라는 자료구조가 추가되었습니다. 1. 데이터 프레임 생성 데이터 프레임을 만드는 방법은 여러 가지가 있습니다. 일반적으로 배열, 리스트, 딕셔너리로 만들 수 있습니다. 1.1. 배열로 생성하기 첫 번째는 배열(array)을 이용해서 만드는 방법입니다. 우선 배열 자료구조를 사용하기 위해 numpy를 불러오고, pandas도 import 합니다. import pandas as pd import numpy as np sample_array =..

협업 필터링 - 최근접 이웃 협업 필터링이란? (CF)

1. 협업 필터링이란? Collaborative Filtering에서의 협업이란 다른 유저의 정보를 사용하겠다는 것입니다. 서로 평가한 내용들이 영향을 주고 받기 때문에 붙여진 이름이 아닐까 생각이 드네요. 협업 필터링은 최근접 이웃 협업 필터링(KNN)과 잠재 요인 협업 필터링 두 가지가 있습니다. 협업 필터링의 장점은 다른 유저들의 정보를 이용할 수 있다는 것입니다. 하지만 이전 포스팅에서 언급했던 Cold Start, Sparsity, First rater등의 단점도 존재합니다. western-sky.tistory.com/43 추천 시스템 - 컨텐츠 기반 필터링이란? (CBF) 추천 시스템 유형 목차 코로나로 인해 오프라인보다는 온라인 구매가 더 많아지고 있습니다. 온라인 마켓의 장점은 '시간과 공..

추천 시스템 - 컨텐츠 기반 필터링이란? (CBF)

코로나로 인해 오프라인보다는 온라인 구매가 더 많아지고 있습니다. 온라인 마켓의 장점은 '시간과 공간'에 제한되지 않는다는 것 같습니다. 문을 열고 닫는 시간도, 물건을 진열한 매장도 필요 없으니까요. 또한 사용자에게 구매할 가능성이 높은 제품을 '추천'해 줄 수도 있습니다. 이번 포스팅에서는 추천 시스템을 구현하는 방법 중 하나인 컨텐츠 기반 필터링에 대해 정리해보려고 합니다. 1. 컨텐츠 기반 필터링 추천시스템은 Utility Matrix에 기반하고 있습니다. Utility Matrix는 어떤 유저가 어떤 아이템들을 구매했는지를 나타낸 행렬입니다. 컨텐츠 기반 필터링은 '내용(Content)'에 알맞는 아이템을 추천해주는 것입니다. 유저 X가 아이템 Y를 구매했다면, Y와 비슷한 아이템을 추천해주는 ..

NBA 농구 강팀이 연승하는 이유는?

🛒데이터 수집 및 전처리 데이터는 캐글에 있는 NBA Regular Season Data를 사용하였습니다. https://www.kaggle.com/michaelmcfarlane/20172018-nba-regular-season-game-data 사용할 라이브러리와 파일을 불러오겠습니다. import pandas as pd import numpy as np import plotly.express as px import plotly.graph_objects as go import matplotlib.pyplot as plt import seaborn as sns from sklearn.cluster import KMeans from sklearn.preprocessing import MinMaxScaler..

12월 서울시 코로나 확진자 및 사망자 수 시각화

1. 데이터 수집 캐글에 있는 국내 코로나 환자들에 대한 데이터를 분석해보도록 하겠습니다. www.kaggle.com/hongsean/covid19-in-korea-dataset?select=COVID_Korea_geo.csv 전체 데이터에서 필요한 것들만 뽑아내는 과정을 거친 뒤에 시각화를 진행하였습니다. COVID_Korea_geo.csv로부터 12월 서울에 대한 정보만 뽑아내 시각화할 것입니다. 우선 필요한 라이브러리인 pandas와 plotly를 가져오고 최대 행 출력 수도 변경했습니다. import pandas as pd import plotly.graph_objects as go pd.set_option('display.max_row', 100) COVID_Koread_geo.csv 파일을 불..

Pickle과 Write 차이점 + With ... as 구문

바이너리 파일 저장 머신러닝 모델을 학습하는데는 오랜 시간이 걸리기 때문에 매 번 학습을 시키는 것은 비효율적입니다. 그래서 이전 포스팅에선 학습한 모델들을 바이너리 파일로 저장했습니다. western-sky.tistory.com/16?category=829395 머신러닝을 활용한 중고차 거래가 예측 - 회귀모형 모델링 Regression 모델 모델링의 경우 총 4가지 모델로 회귀 분석을 진행한 뒤, Stacking Ensemble 메타모델로 예측하였습니다. 1. 일반 선형회귀 2. 릿지(Ridge) 3. 라소(Lasso) 4. LightGBM --> Stacking Ensemble 데.. western-sky.tistory.com 이 때 사용한 라이브러리가 바로 Pickle입니다. pickle은 객체를..