[ML 05-1] 결정 트리
·
AI/혼공파 머신러닝+딥러닝
알코올 도수, 당도, pH를 이용해 화이트와인과 레드와인을 구분하는 task를 풀어보자.info() : 데이터프레임의 각 열의 데이터 타입과 누락된 데이터가 있는지 확인하는 데 유용.describe() : 열에 대한 간략한 통계를 출력. 최소, 최대, 평균값 등을 볼 수 있다. 여기서 알코올 도수와 당도, pH 값의 스케일이 다르니 이전에 했던 것처럼 사이킷런의 StandardScaler클래스를 사용해 특성을 표준화해야한다.점수가 높지 않다. 훈련 세트와 테스트 세트의 점수가 모두 낮으니 모델이 과소적합된 것 같다. 이 모델을 설명하기 위해 로지스틱 회귀가 학습한 계수와 절편을 출력해 보자.이렇게 보면 우리가 이 모델이 왜 저런 계수 값으로 학습했는지 정확히 이해하기 어렵다. 아마도 알코올 도수와 당도가..
[ML 04-2] 확률적 경사 하강법
·
AI/혼공파 머신러닝+딥러닝
경사 하강법은 경사를 따라 내려가는 방법을 말한다. 그럼 확률적이란 말은 무슨 뜻일까? 훈련 셋을 사용해 모델을 훈련하기 때문에 경사 하강법도 당연히 훈련 세트를 사용하여 가장 가파른 길을 찾을 것이다. 그런데 전체 샘플을 사용하지 않고 딱 하나의 샘플을 훈련 세트에서 랜덤하게 골라 가장 가파른 길을 찾는 것이다. 그다음 훈련 세트에서 랜덤하게 또 다른 샘플을 하나 선택하여 경사를 조금 내려가고 이런 식으로 전체 샘플을 모두 사용할 때까지 반복한다. 이처럼 훈련 세트에서 랜덤하게 하나의 샘플을 고르는 것이 확률적 경사 하강법이다. 모든 샘플을 다 사용했는데도 다 못내려왔다면 어떻게 할까? 훈련 세트에 모든 샘플을 다시 채워 넣는다. 그다음 다시 랜덤하게 하나의 샘플을 선택해 이어서 경사를 내려간다. 이렇..
[ML] 소프트맥스 회귀 구현하기
·
AI/ML
이번 챕터에서는 소프트맥스 회귀를 로우-레벨과 F.cross_entropy를 사용해서 구현해보겠습니다.앞으로의 모든 실습은 아래의 과정이 이미 진행되었다고 가정합니다.import torchimport torch.nn as nnimport torch.nn.functional as Fimport torch.optim as optimtorch.manual_seed(1)x_train = [[1, 2, 1, 1], [2, 1, 3, 2], [3, 1, 3, 4], [4, 1, 5, 5], [1, 7, 5, 5], [1, 2, 5, 6], [1, 6, 6, 6], [1, 7, 7, 7]]y_..
[ML] 소프트맥스 회귀(Softmax Regression) 이해하기
·
AI/ML
앞서 로지스틱 회귀를 통해 2개의 선택지 중에서 1개를 고르는 이진 분류(Binary Classification)를 풀어봤습니다. 이번 챕터에서는 소프트맥스 회귀를 통해 3개 이상의 선택지 중에서 1개를 고르는 다중 클래스 분류(Multi-Class Classification)를 실습해봅시다.1. 다중 클래스 분류(Multi-class Classification)이진 분류가 두 개의 답 중 하나를 고르는 문제였다면, 세 개 이상의 답 중 하나를 고르는 문제를 다중 클래스 분류(Multi-class Classification)라고 합니다. 아래의 문제는 꽃받침 길이, 꽃받침 넓이, 꽃잎 길이, 꽃잎 넓이라는 4개의 특성(feature)을 가지고 setosa, versicolor, virginica라는 3개..
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..
doocong22
'AI' 카테고리의 글 목록 (3 Page)