머신러닝 17

희소행렬 (sparse matrix)

행렬은 m개의 행과 n개의 열로 이루어진 2차원 데이터 객체로, 총 m x n 개의 값이 있습니다. 만약 행렬의 대부분의 요소가 0 값을 갖는다면, 이를 희소 행렬(sparse matrix)이라고 합니다. 희소 행렬을 사용하는 이유 저장 용량: 0이 아닌 요소가 0인 요소보다 적기 때문에, 이러한 요소들만 저장하여 용량을 줄일 수 있습니다. 계산 시간: 0이 아닌 요소들만 탐색하여 논리적인 데이터 구조를 설계함으로써 계산 시간을 줄일 수 있습니다. 희소행렬 예시: 0 0 3 0 4 0 0 5 7 0 0 0 0 0 0 0 2 6 0 0 2차원 배열을 사용하여 희소 행렬을 나타내면 대부분의 경우 0인 원소들은 사용되지 않으므로 많은 메모리 낭비가 발생합니다. 따라서 0이 아닌 원소들만 저장하도록 하여 메모리..

머신러닝 2023.03.29

혼동 행렬 (Confusion matrix)

Confusion matrix(혼동 행렬)는 분류 모델의 예측 결과를 평가하는 데 사용되는 표입니다. 이는 정확도(accuracy) 외에도 모델의 성능을 다양한 측면에서 평가할 수 있도록 도와줍니다. 혼동 행렬은 일반적으로 이진 분류(binary classification)에 대해 설명됩니다. 이 경우, 분류 모델은 두 개의 클래스 중 하나에 속하는 샘플을 예측하려고 합니다. 예를 들어, 암 진단 분류 모델은 종양이 악성(malignant)인지 양성(benign)인지 예측하려고 할 수 있습니다. 이진 분류의 혼동 행렬은 다음과 같이 4개의 항목으로 구성됩니다. True Positive (TP): 실제 클래스가 양성이고, 모델이 양성으로 예측한 샘플 수 False Positive (FP): 실제 클래스가 ..

머신러닝 2023.03.29

TF-IDF(Term Frequency-Inverse Document Frequency)

TF-IDF(Term Frequency-Inverse Document Frequency)는 자연어 처리에서 사용되는 통계적인 방법 중 하나입니다. 문서의 중요한 단어를 파악하는 데 사용됩니다. TF-IDF는 각 단어의 가중치를 계산하여 문서의 중요도를 평가합니다. 이 방법은 각 단어의 등장 횟수(TF)와 문서 집합에서 해당 단어가 등장한 문서의 수(Inverse Document Frequency, IDF)를 고려합니다. 각 단어의 등장 횟수(TF)는 단어가 문서 내에서 얼마나 자주 등장하는지를 나타냅니다. 반면에, 단어가 전체 문서 집합에서 얼마나 희귀한지를 측정하는 IDF는 특정 단어가 다른 문서에서도 자주 등장할수록 그 단어에 대한 가중치가 낮아집니다. 즉, TF-IDF는 단어의 빈도수와 전체 문서 ..

머신러닝 2023.03.28

그리드 서치 (Grid Search)

Grid Search는 기계 학습 모델에서 하이퍼파라미터(Hyperparameter)를 조정하기 위해 사용되는 방법 중 하나입니다. 하이퍼파라미터는 모델의 성능에 영향을 미치는 파라미터로서, 모델 학습 전에 사용자가 직접 설정해야 하는 파라미터입니다. Grid Search는 모든 하이퍼파라미터 조합을 대상으로 모델을 학습하고 평가하여 가장 우수한 성능을 보이는 조합을 찾아내는 방법입니다. Grid Search는 가능한 모든 하이퍼파라미터 조합을 구성하여 탐색하므로, 해당 모델의 모든 하이퍼파라미터를 찾는데 유용합니다. 그러나 모든 조합을 탐색하므로 계산량이 매우 높아질 수 있습니다. 좀 더 풀어서 말씀드리자면, 우선 정해줘야 하는 각 하이퍼 파라미터에 넣어 볼 후보 값을 몇 개씩 정하고, 각 후보 값으로..

머신러닝 2023.03.28

교차 검증(Cross-validation)

교차 검증(Cross-validation)은 기계 학습에서 모델의 성능을 평가하는 방법 중 하나입니다. 교차 검증은 주어진 데이터를 학습 데이터와 테스트 데이터로 나누어 학습과 평가를 수행하는 것이 일반적인 방법입니다. 교차 검증 순서 데이터셋을 k개의 서로 다른 부분집합으로 나눕니다. (일반적으로 k=5, 10으로 설정) 각 부분집합 중 하나를 테스트 데이터셋으로 선택하고 나머지를 학습 데이터셋으로 사용합니다. 모델을 학습 데이터셋으로 학습시킵니다. 학습된 모델을 테스트 데이터셋으로 평가하고 성능 지표를 계산합니다. 2~4번을 k번 반복하여 각 테스트 데이터셋에 대한 성능 지표의 평균을 계산합니다. 이렇게 하면 데이터셋을 훈련, 검증, 테스트 데이터셋으로 나누는 것보다 더 많은 데이터를 사용하여 모델의..

