분류 성능 지표 : Precision, Recall, F1-score
·
AI/ML
분류 모델이 얼마나 잘 학습되었는지에 대한 성능 지표는 Accuracy(정확도), Precision(정밀도), Recall(재현율) 등이 잇다. 각각의 성능 지표 전에 우선 confusion matrix 먼저 알아보자.Confusion MatrixConfusion matrix는 실제 클래스와 예측된 클래스의 매칭을 이용하여 분류 모델을 평가하는 도구이다. 이진 분류 문제에서 실제 클래스는 Positive/Negative로 나누어져 있고 분류 모델은 샘플들을 Positive/Negative로 분류한다.표 내부에 있는 단어를 쉽게 설명을하기 위해 예시로 환자다 아니다로 설명하겠습니다.Actual(Positive) : 실제 환자Actual(Negative) : 실제 환자가 아님Predict(Positive) ..
[알파] 초기 다중 회귀
·
AI/ML
다층 다항 회귀와 연도/월 간의 상호작용연도(year)와 월(month)의 역할연도와 월을 함께 사용하는 이유는 서로 다른 정보가 있기 때문이다. 연도는 시간적 흐름에 따른 점수 변화를 학습하고, 월은 각 월마다 나타나는 점수의 주기적 패턴을 학습하는 데 주로 사용됨. 연도는 2022년, 2023년 등 시간에 따른 변화 경향을 반영하고, 월은 4월5월에 점수가 높아지고 11월12월에 낮아지는 등의 반복적인 패턴을 잡아냄.연도(year)와 월(month)이 상호작용하는 방식연도는 각 연도별로 다른 점수의 평균적 차이를 학습함. 예를 들어, 2022년에는 점수가 대체로 높았고, 2023년에는 낮았다는 전반적인 흐름을 학습함. 반면, 월은 매년 반복되는 주기적 변화를 학습함. 예를 들어, 4월에는 항상 점수가..
[ML] Feature Engineering
·
AI/ML
Feature Engineering머신러닝 알고리즘을 작동하기 위해 데이터에 대한 도메인 지식을 활용하여 특징(feature)를 만들어내는 과정이다.머신러닝 모델을 위한 데이터 테이브르이 컬럼(특징)을 생성하거나 선택하는 작업.모델의 성능을 높이기 위해 모델에 입력할 데이터를 만들기 위해 주어진 초기 데이터로 특징을 가공하고 생성하는 전체 광정. 특징 선택(Feature Selection)특징 랭킹 또는 특징 중요도라고도 불린다.분류 모델 중 Decision Tree 같은 경우는 트리의 상단에 있을 수록 중요도가 높으므로 이를 반영하여 특징 별로 중요도를 매길 수 있다. 회귀 모델의 경우 forward selection과 backward elimination 같은 알고리즘을 통해 특징을 선택한다. 특징 ..
[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개..
[ML] 원-핫 인코딩(One-Hot Encoding)
·
AI/ML
이번 챕터에서는 범주형 데이터를 처리할 때 레이블을 표현하는 방법인 원-핫 인코딩에 대해서 배워봅시다. 1. 원-핫 인코딩(One-hot encoding)이란? 원-핫 인코딩은 선택해야 하는 선택지의 개수만큼의 차원을 가지면서, 각 선택지의 인덱스에 해당하는 원소에는 1, 나머지 원소는 0의 값을 가지도록 하는 표현 방법입니다. 예를 들어 강아지, 고양이, 냉장고라는 3개의 선택지가 있다고 해보겠습니다. 원-핫 인코딩을 하기 위해서는 우선 각 선택지에 순차적으로 정수 인덱스를 부여합니다. 임의로 강아지는 0번 인덱스, 고양이는 1번 인덱스, 냉장고는 2번 인덱스를 부여하였다고 해봅시다. 이때 각 선택지에 대해서 원-핫 인코딩이 된 벡터는 다음과 같습니다. 강아지 = [1, 0, 0] 고양이 = [0, 1..
[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..
[ML] 미니 배치와 데이터 로드(Mini Batch and Data Load)
·
AI/ML
1. 미니 배치와 배치 크기(Mini Batch and Batch Size) 다중 선형 회귀에서 사용했던 데이터를 상기해봅시다. x_train = torch.FloatTensor([[73, 80, 75], [93, 88, 93], [89, 91, 90], [96, 98, 100], [73, 66, 70]]) y_train = torch.FloatTensor([[152], [185], [180], [196], [142]]) 위 데이터의 샘플의 개수는 5개입니다. 전체 데이터를 하나의 행렬로 선언하여 전체 데이터에 대해서 경사 하강법을 수행하여 학습할 수 있습니다. 그런데 위 데이터는 현업에서 다루게 되는 방대한 양의 데이터에 비하면 굉장히 적은 양입니다. 만약, 데이터가 수십만개 이상이라면 전체 데이터에 ..
[ML] nn.Module로 구현하는 선형 회귀
·
AI/ML
이번에는 파이토치에서 이미 구현되어져 제공되고 있는 함수들을 불러오는 것으로 더 쉽게 선형 회귀 모델을 구현해보겠습니다. 예를 들어 파이토치에서는 선형 회귀 모델이 nn.Linear()라는 함수로, 또 평균 제곱오차가 nn.functional.mse_loss()라는 함수로 구현되어져 있습니다. 아래는 이번 실습에서 사용할 두 함수의 사용 예제를 간단히 보여줍니다. import torch.nn as nn model = nn.Linear(input_dim, output_dim) import torch.nn.functional as F cost = F.mse_loss(prediction, y_train) 1. 단순 선형 회귀 구현하기 우선 필요한 도구들을 임포트하고 데이터를 선언합니다. import torch..
doocong22
'AI/ML' 카테고리의 글 목록