본문 바로가기

분류 전체보기

(174)
포트폴리오를 위한 추천 알고리즘 구현 [3장] : Scikit-Surprise Surprise를 이용해 잠재 요인 협업 필터링 기반의 개인화된 영화 추천을 구현해 보겠습니다. 지금까지 살펴본 Surprise예제는 학습 데이터로 fit()을 호출해 학습한 뒤 테스트 데이터로 test()를 호출해 예측 평점을 계산하고 MSE/RMSE로 성능을 평가했습니다. 이제는 Surprise패키지로 학습된 추천 알고리즘을 기반으로 특정 사용자가 아직 평점을 매기지 않은(관람하지 않은) 영화 중에서 개인 취향에 가장 적절한 영화를 추천해 보겠습니다. 이번에는 데이터를 학습 데이터와 테스트 데이터로 분리하지 않고 전체를 학습 데이터로 사용하겠습니다. 그런데 Surprise는 데이터 세트를 train_test_split()을 이용해 내부에서 사용하는 TrainSet 클래스 객체로 반환하지 않으면 fit..
제휴 모델 자동화[1 : 애드픽(AdPick)의 뉴스픽(NewsPick) 링크 자동으로 만들기 제휴 모델 자동화에 대한 궁금증이 있어 재미삼아 만들어 본 애드픽의 제휴 서비스인 뉴스픽의 연예뉴스를 가져와 자동으로 본인의 제휴 링크로 자동으로 변환하는 프로그램을 만들었습니다. 동작 방법 1. 기본정보 입력: 애드픽 아이디/비밀번호 등록, 크롬 드라이버 위치 지정, 링크 만들 뉴스픽 URL지정, 가져올 뉴스 갯수 입력, 결과 화일 자동 생성 위치 지정 2. 실행하면, 자동으로 애드픽에 로그인 됨 3. 뉴스픽 URL에서 뉴스 상세 URL, 제목을 자동으로 크롤링 후 애드픽에서 본인의 제휴 URL로 자동 변경 4. 상세 뉴스 URL이동 후 상세 뉴스 기사와 이미지 정보 가져옴. 3번 정보와 합쳐짐 5. 결과 화일 자동 생성 후 CSV형태 저장 동작 상세 현황 1. 아래와 같이 기본정보를 입력하고 실행하면..
Python으로 코호트 분석(Cohort Analysis)하고 Pandas 명령어 시행 What is Cohort Analysis? 코호트 분석이란? 코호트(Cohort)는 가입 날짜, 첫 구매 월, 생년월일, 유입 채널 등 공통점을 공유하는 사용자 그룹을 말하는 것으로 비즈니스에서 많이 사용되는 용어입니다. 코호트 분석은 이러한 그룹을 시간에 따라 추적하여 파악하는 데 도움이 되는 방법으로 반복 적인 고객 행동 (구매, 참여, 지출 금액 등)을 이해하고 고객 및 수익 유지를 모니터링하는데 많이 이용을 합니다. 코호트 분석이 가치가 있는 이유? 코호트 분석은 고객의 충성도로 비즈니스의 건전성과 "고착성(Stickiness)"을 이해하는 데 도움을 줍니다. 신규 고객을 확보하는 것보다 현재 고객을 유지하는 것이 비용적으로 효율적이기 때문에 "고착성(Stickness)"은 매우 중요합니다. S..
포트폴리오를 위한 추천 알고리즘 구현 [2장] : Scikit-Surprise 포트폴리오를 위한 추천 알고리즘 구현 [1장] : Scikit-Surprise 포트폴리오 구성을 위한 첫 번째 시간입니다. 추천 알고리즘 구현을 위해 포트폴리오를 구성하기 위한 실습을 하겠습니다. 본 과정을 통해 초급자로서 기본적인 추천 알고리즘을 구현하고 차 nicola-ml.tistory.com 포트폴리오 구성을 위한 두 번째 시간입니다. 먼저 이전 시간에 보충하기로 했던 내용에 대해 알아보겠습니다. ! 다음에 공부해야 할 내용 - 잠재요인 협업 필터링(Latent Factor), SVD 협업 필터링의 주요 목표는 사용자-아이템 평점 매트릭스와 같은 축적된 사용자 행동 데이터를 기반으로 사용자가 아직 평가하지 않은 아이템을 예측 평가(Predicted Rating)하는 것입니다. 예를 들어 특정 사용..
입문자 위한 Python 기본 안내서 [2] : 제어문에 대해 머신러닝 공부를 하기전 입문자를 위한 Python 기본 안내서 입니다. 무작정 따라하면서 기본을 알아보는 시간입니다. 무작정 따라합니다! 2. Python 제어문 2-1 조건문(if): 이거하나면 끝 (if 조건1: 활동1 elif 조건2: 활동2 else: 활동3) a = -2; if a > 0: print('a는 양수') elif a < 0: print('a는 음수') else: print('a는 0') 2-2 for 반복문: 예제로 익혀봐요. list1 = [] num_list = [1,2,3] for num in num_list: list1.append(num*2) print(list1) print(list1) → [2, 4, 6] 2-3 while 반복문: 예제로 익혀봐요. order = 1 w..
입문자 위한 Python 기본 안내서 [1] : 자료형에 대해 머신러닝 공부를 하기전 입문자를 위한 Python 기본 안내서 입니다. 무작정 따라하면서 기본을 알아보는 시간입니다. 무작정 따라합니다! 1. Python 자료형 1-1 숫자형: 숫자형 데이터는 정수형(int)과 실수형(float)으로 구분됩니다. 정수형은 자연수와 정수, 소수점이 있는 숫자는 실수형이죠. var1 = 10 type(var1) → int *)자료형을 확인할 때는 type을 사용합니다. var2 = 3.14 type(var2) → float var3 = 1+3 var4 = 3+1.3 type(var3) type(var4) → int → float *)정수형과 실수형을 더하면 실수형으로 변합니다. 1-2 문자형: 큰 따움표(" ") 또는 작은 따옴표(' ') 안에 알파벳, 한글, 숫자, 공백..
[실습] 매일 경제 기사 Python 크롤링 후 Dataframe에 넣은 후 CSV에 저장하기 매일경제에서 '부동산'을 검색하여 나오는 기사를 크롤링하는 내용입니다. 내부 오류인지 매일경제에서 2021년 이전을 검색하면 검색결과가 안나오고 있습니다. [내부문제인듯~] 크롤링 한 후 Dataframe에 넣은 후 CSV에 저장하는 단계를 거치게 됩니다. 본 내용을 통해 Dataframe을 응용한 손쉬운 내부 저장과 한 줄로 CSV로 전환을 하는 부분을 배워 유익했음. import bs4 import re from urllib import parse import requests #input date_start = "20210410" date_end = "20210421" search = "%BA%CE%B5%BF%BB%EA" #부동산 y1 = date_start[0:4] m1 = date_start[4:..
포트폴리오를 위한 추천 알고리즘 구현 [1장] : Scikit-Surprise 포트폴리오 구성을 위한 첫 번째 시간입니다. 추천 알고리즘 구현을 위해 포트폴리오를 구성하기 위한 실습을 하겠습니다. 본 과정을 통해 초급자로서 기본적인 추천 알고리즘을 구현하고 차 후 응용하여 실무에 적용하려 합니다. 추천 알고리즘에 콘텐츠 기반 필터링, 아이템 기반 협업 필터링, 잠재 요인 기반 협업 필터링 등이 있으나 실제적인 서비스 구현을 위해서는 알고리즘 외에 대용량 트래픽에 안전한 네트워크 구축과 보안정책 수립, 실제 알고리즘을 적용하기 위한 프론트 개발자와의 협업 등 매우 다양한 협업이 필요합니다. 그 시작으로 파이썬 기반에서 작동하는 Surprise 추천 패키지를 구동하고 응용하여 한글 검색도 가능한 수준의 검색 추천 알고리즘을 구현합니다. 이정도 스펙에서도 Mid급이나 Small Size..
Pandas Sidetable: 판다스 똑똑하게 사용하기 - Freq, Counts, Missing, Subtotal Pandas의 기능 중 하나인 Sidetable은 데이터 프레임의 요약을 더 쉽게 만들 수 있는 추가 기능 중 하나이다. Sidetable은 group by 와 같이 작동 할 수 있으며 group by 함수와 결합하여 더 많은 정보를 정제하는데 도움이 될 수 으며, 특히 Daily Analysis작업을 하는 Data Scientist에게 매우 유용한 기능이 될 수 있다. sidetable은 library를 따로 설치하면 됩니다. 본 예제에서 사용하는 데이타는 Direct Marketing의 데이타를 사용합니다. 1. Freq Function Freq function은 아래 3가지 정보를 받게 됩니다. - 각 카테고리에 대한 value_counts() - 전체 열에서 각 범주의 백분율 (value_coun..
아이템 기반 최근접 이웃 협업 필터링 실습 - MovieLens 최근접 이웃 협업 필터링은 사용자 기반과 아이템 기반으로 분류합니다. 이 중 일반적으로 추천 정확도가 더 뛰어난 아이템 기반의 협업 필터링을 구현해 보겠습니다. 하기 Site에서 ml-latest-small.zip 파일을 다운로드합니다. MovieLens Latest Datasets These datasets will change over time, and are not appropriate for reporting research results. We will keep the download links stable for automated downloads. We will not archive or make available p… grouplens.org 데이터 로딩 및 가공 import pandas ..
구글코랩 - 구글의 클라우드에서 GPU를 무료로 사용하는 분석 코랩은 구글 클라우드 환경에서 파이썬 데이터 분석을 가능하게 하는 무료 코드 에디터입니다. 웹브라우저에서 바로 실행하기 때문에 인터넷 접속이 가능한 컴퓨터와 스마트폰만 있다면 자유롭게 사용 가능하다. 주피터 노트북(Jupyter Notebook) 환겨을 기반으로 만들어져 있어 사용이 편리합니다. 최대 장점은- 설치가 필요 없다.- 인터넷이 접속되는 컴퓨터만 있으면 사용 가능하다.- Google Drive, GitHub와 연동될 수 있다. - 머신러닝, 딥러닝에 필요한 GPU 환경이 지원된다. 별도로 그래픽카드를 살 필요가 없다. 제한 사항은- 무료 계정의 경우 사용 12시간이 넘으면 세션이 종료된다.- 램과 저장 장치 디스크 용량에 제한이 있다. 구글 코렙 사용방법 1. 구글 로그인 2. 싸이트이동: c..
데이터 과학자 (Data Scientist) 인터뷰에 나오는 질문 Top8 데이터 과학자에게 있어 통계는 기초 하나로 데이터 과학을 배우려는 모든 전문가는 이 주제에 대한 광범위한 지식을 가지고 있어야 합니다. 통계는 데이터 과학자의 커리어에 있어 더 나은 비즈니스 결정을 내리는 데 도움이 됩니다. 채용을 해야 하는 매니져라면 첫 인터뷰에서 아래 통계 질문이 유용 할 수 있습니다. 경력과 포지션에 따라 더 깊이 파고 들고 질문을 하면 원하는 경력자를 채용할 수 있게 되겠죠. #1. '신뢰 구간 (Confidence Interval)'을 정의하세요? 신뢰 구간은 통계적 추론을 통해 추출 할 수있는 매개 변수의 구간 추정이라고합니다 . 따라서 아래 공식을 사용하여 계산됩니다. [point_estimation — cv * sd, point_estimation + cv * sd] 여기..
심장질환 발병 예측하기 - SVM, K Nearset Neighbour, ANN Multilayer Perceptron 세 가지 다른 ML 알고리즘을 사용하여 관상 동맥 심장 질환을 예측하는 예시를 보겠습니다. SVM(서포트 벡터 머신), KNN(최근접-K), ANN(ANN Multilayer Perceptron)를 통해 어떤 모델이 최선의 접근인지에 대해 알아보겠습니다. ● Data Description 데이터 출처는 남아프리카 심장병 데이터 Set을 사용합니다. : https://www.openml.org/d/1498 OpenML OpenML: exploring machine learning better, together. An open science platform for machine learning. www.openml.org 데이타 속성은 다음의 10가지를 사용합니다. Systolic blood pressure..
콘텐츠 기반 필터링 : TMDB 5000 Movie Dataset TMDB 5000 영화 데이터 세트는 유명한 영화 데이터 정보 사이트인 IMDB의 많은 영화 중 주요 5000개 영화에 대한 메타 정보를 새롭게 가공해 캐글에서 제공하는 데이터 세트입니다. 아래 Site에서 tmdb_5000_credits.csv와 tmdb_5000_movies.csv 두 개의 파일을 내려받으면 됩니다. TMDB 5000 Movie Dataset Metadata on ~5,000 movies from TMDb www.kaggle.com 장르 속성을 이용한 영화 콘텐츠 기반 필터팅 콘텐츠 기반 필터링은 사용자가 특정 영화를 감상하고 그 영화를 좋아했다면 그 영화와 비슷한 특성/속성, 구성 요소 등을 가진 다른 영화를 추천하는 것입니다. 가령 영화 '인셉션'을 재미있게 봤다면 '인셉션'의 장..
Kmeans의 K값을 정하는 기준 : Elbow Method, Silhouette Score(실루엣 스코어) K-means 알고리즘의 적정의 K값을 선택하는 어려움이 있습니다. 다양한 방법으로 최적의 K를 구하는 방법이 있습니다. 이 중 가장 보편적으로 사용하는 Elbow Method, Silhouette Score에 대해 알아보겠습니다. Elbow Method 가장 보편적으로 이용되는 방법으로 클러스터 내의 총 변동을 설명하는 WCSS(Within Clusters Sum of Squares)를 이용합니다. WCSS= ∑Pi in Cluster1 distance (Pi C1)2 +∑Pi in Cluster2distance (Pi C2)2+∑Pi in CLuster3 distance (Pi C3)2 다음의 방법으로 이용합니다. 1. 사용하고자 하는 클러스터 범위를 지정한다. 2. 각 클러스터를 WCSS방법으로 계..
추천 시스템의 이해 : 콘텐츠 기반 필터링 추천 시스템 / 최근접 이웃 협업 필터링 / 잠재 요인 협업 필터링 추천 시스템은 크게 콘텐츠 기반 필터링(Content Based Filtering) 방식과 협업 필터링(Collaborative Filtering) 방식으로 나뉩니다. 그리고 협업 필터링 방식은 다시 최근접 이웃(Nearest Neighbor) 협업 필터링과 잠재 요인(Latent Factor)협업 필터링으로 나뉩니다. 현재는 넷플릭스 추천 시스템 경연 대회에서 행렬 분해(Matrix Factorization)기법을 이용한 잠재 요인 협업 필터링 방식이 우승하면서 대부분의 온라인 스토어에서 잠재 요인 협업 필터링 기반의 추천 시스템을 적용하고 있습니다. 요즘은 서비스하는 아이템의 특성에 따라 콘텐츠 기반 필터링이나 최근접 이웃 기반 협업 필터링 방식을 유지하는 사이트도 많으며, 특히 아마존의 경우는 아이..