L05.1 User-free Models Practice
·
AI/추천 시스템 설계
last.fm 데이터셋● last.fm: 온라인 음악 Database, 추천 서비스● HetRec 2011 에서 데이터셋 공개    ○ 92,800 artists, 1892 users    ○ https://grouplens.org/datasets/hetrec-2011/!wget https://files.grouplens.org/datasets/hetrec2011/hetrec2011-lastfm-2k.zip!unzip hetrec2011-lastfm-2k.zip 데이터 준비● artists 정보 불러오기artists = {}with open('artists.dat', 'r') as f: print(f.readline()) for line in f: id, name, _, _ = l..
L04.1 Implicit Feedback Practice
·
AI/추천 시스템 설계
Instance Reweighting ● 각 instance 별로 가중치 부여하기 ○ 어떤 (negative/positive) instance가 중요한가? ● 가중치는 휴리스틱에 근거하여 결정 Bayesian Personalized Ranking ● Idea: 사용자가 아이템을 싫어할지 여부를 맞추는 대신, 덜 좋아하는 정도를 맞춘다면 어떨까? ● Goal: 각 사용자 별로 개인화된 ranking function을 예측하기 ○ 아이템 i와 j를 함께 비교 ○ i: 사용자 u가 이미 본 아이템 ○ j: 사용자 u가 안 본 아이템 ○ i가 j에 비해 더 높은 점수를 가지도록 학습 ● Basic scheme: ○ 원래 데이터셋은 positive 만 있음 (u, i) ■ 즉, 사용자가 아이템을 봤다는 정보 ○ ..
L03.2 Rating Prediction Practice
·
AI/추천 시스템 설계
데이터 준비 ● ml-latest-small: 소규모 데이터셋 ○ 100,000 ratings, 9000 movies, 600 users ● wget: url로부터 파일을 다운로드 받는 쉘 명령어 ● unzip: zip 압축 파일을 해제하는 쉘 명령어 !wget https://files.grouplens.org/datasets/movielens/ml-latest-small.zip !unzip ml-latest-small.zip ● ratings.csv 에서 각 열을 각각 users, items, ratings에 numpy array 형태로 저장 import numpy as np users = [] items = [] ratings = [] with open("ml-latest-small/ratings.c..
L03.1 Rating Prediction Practice
·
AI/추천 시스템 설계
데이터 준비 ● wget: url로부터 파일을 다운로드 받는 쉘 명령어 ● unzip: zip 압축 파일을 해제하는 쉘 명령어 !wget https://files.grouplens.org/datasets/movielens/ml-25m.zip !unzip ml-25m.zip ● ratings.csv 에서 각 열을 각각 users, items, ratings에 numpy array 형태로 저장 import numpy as np with open("ml-25m/ratings.csv", "r") as f: print(f.readline()) # skip column names users = [] items = [] ratings = [] for line in f: uid, mid, rating, timestam..
L02.1 Finding Similar Items Practice
·
AI/추천 시스템 설계
MovieLens에서 사용자의 영화 별점을 예측하는 프로그램을 만들어보자. 우선 데이터셋을 다운받는다. !wget https://files.grouplens.org/datasets/movielens/ml-25m.zip !unzip ml-25m.zip 이 데이터는 sparse 데이터 셋이다. 전체 데이터셋 크기는 user수 x movie수 인데, 실제로 rating이 매겨진 곳은 훨씬 적기 때문이다. 이 상황에서 우리가 피어슨 유사도나 자카드 유사도를 빠르게 계산하는 방법에 대해서 알아볼 것 이다. 장르가 유사한 영화 찾기 ● 영화 제목(movies)과 장르(genresets) 불러오기 ○ csv (comma separated values) 파일: 값들을 쉼표로 구분한 텍스트 파일 movies에는 titl..
[ML] 원-핫 인코딩(One-Hot Encoding)
·
AI/ML
이번 챕터에서는 범주형 데이터를 처리할 때 레이블을 표현하는 방법인 원-핫 인코딩에 대해서 배워봅시다. 1. 원-핫 인코딩(One-hot encoding)이란? 원-핫 인코딩은 선택해야 하는 선택지의 개수만큼의 차원을 가지면서, 각 선택지의 인덱스에 해당하는 원소에는 1, 나머지 원소는 0의 값을 가지도록 하는 표현 방법입니다. 예를 들어 강아지, 고양이, 냉장고라는 3개의 선택지가 있다고 해보겠습니다. 원-핫 인코딩을 하기 위해서는 우선 각 선택지에 순차적으로 정수 인덱스를 부여합니다. 임의로 강아지는 0번 인덱스, 고양이는 1번 인덱스, 냉장고는 2번 인덱스를 부여하였다고 해봅시다. 이때 각 선택지에 대해서 원-핫 인코딩이 된 벡터는 다음과 같습니다. 강아지 = [1, 0, 0] 고양이 = [0, 1..
[ML 04-1] 로지스틱 회귀
·
AI/혼공파 머신러닝+딥러닝
어떤 박스에 들어간 생선의 크기, 무게 등이 주어졌을 때 7개 생선에 대한 확률을 출력하려는 문제를 풀려고 한다. 이에 대해 k-최근접 이웃은 주변 이웃을 찾아주니까 이웃의 클래스 비율을 확률이라고 출력하면 되지않을까?라는 아이디어를 활용할 것이다. import pandas as pd fish = pd.read_csv('https://bit.ly/fish_csv_data') fish.head() 이 데이터 프레임에서 Species열을 타깃(정답값)으로 만들고 나머지 5개 열은 입력 데이터로 사용할 것이다([3]실행). 그리고 [5]실행 부분에서 훈련 세트와 테스트 세트로 나눈다. StandardScaler클래스를 사용해 훈련 세트와 테스트 세트를 표준화 전처리해주고 훈련 세트의 통계 값으로 테스트 세트도..
[ML 03-3] 특성공학과 규제 - 릿지(Ridge), 라쏘(Lasso)
·
AI/혼공파 머신러닝+딥러닝
이전 글에서 특성을 길이만 보니 일직선으로만 그래프가 그려서 성능이 좋지않아 길이를 제곱한 특성도 넣었더니 더 잘 예측하는 것을 확인할 수 있었다. 근데 여전히 훈련 셋보다 테스트 셋의 점수가 높았다.(underfitting) 이 문제를 해결하려면 제곱보다 더 고차항을 넣어야 할 것 같은데 얼만큼 더 고차항을 넣어야 할지모르고 수동으로 이렇게 고차항을 넣기도 힘들다. 그래서 가지고 있는 특성끼리를 서로 곱해서 또 다른 새로운 특성을 만드는 작업을 할 수 있다. 이 예제에서는 농어의 길이뿐만 아니라 농어의 높이와 두께도 함께 사용햇다. 그리고 3개의 특성을 각각 제곱하여 추가하고 각 특성을 서로 곱해서 또 다른 특성을 만들었다. 즉 '농어 길이 x 농어 높이'를 새로운 특성으로 만들 것이다. 이렇게 기존의..
[ML] 로지스틱 회귀(Logistic Regression)
·
AI/ML
일상 속 풀고자하는 많은 문제 중에서는 두 개의 선택지 중에서 정답을 고르는 문제가 많습니다. 예를 들어 시험 점수가 합격인지 불합격인지 정상메일인지 스팸메일인지 이렇게 둘 중 하나를 결정하는 문제를 이진 분류(Binary Classification)라고 합니다. 그리고 이진 분류를 풀기 위한 대표적인 알고리즘으로 로지스틱 회귀(Logistic Regression)가 있습니다. 로지스틱 회귀는 알고리즘의 이름은 회귀이지만 실제로는 분류(Classification) 작업에 사용할 수 있습니다. 1. 이진 분류(Binary Classification) 학생들이 시험 성적에 따라서 합격, 불합격이 기재된 데이터가 있다고 가정해봅시다. 시험 성적이 x라면, 합불 결과는 y입니다. 이 시험의 커트라인은 공개되지 ..
[ML] 커스텀 데이터셋(Custom Dataset)
·
AI/ML
1. 커스텀 데이터셋(Custom Dataset) 앞서 사용했던 torch.utils.data.Dataset과 torch.utils.data.DataLoader 외에 torch.utils.data.Dataset을 상속받아 직접 커스텀 데이터셋(Custom Dataset)을 만드는 경우도 있습니다. torch.utils.data.Dataset은 파이토치에서 데이터셋을 제공하는 추상 클래스입니다. Dataset을 상속받아 다음 메소드들을 오버라이드 하여 커스텀 데이터셋을 만들어보겠습니다. 커스텀 데이터셋을 만들 때, 일단 가장 기본적인 뼈대는 아래와 같습니다. 여기서 필요한 기본적인 define은 3개입니다. class CustomDataset(torch.utils.data.Dataset): def __in..
doocong22
'AI' 카테고리의 글 목록 (4 Page)