머신러닝 2023.03.28

병합군집(AGNES: Agglomerative Clustering)

병합군집(AGNES: Agglomerative Clustering)은 클러스터링 알고리즘 중 계층적 군집 알고리즘으로, 각 데이터 포인트를 처음에는 하나의 클러스터로 보고, 서로 가장 가까운 클러스터를 합쳐가면서 클러스터링을 수행하는 방법입니다. 알고리즘 실행순서: 각 데이터 포인트를 하나의 클러스터로 간주합니다. 클러스터 간 거리를 계산하여 가장 가까운 두 클러스터를 찾습니다. 두 클러스터를 합쳐서 하나의 클러스터로 만듭니다. 모든 클러스터가 하나의 클러스터가 될 때까지 2-3 과정을 반복합니다. 병합군집에서 거리 측정 방법에 따라 Single linkage, Complete linkage, Average linkage 세 가지 방법이 있습니다. Single linkage: 두 클러스터 내 가장 가까운..

T-SNE (t-distributed stochastic neighbor embedding)

만약 데이터셋에 수백 개의 특성 또는 데이터 포인트가 있고 이를 2차원 또는 3차원 공간에 나타내고 싶다면 어떻게 해야 할까요? T-SNE는 "t-distributed stochastic neighbor embedding"의 약자로, 고차원 데이터를 시각화하기 위한 비선형 차원 축소 기법입니다. T-SNE는 주어진 데이터셋에서 각 데이터 포인트의 유사도를 계산하여, 이를 새로운 공간상에서 가까운 거리에 위치하도록 매핑하는 것을 목표로 합니다. 이를 위해, T-SNE는 먼저 각 데이터 포인트에서 가까운 이웃을 찾고, 그 이웃들 간의 유사도를 계산합니다. 이후, 각 데이터 포인트는 이웃들과의 유사도를 고려하여 새로운 공간상의 좌표를 계산합니다. T-SNE는 비선형 차원 축소 기법으로, 고차원 데이터의 복잡한..

머신러닝 2023.03.28

비음수 행렬분해(Non-negative Matrix Factorization, NMF)

비음수 행렬분해(Non-negative Matrix Factorization, NMF)는 주어진 비음수 행렬을 두 개의 비음수 행렬로 분해하는 기법입니다. 이 때 분해된 두 행렬은 원본 행렬의 구성 성분을 표현하는데 사용될 수 있습니다. 비음수 행렬분해를 도식화 하겠습니다. 수식으로 나타내면 아래와 같습니다. A -> 원본 입력 행렬 (W와 H의 선형 조합) W -> 특성 행렬 H -> 계수 행렬 (W와 관련된 가중치) k -> A의 저차원 근사치 (k ≤ min(m,n)) NMF의 목적 차원 축소와 특성 추출입니다. 따라서 낮은 차원 k를 설정할 때, NMF의 목표는 양수 요소만 포함하는 두 행렬 W ∈ R(m×k)와 H ∈ R(n×k)를 찾는 것입니다. (위 그림 1 참조). 따라서 NMF를 사용하여..

머신러닝 2023.03.28

서포트 벡터 머신(Support Vector Machine)

서포트 벡터 머신(Support Vector Machine 또는 SVM)은 지도 학습 알고리즘 중 하나로, 분류와 회귀 분석에 모두 사용됩니다. 주로 분류 문제에 사용되며, 결정 경계(decision boundary)를 찾아 데이터를 분류하는 데 사용됩니다. SVM은 데이터를 분류하는 결정 경계를 찾기 위해 수행됩니다. 이 때, SVM은 최적의 결정 경계를 찾기 위해 최대 마진(margin)을 지니는 초평면(hyperplane)을 찾습니다. 여기서 마진이란 결정 경계와 가장 가까운 데이터 간의 거리를 의미합니다. SVM은 결정 경계를 찾을 때, 서포트 벡터(support vector)라는 개념을 사용합니다. 서포트 벡터는 결정 경계와 가장 가까이 위치한 데이터 포인트를 의미하며, 결정 경계를 찾는 데 있..

머신러닝 2023.03.28

나이브 베이즈 (naïve bayes)

나이브 베이즈 (Naive Bayes)는 베이즈 이론을 기반으로 하는 확률 분류 모델 중 하나입니다. 이 모델은 데이터의 특성 간 독립적인 가정을 하고, 이를 통해 간단하고 효과적인 분류 모델을 만들 수 있습니다. 출처 나이브 베이즈는 주어진 입력 변수(x)와 출력 변수(y) 사이의 조건부 확률인 P(y|x)를 추정하는데 사용됩니다. 이 모델은 베이즈 정리를 사용하여 이 확률을 추정합니다. P(y|x) = P(x|y) * P(y) / P(x) 여기서 P(y|x)는 입력 변수 x가 주어졌을 때 출력 변수 y가 발생할 확률입니다. P(x|y)는 출력 변수 y가 주어졌을 때 입력 변수 x가 발생할 확률입니다. P(y)는 출력 변수 y의 사전 확률이며, P(x)는 입력 변수 x의 확률입니다. 나이브 베이즈 모델..

머신러닝 2023.03.28