목록Data (68)
우노
스팸 필터 스팸 메일은 어떻게 분류 할 수 있을까? Naive Bayes 통계적 분류기 각 분류별 확률 값을 계산 분류 해주는 게 아니라 확률 값을 계산해준다. 베이즈 정리에 따라 확률 계산 확률 계산의 단서(메일에 포함된 단어)들이 서로 조건부독립임을 가정 확률 계산이 단순해진다. Naive Bayes 스팸 필터 새로운 메일이 왔다. 스팸인지 알아보려면? 해당 메일의 내용을 보지 않았을 때 예) 기존 스팸 메일과 일반 메일의 비율 만 보고 단순하게 일반 메일 80%, 스팸 메일 20%와 같이 예측 할 수 있다. 해당 메일의 내용을 봤을 때 메일에 포함된 단어들이 스팸 메일에 자주 나오는 단어인지, 일반 메일에 자주 나오는 단어인지를 살펴보고 스팸 여부를 판단 할 수 있다. 위와 같은 결과를 위해선 먼저..
MovieLens 데이터 영화 평점 데이터셋 크기별로 다양하게 존재 : 100K, 1M, 10M, 20M 실습에서 사용할 데이터셋 : 100K https://grouplens.org/datasets/movielens/ 데이터 준비 ml-100k.zip 파일을 받아서 적절한 위치에 압축풀기 Pytorch 사용하기 필요한 모듈 import 하기 import torch import pandas as pd import torch.nn.functional as F import matplotlib.pyplot as plt 파일 불러오기 Pandas를 이용하여 파일 불러오기 train = pd.read_csv("../ds_data/ml-100k/ua.base", sep="\t", names=['user'..
별점 예측 부분에서 Collaborative filtering보다 동작을 잘하는게 Latent Factor Model이다. 하지만 단점이 존재한다. Collaborative filtering은 근거를 댈 수 있지만 Latent Factor Model은 근거를 댈 수 없다. Latent Factor Model Latent Factor Model은 사용자와 아이템을, 잠재적인 차원(Factor)들을 사용해 나타낼 수 있다고 보는 모델이다. 여기서 차원은 축과 같은 의미로 사용될 수 있다. 예를 들어, 위 그림처럼 x 축을 남성향, 여성향의 정도로 표현하고 y 축을 웃기고, 심각함의 정도로 표현할 수 있다면 사용자와 아이템은 적절한 x, y축 값에 매핑 된다는 것이다. 길동 = ( -3.1, -4.2 ) 테넷..
에러 DenseMatrix를 생성하는 경우 import org.apache.spark.mllib.linalg.DenseMatrix val a = DenseMatrix.ones(46341,46341) java.lang.IllegalArgumentException: requirement failed: 46341 x 46341 dense matrix is too large to allocate at scala.Predef$.require(Predef.scala:224) at org.apache.spark.mllib.linalg.DenseMatrix$.ones(Matrices.scala:473) SparseMatrix를 생성한 후 toDense를 하는 경우 import org.apache.spark.mllib...
우선 YARN Resource의 개념에 대해 간단하게 알고 넘어가자 YARN Resource 개념 클러스터에 있는 노드 하나의 물리적 자원이 다음과 같다고 가정했을 때 CPU : 24 Memory : 128GB 다음 그림과 같이 YARN 리소스를 할당할 수 있다. yarn.nodemanager.resource.memory-mb nodemanager의 메모리 크기 한 노드의 물리 메모리가 128GB이므로, OS를 위한 8GB 정도를 제외해 120GB로 설정 yarn.scheduler.maximum-allocation-mb ResourceManager가 하나의 컨테이너 할당에 필요한 최대 메모리 크기 따라서, "yarn.scheduler.maximum-allocation-mb" 값은 "yarn.nodeman..
다음 명령을 통해, yarn 환경에서 각 Worker 노드에 할당된 Executor 수를 확인할 수 있다. yarn node -list
간단한 Spark 구조 및 용어 설명 하나의 중앙 조정자(master, Driver)와 하나 또는 여러 개의 분산 작업 노드(slave, Executor)로 이루어져있으며, Driver와 Executor를 합쳐서 Spark application이라고 부릅니다. 분산 모드에서는, 하나의 Spark application은 Cluster Manager라고 불리는 외부 서비스를 통해 여러 개의 머신에서 실행됩니다. https://wooono.tistory.com/58?category=914839 Spark local mode와 deploy mode(client, cluster)란? Spark 사용시 Cluster를 사용하는가? Cluster 사용 안한다. Spark local mode Cluster 사용 한다...
영화 평점 데이터셋 https://www.kaggle.com/rounakbanik/the-movies-dataset Kaggle에서 notebook 환경 제공 데이터셋 정보 ratings.csv : 평점데이터 ratings_small.csv : 평점데이터 (작은버전) keywords.csv : 영화 키워드 데이터 movies_metadata.csv : 영화 정보 데이터 credits.csv : 영화 제작 정보 links.csv : imdb와 tmdb에서의 영화 id 정보 links_small.csv : imdb와 tmdb에서의 영화 id 정보 (작은버전) 목표 The Movies Data를 이용하여 비슷한 영화 찾기 순서 Pandas를 이용하여 데이터 불러오기 Pandas를 이용하여 데이터 정제하기 Py..
Spark Property Spark는 SparkConf, spark-shell, spark-submit, spark-defaults.conf 을 통해 Spark Application 실행과 관련된 자원을 설정할 수 있습니다. property 적용 순서는 SparkConf, spark-shell, spark-submit, spark-defaults.conf 입니다. 적용 예 https://wooono.tistory.com/45?category=914839 애플리케이션 관련 설정 spark.app.name 애플리케이션 이름 SparkConf의 appName으로 설정하는 것과 같은 속성 spark.driver.cores 드라이버가 사용할 코어 수 클러스터 모드에서만 사용 가능합니다. 기본값 : 1 spark..
추천 시스템 사용자가 아직 보지 않은 드라마에 대한 사용자의 예상 별점을 알 수 있다면? 추천 시스템의 성능이 좋아진다. 사용자에게 예상 별점이 높은 드라마를 추천 해주면 되기 때문이다. 별점 예측 방법 Collaborative Filtering 고전적이지만 지금까지 잘 사용되고 있는 방법 중 하나이다. 통계적인 방법이므로 연산이 빠른 대신 정확도는 조금 떨어진다. 다음 두 가지 방법으로 사용된다. Item-Item Collaborative Filtering User-User Collaborative Filtering Hyprid Methods Collaborative Filtering의 단점을 보완하는 방법 중 하나이다. Latent Factor Model Matrix Factorization을 활용해..