MapReduce는 대규모 데이터 세트를 처리하는 분산 컴퓨팅 프로그래밍 모델이다. 구글에서 개발되었으며, 대용량 데이터 처리를 위해 사용된다. MapReduce는 데이터 처리를 위해 두 가지 주요 단계로 구성된다. 첫 번째는 "맵(Map)" 단계이며, 입력 데이터를 여러 개의 작은 조각으로 나누고, 각 조각에 대해 동일한 맵 함수를 병렬로 적용하는 과...
A-Priori 알고리즘은 데이터 마이닝 분야에서 사용되는 알고리즘 중 하나이다. 이 알고리즘은 대규모 데이터 집합에서 빈번하게 발생하는 항목 집합을 찾는 데 사용된다. A-Priori 알고리즘은 지지도(Support)라고 불리는 임계값을 설정하고, 이 임계값보다 높은 지지도를 가진 항목 집합을 찾는다. 지지도란 특정 항목 집합이 전체 데이터 집합에서 얼...
MinHash-based Locality Sensitive Hashing (LSH)는 대용량 데이터 집합에서 유사한 항목을 효율적으로 찾기 위한 기술이다. 이는 데이터 마이닝, 정보 검색, 유전체학 등 다양한 분야에서 활용된다. MinHash는 집합을 대표하는 짧은 signature를 생성하는 기법이다. 이 때, 집합의 특성을 최대한 유지하면서 작은 크기...
편집 거리(edit distance)는 두 개의 문자열 간의 유사도를 측정하는 데 사용되는 개념이다. 이 측정 방법은 한 문자열을 다른 문자열로 변환하는 데 필요한 최소한의 편집 연산 수를 계산한다. 편집 연산은 삽입(insertion), 삭제(deletion), 치환(substitution)의 세 가지 유형이 있다. 예를 들어, "kitten"과 "s...
k-Means 알고리즘은 비지도 학습(Unsupervised Learning) 알고리즘 중 하나로, 데이터 포인트들을 k개의 클러스터로 그룹화하는 방법이다. 클러스터는 유사한 특성을 가진 데이터 포인트들의 집합으로 이루어져 있다. k-Means 알고리즘은 다음과 같은 단계로 동작한다: 초기화: 사용자는 클러스터의 개수 k를 지정하고, 데이터 포인트들 중...
유클리드 거리(Euclidean distance)는 공간 상의 두 점 사이의 직선 거리를 나타내는 지표이다. 2차원 평면에서의 유클리드 거리는 두 점 사이의 직선 거리를 계산하는 것이고, 3차원 공간에서는 세 점 사이의 거리를 계산하는 것으로 확장된다. 유클리드 거리는 주로 기하학, 통계학, 데이터 분석 등 다양한 분야에서 사용되는 중요한 개념이다. 유클...
주성분 분석(Principal Component Analysis, PCA)는 가장 널리 사용되는 차원 축소 기법 중 하나이다. PCA는 고차원 데이터를 저차원으로 압축하면서 원본 데이터의 변동성을 최대한 보존하는 방식으로 작동한다. PCA는 데이터의 주성분(principal components)을 추출하여 차원을 축소한다. 주성분은 원본 데이터의 가장 큰...
특이값 분해(Singular Value Decomposition, SVD)는 행렬을 세 개의 행렬의 곱으로 분해하는 기법이다. SVD는 선형 대수학의 중요한 도구로 사용되며, 차원 축소, 행렬 근사, 잡음 제거 등 다양한 분야에서 유용하게 활용된다. 주어진 행렬 A에 대한 SVD는 다음과 같이 표현된다: A = UΣV^T 여기서 U와 V는 직교행렬(or...
콘텐츠 기반 필터링(Content-based Filtering)은 추천 시스템의 한 유형으로, 사용자의 이전 행동과 항목의 내용(콘텐츠)을 기반으로 추천을 제공하는 방법이다. 이 방법은 항목 자체의 특성과 사용자의 선호도를 분석하여 유사한 항목을 추천하는 것을 목표로 한다. 콘텐츠 기반 필터링은 일반적으로 다음과 같은 단계로 작동한다: 항목 프로파일링(...
협업 필터링(Collaborative Filtering)은 추천 시스템의 주요 유형 중 하나로, 다수의 사용자들의 과거 행동 데이터를 기반으로 추천을 제공하는 방법이다. 이 방법은 사용자 간의 유사성 또는 항목 간의 유사성을 분석하여 추천을 생성한다. 협업 필터링은 일반적으로 다음과 같은 두 가지 주요 유형으로 분류된다: 사용자 기반 협업 필터링(Us...
Jaccard distance는 두 집합 간의 유사도를 측정하는 방법 중 하나이다. Jaccard distance는 두 집합 사이의 차이를 측정하는 값으로, 두 집합의 교집합 크기를 합집합 크기로 나눈 것의 보수값으로 정의된다. 만약 A와 B라는 두 개의 집합이 있다고 가정하겠다. 이 때 A와 B의 교집합을 A ∩ B로 표기하고, 합집합을 A ∪ B로 표...
Cosine distance는 벡터 간의 유사도를 측정하는 방법 중 하나이다. 두 개의 벡터 간의 각도를 사용하여 유사성을 측정하는 지표로, 벡터 공간에서의 방향을 고려한다. 두 개의 벡터 A와 B가 있다고 가정하겠다. 각 벡터의 크기가 0이 아니라고 가정하면, Cosine distance는 다음과 같이 정의된다: Cosine distance(A, B)...
PageRank 알고리즘은 웹 페이지의 중요성을 계산하는 알고리즘으로, 구글의 검색 엔진에서 사용되는 중요한 요소 중 하나이다. PageRank은 링크 구조를 기반으로 작동하며, 다음과 같은 단계로 수행된다: 초기 점수 할당: 모든 웹 페이지는 초기에 동일한 점수로 시작한다. 이 초기 점수는 페이지의 수와 동일한 값을 가진다. 링크 분석: 각 페이지는 ...
Bipartite graph는 그래프 이론에서 사용되는 특별한 유형의 그래프이다. Bipartite graph는 정점들을 두 개의 독립된 집합으로 분할할 수 있는 그래프를 말한다. 즉, 그래프의 모든 간선은 한 집합의 정점과 다른 집합의 정점을 연결한다. 예를 들어, V1과 V2라는 두 개의 정점 집합으로 구성된 Bipartite graph를 생각해보겠다...
MLE는 Maximum Likelihood Estimation(최대 가능도 추정)의 약자이다. 최대 가능도 추정은 확률 분포의 파라미터 값을 추정하는 통계적 방법 중 하나이다. MLE는 주어진 관측 데이터에 기반하여 가장 가능성이 높은 파라미터 값을 찾는 것을 목표로 한다. 이때, 데이터가 어떤 분포에서 나왔다고 가정하고, 해당 분포의 파라미터 값을 추정...
GINI 불순도(GINI impurity)는 데이터 집합의 불순도를 측정하는 방법 중 하나이다. 이는 의사 결정 트리(Decision Tree) 알고리즘과 관련이 있으며, 분류 문제에서 노드의 순수성을 측정하는 데 사용된다. GINI 불순도는 0부터 1까지의 값을 가지며, 0은 노드 내에 순수한 클래스(하나의 클래스만 포함)가 있는 경우를 의미하고, 1...
Entropy measure of impurity(불순도의 엔트로피 측정)는 데이터 집합의 불순도를 측정하는 방법 중 하나이다. 엔트로피는 정보 이론에서 유래한 개념으로, 데이터의 혼잡도를 나타내는 지표이다. 엔트로피는 주어진 데이터 집합의 클래스 분포에 따라 얼마나 불균형한지를 나타낸다. 엔트로피 값이 높을수록 데이터 집합이 더 불순하다는 것을 의미한다...
SVM은 "Support Vector Machine"의 약자로, 지도 학습(Supervised Learning) 알고리즘 중 하나이다. SVM은 데이터를 분류(Classification)하거나 회귀(Regression)하는 데에 사용된다. SVM의 기본 아이디어는 데이터를 고차원 공간으로 매핑하여 데이터를 분류하는 결정 경계(Decision Boundar...
Fully-connected network는 인공신경망(artificial neural network)의 한 유형이다. 이는 입력층(input layer), 출력층(output layer) 및 중간에 위치한 여러 개의 은닉층(hidden layer)으로 구성된다. 각 층의 뉴런(neuron)들은 이전 층의 모든 뉴런과 연결되어 있어 "fully-connec...
MNIST(dataset)은 기계 학습과 패턴 인식에서 널리 사용되는 데이터셋 중 하나이다. MNIST는 손으로 쓴 숫자들로 이루어진 대규모 데이터셋으로, 기계 학습 알고리즘을 테스트하고 학습하기 위해 사용된다. MNIST 데이터셋은 0부터 9까지의 숫자들이 손으로 쓴 28x28 픽셀 이미지로 구성되어 있다. 이 데이터셋은 총 70,000개의 이미지로 구...
Alon-Matias-Szegedy (AMS) 알고리즘은 데이터 스트림에서 빠르고 근사적인 중복 카운팅을 수행하기 위해 개발된 알고리즘이다. 이 알고리즘은 데이터 스트림이 매우 크거나 제한된 메모리를 사용해야 할 때 유용하다. AMS 알고리즘은 주어진 데이터 스트림에서 중복된 원소의 개수를 근사적으로 계산하는 기능을 제공한다. 이를 통해 중복된 원소를 ...
DGIM(Don't Go Into the Mist) 알고리즘은 데이터 스트림에서 최근 시간 동안 발생한 1의 개수를 추정하는 알고리즘이다. 이 알고리즘은 스트림 데이터의 크기가 매우 크거나 무한할 때 유용하게 사용된다. DGIM 알고리즘은 슬라이딩 윈도우 기반으로 동작한다. 윈도우는 고정된 크기를 가지며, 스트림 데이터가 윈도우 밖으로 나가면서 가장 오래...