채야미의 코드레시피🍳

machinelearning

STUDY/ML(Machine Learning)
지도학습에서는 입력 `x`와 정답 `y`가 함께 있다.모델은 `x`를 보고 `y`를 맞히도록 학습한다. CS 문의 분류 문제를 생각해보자.입력 `x`: 문의 문장, 고객 등급, 주문 상태, 배송 상태, 결제 금액정답 `y`: 배송 문의 / 환불 문의 / 교환 문의 / 상품 문의 / 기타 문의이번에는 딥러닝 이전부터 널리 쓰인 머신러닝 모델을 알아본다.먼저 볼 기준기준질문문제 유형회귀인가, 분류인가?데이터 형태숫자형인가, 범주형인가, 텍스트인가?비선형성단순 직선 관계인가, 복잡한 조건 관계인가?해석 가능성왜 그런 예측을 했는지 설명해야 하는가?전처리 필요스케일링, 인코딩, 결측치 처리에 민감한가?데이터 크기샘플 수와 특징(feature) 수가 어느 정도인가?운영 조건빠른 예측, 작은 모델, 설명 가능성이 ..
STUDY/ML(Machine Learning)
머신러닝 모델을 만들면 보통 이런 기대를 한다.학습 데이터에서 잘 맞으면새 데이터에서도 잘 맞겠지.하지만 실제로는 그렇지 않을 수 있다.모델이 학습 데이터에서는 거의 완벽한데, 처음 보는 데이터에서는 성능이 떨어지는 경우가 많다.이 현상을 과적합(overfitting)이라고 한다.과적합과적합은 모델이 데이터의 일반적인 패턴이 아니라 학습 데이터에만 있는 우연한 흔들림과 노이즈까지 외워버리는 상태다.예를 들어 학생이 시험공부를 한다고 하자.좋은 공부:문제의 원리를 이해한다.새 문제가 나와도 풀 수 있다.나쁜 공부:기출문제 답만 외운다.기출과 똑같은 문제는 맞힌다.조금만 바뀌면 틀린다.과적합된 모델은 두 번째 학생과 비슷하다.학습 데이터라는 기출문제는 잘 맞히지만, 실제 운영에서 들어오는 새 데이터에는 약하..
STUDY/ML(Machine Learning)
분류 모델은 입력을 보고 정해진 범주 중 하나를 고른다.예를 들어 이상거래 탐지 모델을 만든다고 하자.입력: 거래 금액, 거래 시간, 사용자 위치, 결제 수단, 과거 거래 패턴출력: 정상 거래 / 이상 거래모델이 예측을 끝내면 이 모델은 얼마나 잘 맞혔을까? 라는 질문이 생긴다.이 때, 가장 먼저 떠오르는 지표는 정확도다.(정확도 = 전체 중 맞힌 비율)그러나 분류 문제에서는 정확도만 보면 위험한 경우가 많다.특히 정답 비율이 한쪽으로 치우친 데이터에서는 정확도가 매우 그럴듯하게 속일 수 있다.이상거래 탐지 예시를 끝까지 사용해보자.전체 거래: 10,000건실제 정상 거래: 9,900건실제 이상 거래: 100건→ 이상거래는 전체의 1%뿐.모델이 예측한 결과가 다음과 같다고 하자.모델이 이상 거래라고 예측..
STUDY/ML(Machine Learning)
머신러닝 모델은 학습 데이터에 잘 맞는 것만으로는 충분하지 않다.중요한 질문은 이거다.이 모델이 처음 보는 새 데이터에서도 잘 맞을까?예를 들어 CS 문의 분류 모델을 만든다고 하자.목표: 고객 문의 문장을 보고 문의 유형을 예측한다.입력 예시: "배송이 너무 늦어요"정답 예시: 배송 지연 문의데이터가 10,000건 있다고 해서, 10,000건 전부로 학습하고 같은 10,000건으로 평가하면 안 된다.그건 모델이 시험 문제를 미리 보고 공부한 뒤 같은 문제로 시험을 보는 것과 비슷하다.모델이 진짜로 잘하는지 보려면, 학습에 쓰지 않은 데이터를 따로 남겨두고 평가해야 한다.전체 데이터 10,000건→ 학습용 데이터 8,000건→ 검증용 데이터 1,000건→ 테스트용 데이터 1,000건데이터 분리의 목적은 ..
STUDY/ML(Machine Learning)
이 글에서 다루는 것머신러닝에서 “학습한다”는 말은 막연하게 똑똑해진다는 뜻이 아니다.정확히는 다음 과정을 반복한다는 뜻이다.입력 데이터를 넣는다→ 모델이 예측값을 만든다→ 정답과 비교해서 얼마나 틀렸는지 숫자로 계산한다→ 그 숫자를 줄이는 방향으로 모델 내부 값을 조금 바꾼다→ 이 과정을 여러 번 반복한다이 글의 목표는 다음 개념을 하나의 흐름으로 연결하는 것이다.개념의미모델입력을 받아 예측을 만드는 함수파라미터모델 내부에서 학습으로 바뀌는 숫자예측값모델이 낸 답손실함수예측이 얼마나 틀렸는지 계산하는 함수경사손실을 줄이려면 어느 방향으로 움직여야 하는지 알려주는 값경사하강법경사를 따라 손실이 작아지는 쪽으로 파라미터를 갱신하는 방법옵티마이저파라미터를 실제로 어떻게 갱신할지 정하는 알고리즘학습손실이 작아..
STUDY/ML(Machine Learning)
1. 임베딩과의 관계 임베딩은 숫자로 끝나고, LLM은 다음 단어를 계속 만들어낸다. 임베딩은 "텍스트→벡터" 변환만 하고 끝남LLM은 같은 트랜스포머 계열 구조를 쓰지만 벡터에서 다시 텍스트를 생성한다.둘 다 "문맥을 이해한다"는 점은 같은데, 출력 형태가 다른 것. [ML] 벡터 임베딩(Vector Embedding) - 의미를 벡터로cf) TF-IDF [ML] TF-IDF(Term Frequency-Inverse Document Frequency)1. TF-IDF?정의단어의 빈도(TF)와 역문서빈도(IDF)를 곱해서, 문서 내 각 단어의 "중요도"를 가중치로 매기는 방법단순히 "몇 번 나왔는가"만 세는 빈blog.chaenii.me2. 트랜스포머트랜스포머의 핵심은 어텐션(attention) 메커니즘..
STUDY/ML(Machine Learning)
cf) TF-IDF [ML] TF-IDF(Term Frequency-Inverse Document Frequency)1. TF-IDF?정의단어의 빈도(TF)와 역문서빈도(IDF)를 곱해서, 문서 내 각 단어의 "중요도"를 가중치로 매기는 방법단순히 "몇 번 나왔는가"만 세는 빈도수 카운트(Bag of Words)의 한계를 보완쓰임문서 간blog.chaenii.meTF-IDF도 텍스트를 벡터로 바꾼다. 그런데 TF-IDF는 순수하게 "단어가 몇 번 등장했는가"라는 통계에 기반한다."강아지"와 "개"는 글자가 다르니 전혀 다른 차원으로 취급 → 의미가 같다는 것을 전혀 모른다.임베딩(embedding): 신경망이 대량의 텍스트를 학습 → "이 단어가 어떤 맥락에서 쓰이는가" 함께 학습"강아지"와 "개"는 비..
STUDY/ML(Machine Learning)
1. SOM?Self-Organizing Map. 입력 데이터를 2차원 격자 위에 스스로 배치하도록 학습하는 신경망 구조의 고전적 비지도학습 알고리즘.목적은 KMeans와 같지만(데이터를 비슷한 그룹으로 묶기), 중심점들이 고정된 격자 위에서 이웃과 함께 움직인다는 점이 다르다.주의할 점은 SOM을 보통 CNN/Transformer 같은 현대적 의미의 "딥러닝"으로 분류하지는 않는다는 것이다. 여러 층을 깊게 쌓은 모델이라기보다, 경쟁학습(competitive learning)을 사용하는 얕은 신경망에 가깝다.2. K-Means와 다른 점KMeans$K$개의 중심점이 공간에서 자유롭게 독립적으로 움직임.중심점 5번이 어디로 가든 50번에게 영향 없음.SOM노드들이 고정된 격자(grid) 위에 배치학습 중..
STUDY/ML(Machine Learning)
지금까지는 텍스트(고차원 희소 벡터)를 그대로 클러스터링했다.더보기[STUDY/ML(Machine Learning)] - [ML] K-means clustering [ML] K-means clustering1. K-means clustering?데이터를 $K$개의 그룹(군집)으로 자동으로 나눠주는 비지도학습 알고리즘각 군집을 대표하는 중심점(centroid)을 그 군집에 속한 데이터들의 평균(mean) 위치로 잡아가면서 군집을blog.chaenii.me[STUDY/ML(Machine Learning)] - [ML] 실루엣 스코어(Silhouette Score) - 군집화 평가 지표 [ML] 실루엣 스코어(Silhouette Score) - 군집화 평가 지표1. Silhouette Score?[STUDY/..
STUDY/ML(Machine Learning)
1. Silhouette Score?[STUDY/ML(Machine Learning)] - [ML] K-means clustering [ML] K-means clustering1. K-means clustering?데이터를 $K$개의 그룹(군집)으로 자동으로 나눠주는 비지도학습 알고리즘각 군집을 대표하는 중심점(centroid)을 그 군집에 속한 데이터들의 평균(mean) 위치로 잡아가면서 군집을blog.chaenii.me클러스터링은 비지도학습이라 "정답"이 없다. KMeans를 $K=10$으로 돌린 결과와 $K=70$으로 돌린 결과 중 뭐가 더 "좋은" 군집인지 어떻게 판단할까?우선 좋은 군집화란: 같은 군집 안의 데이터끼리는 가깝고, 다른 군집과는 멀어야 한다 이 두 조건을 하나의 점수로 합쳐, 좋은..
STUDY/ML(Machine Learning)
1. K-means clustering?데이터를 $K$개의 그룹(군집)으로 자동으로 나눠주는 비지도학습 알고리즘각 군집을 대표하는 중심점(centroid)을 그 군집에 속한 데이터들의 평균(mean) 위치로 잡아가면서 군집을 갱신해 나가기 때문에 "K-평균(K-means)"라고 함.정답 라벨 없이, 데이터들끼리 얼마나 가까운지만 보고 그룹을 찾아냄.2. 문제 상황수만 개의 데이터(예: 고객 문의 티켓)가 있는데, 사람이 일일이 보지 않고도 "비슷한 것들끼리 자동으로 묶고 싶다." 라벨(정답)은 없다.그냥 데이터의 분포만 보고 그룹을 찾아내는 것, -> 비지도학습(unsupervised learning).K-Means는 그중 가장 단순하고 널리 쓰이는 알고리즘이다.3. 알고리즘$K$개의 그룹으로 나눈다고 ..
STUDY/ML(Machine Learning)
[STUDY/ML(Machine Learning)] - [ML] TF-IDF(Term Frequency-Inverse Document Frequency) [ML] TF-IDF(Term Frequency-Inverse Document Frequency)1. TF-IDF?정의단어의 빈도(TF)와 역문서빈도(IDF)를 곱해서, 문서 내 각 단어의 "중요도"를 가중치로 매기는 방법단순히 "몇 번 나왔는가"만 세는 빈도수 카운트(Bag of Words)의 한계를 보완쓰임문서 간blog.chaenii.meTF-IDF든 임베딩이든, 텍스트를 벡터로 바꿨다면 그다음 필요한 건"이 두 벡터가 얼마나 비슷한가"를 숫자 하나로 표현하는 방법이다.가장 많이 쓰는 두 가지가 코사인 유사도와 유클리드 거리인데, 이 둘은 측정하는..
STUDY/ML(Machine Learning)
1. TF-IDF?정의단어의 빈도(TF)와 역문서빈도(IDF)를 곱해서, 문서 내 각 단어의 "중요도"를 가중치로 매기는 방법단순히 "몇 번 나왔는가"만 세는 빈도수 카운트(Bag of Words)의 한계를 보완쓰임문서 간 유사도 계산검색 결과 랭킹(중요한 단어가 많이 매칭될수록 상위 노출)특정 문서 안에서 핵심 키워드 추출2. 왜 필요한가? - 단순 빈도수의 한계컴퓨터는 "배송 문의 요청"이라는 문자열을 그 자체로 이해하지 못함 → 비교·계산을 하려면 숫자(벡터)로 바꿔야 함.가장 단순한 방법: 단어가 몇 번 나왔는지 세는 것(Bag of Words)문제: "문의", "요청" 같이 거의 모든 문서에 등장하는 흔한 단어가 카운트를 지배진짜 그 문서를 구별짓는 단어("환불", "파손", "교환")는 빈도수..
ChaeYami
'machinelearning' 태그의 글 목록