본문 바로가기

Python-머신러닝

영화 추천 시스템 2/2 - 실습: star wars 를 본 사람들에게 영화를 추천할 것입니다. 5개의 추천 영화 제목을 찾으세요. ㄴ힌트 : 먼저 star wars 의 정확한 이름을 검색해서 찾으세요. 그리고 나서 스타워즈를 본 유저의 데이터를 가져와서, 위와 같이 상관관계분석을 합니다. movies_rating_df['title'].unique() # 찾아오는 방법은 또 있다. # moive_titles_df.loc[moive_titles_df['title'].str.lower().str.contains('star'),] # ...에서도 찾을 수 있다. df['Star Wars (1977)'] Startwars_corr = df.corrwith(df['Star Wars (1977)']) # 스타워즈와 모든 컬럼의 관계 Sta.. 더보기
영화 추천 시스템 1/2 추천시스템: 어떤 사람이 한 영화를 봤다. User-Based Collaborative Filtering - 유저 기반으로, 유저가 사거나 본 아이템을 행렬로 만든다 - 유저간의 유사도를 측정하여, 비슷한 유저를 찾는다. - 비슷한 유저를 기반으로 아이템을 추천해준다. -> 상당히 기본적인 방법이나 한계가 있더라. - 아이템(제품/영화 등)보다 유저가 많아지면, 복잡도가 올라간다. - 유저의 기호는 변한다. (오늘은 액션 시청, 내일은 로맨스 시청) - 따라서 유저기반의 협업 필터링보다, 아이템 기반의 협업 필터링을 사용한다. Item-Based Collaborative Filtering - 사람이 아닌 아이템(제품/영화 등)간의 관계를 기반으로 추천해주는 시스템 - 두 사람이, 타이타닉도 봤고, 웤투리.. 더보기
범죄율 예측: pd.to_datetime(), dt.weekday, 데이터 출처: https://www.kaggle.com/currie32/crimes-in-chicago ㄴ 2005-2007만 작업하기로 함. ㄴ 구글 드라이브 Colab Notebook에 파일 업로드 해놓음. 작업확경: Colab Notebook import pandas as pd import numpy as np import matplotlib.pyplot as plt import random import seaborn as sns from fbprophet import Prophet from google.colab import drive drive.mount('/content/drive') import os os.chdir('/content/drive/MyDrive/Colab Notebooks') .. 더보기
가격 예측 알고리즘: Facebook Prophet Facebook Prophet 페이스북에서 만든 라이브러리, 타임시리즈 데이터를 처리하는 것. install : pip install fbprophet 위 에러 발생시 : conda install -c conda-forge fbprophet ex) 아보카도 가격 예측 ㄴ 데이터는 미국의 아보카도 리테일 데이터 입니다. (2018년도 weekly 데이터) ㄴ 아보카도 거래량과 가격이 나와 있습니다. ㄴ 컬럼설명: - Date - The date of the observation - AveragePrice - the average price of a single avocado - type - conventional or organic - year - the year - Region - the city or .. 더보기
댓글의 긍정/부정 인공지능 알고리즘(나이브 베이즈/서포터 백터 머신) 작업확경: Colab Notebook 댓글을 봤을 때, 긍정/부정을 판단하는 인공지능을 만들려고 한다. ㄴ 긍정/부정을 판단하는 인공지능이기에, supervised Learning! ex) YELP 서비스의 리뷰 분석 (NLP) ㄴ stars 컬럼은, 유저가 1점부터 5점까지 준 별점이 들어있다. ㄴ text 컬럼은, 별점을 준 유저의 리뷰가 들어있다. ㄴ cool, useful, funny 컬럼은, 다른사람들이 이 리뷰 글에 투표한 숫자다. 따라서 쿨이 3개이면, 이 리뷰에 대해서 3명이 쿨에 공감했다는 뜻이다. - import libraries import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as.. 더보기
나이브 베이즈(Naive Bayes) 및 구글 코랩( Colab), Word Cloud2 나이브 베이즈(Naive Bayes)를 이용한 스팸 분류 ㄴ5,574개의 이메일 메시지가 있으며, 스팸인지 아닌지의 정보를 가지고 있다. ㄴ 컬럼 : text, spam ㄴ spam 컬럼의 값이 1이면 스팸이고, 0이면 스팸이 아닙니다. ㄴ 스팸인지 아닌지 분류하는 인공지능을 만들자 - 수퍼바이즈드 러닝의 분류 문제! - 구글 Colab 코랩 작업환경 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns %matplotlib inline - 구글 코랩에서 csv 파일 읽기 from google.colab import drive drive.mount('/content/drive') import .. 더보기
실습 및 피쳐스케일링에서 원래 값으로 되돌리기, inverse_transform() ex) 다음과 같은 컬럼을 가지고 있는 데이터셋을 읽어서, 어떠한 고객이 있을때, 그 고객이 얼마정도의 차를 구매할 수 있을지를 예측하여, 그 사람에게 맞는 자동차를 보여주려 한다. - Customer Name - Customer e-mail - Country - Gender - Age - Annual Salary - Credit Card Debt - Net Worth (순자산) 예측하고자 하는 값 : - Car Purchase Amount import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns car_df.columns ex) 상관관계를 분석하기 위해, pairplot을 그려보자. sns.pa.. 더보기
Count Vectorizing 카운트 벡터라이징: CountVectorizer() - 문장을 원핫인코딩의 형식으로 하나씩 갯수를 표시하는 것을 count라고 하고 - 문자를 숫자로 바꾸는 걸 vectorizing이라고 함. -> 이 두개를 합쳐서 count vectorizing이라고 함 규칙: 1. 모든 리뷰에 나온 단어를 뽑아서 알파벳 순서로 정렬 2. 정렬한 순서대로 컬럼을 나눈다. 3. 해당 리뷰에 쓰인 위치에 나온 단어만, from sklearn.feature_extraction.text import CountVectorizer vec = CountVectorizer() count_vec= vec.fit_transform(df['verified_reviews']) ㄴ 행렬 vec.fit_transform() ㄴ fit : 모든 리뷰의 단어를 다 뽑아서 정렬해서 컬럼으로 뽑아라... 더보기