관리 메뉴

DeseoDeSeo

[Machine Learning] 정리 part.1 본문

Python

[Machine Learning] 정리 part.1

deseodeseo 2023. 9. 13. 19:46

 

⛤ 머신러닝(기계학습)의 종류

1. 지도학습 : 정답이 있는 데이터를 학습 하고 예측하는 과정
            - 분류 : 정답데이터의 형태가 범주형. (ㅂㅂ)
                    - class : 정답데이터로 선택할 수 있는 개수( 정답 데이터의 개수)
            - 회귀 : 정답데이터의 형태가 연속형. (ㅎㅇ)
2. 비지도학습 : 정답이 없는 데이터를 학습하고 예측
    -
3. 강화학습 : 보상을 주면서 정답으로 가까워지게끔 학습하는 방법,
      ex) 알파고
       

1.knn(최근접 이웃모델)
하이퍼파라미터( 이웃의 수)

2.의사결정나무(decision tree)

앙상블
1. 보팅 
2. 배깅 ( ex)랜덤포레스트, 서로 같은 모델이 모여져있음)

------------------------병렬적 모델--------------------

3. 부스팅( 연속적 연산을 한다. )

선형 회귀모델
: 우리 데이터를 가장 잘 대표하는 직선을 하나 긋는다. 

Data ➜ Model ➜ 오차(loss값)= mse(평균제곱오차) ➜ 오차를 점점 줄이기 위해서 최적화 함.(= 경사하강법)

선형 분류
: 범주형 데이터
텍스트 마이닝
: 텍스트 데이터로부터 유용하나 인사이트를 발굴.

데이터 마이닝 : 빅데이터 안에서 규칙이나 패턴을 분석하여 가치있는 정보를 추출하는과정

자연어처리방식( NLP) : 문서처리 방법을 적용하여 유용한 정보를 추출/가공하는 것을 목적으로 하는 기술

자연어: 인간이 일상생활에서 사용하는 언어

 

텍스트 마이닝
 - 감성분석( sentiment Analysis)
 - 텍스트 분류(Text Clasification)
 - 텍스트 요약(summarization)
 - 텍스트 군집화 및 유사도 분석( Clustering) ➜ 추천 서비스에 많이 사용. 

 

텍스트 데이터의 구조

말뭉치 > 문서 > 문단 > 문장 > 단어 > 형태소

말뭉치(corpus)

     :분석을 위해 수집된 문서들의 집합

문서 : 여러개의 문단으로 구성 " "

형태소 : 일정한 의미가 있는 가장 작은 말의 단위

 

머신러닝 프로세스

1. 문제정의
2. 데이터 수집
3, 데이터 전처리
4, EDA(탐색적 데이터 분석)
5, 모델 선택 및 하이퍼파라미터 선택
6. 모델 학습(fit)
7. 모델 예측 및 평가 (predict score)

 

텍스트 마이닝 분석 프로세스

텍스트수집 ➜ 텍스트  전처리 ➜ 토큰화 ➜ 특징추출 ➜ 데이터 분석

토큰화 :  단위를 끊어나가는 과정.

 

텍스트 전처리

: 용도에 맞게 텍스트를 사전에 처리하는 과정 
    오탈자제거, 띄어쓰기 교정
     - 불용어 제거 : 큰 의미가 없는 단어 제거( ex) 음, 뭐, 아..등)
     - 정규화(normlaization) : 표현방법이 다른 단어들을 통합하여 같은 단어로 만듦( ex) 지린다,)
     - 어간 추출(Stemming): 단어의 핵심부분(어간)만 추출
     - 표제어 추출(Lemmatization) : 유사한 단어들에서 대표단어를 추출.

 

토큰화
: 학습을 위해서 주어진 코퍼스에서 토큰이라 불리는 단위로 나누는 작업( 공백기준, 형태소기준, 명사, 단어기준 등)
  기준은 분석 방법에 따라 다름.

< 토큰화(tokenize)의 종류 >

  • 단어 단위 : 텍스트를 단어로 나누고 각 단어를 하나의 벡터로 변환
  • 문자 단위: 텍스트를 문자로 나누고 각 문자를 하나의 벡터로 변환
  • n-gram단위: 텍스트에서 단어나 문자의 n-gram을 추출하여 n-gram을 하나의 벡터로 변환. :n 개의 연속된 단어를 하나로 취급. ex) 러시아 월드컵.
특징 값 추출
: '중요한 단어'를 선별 하는 과정 '중요한 단어' : 특정, 적은 수 의 문서에 분포 및 문서 내에서도 빈번하게 출현(TF-IDF)

 

< 데이터 분석을 위해 토큰화 결과를 수치로 만드는 방법>

<수치화> 원핫 인코딩 : 토큰에 고유번호를 배정하고 모든 고유번호 위치의 한 컬럼만 1, 나머지 컬럼은 0인 벡터로 표시하는 방법 < 토큰화?! >

BOW(Bag of Word) = CounterVectorize , TF-IDF : 모든 문서의 모든 단어르 추출하여 피처로 만든다.

  • counterVectorize : 단순 카운팅 - 카운트 값이 높을수록 중요한 단어로 인식(분별성 x) - 단어들의 문맥, 순서를 무시하고 빈도수를 기반으로 벡터화 시킴. - 문제점 : 모든 문서에 중요하지 않는 단어가 자주 등장하면 중요하다고 인식하는 문제(= 문맥의 의미를 반영하기 힘듬)
  • TF-IDF(Term Frequency- inverse document frequency) : 문서 내 빈도수 확인하여 가중치 부여. - 개별 문서에서 자주 등장하는 단어에는 높은 가중치를 주되, 모든 문서에 자주 등장하는 단어에는 패널티를 줌. TF : 단어가 각 문서에서 발생한 빈도 DF : 단어가 등장한 문서의 수 - 적은 문서에서 상대적으로 많이 발견될수록 가치 있는 정보. - 카운트 벡터화 보완(패널티 부여) - 단어가 특정문서에서만 나타나는 희소성을 반영하기 위해서 TF에 DF의 역수(IDF)를 곱한 값을 사용.

특징 추출 => 벡터화 !