Machine Learning - #14 머신러닝 내용 정리

임다이·2023년 12월 29일
0

Machine Learning

목록 보기
15/15

반드시 기억하면 좋은 것들

  1. 머신러닝 순서(7단계)

    1) 문제정의

    • 인공지능으로 어떤 기능을 제작하려하는지 최대한 자세하게

    2) 데이터 수집

    • AI HUB, KAGGLE, GOOGLE DATASETS, ROBOFLOW
    • 직접 수집할 땐 최대한 많이(정확한 예측), 최대한 다양하게(깊은 분석)

    3) 데이터 전처리

    • 결측치 여부
    • 이상치 여부

    4) 탐색적 데이터 분석 → 많이 생략되는 편

    • 도표, 통계치, 그래프 등을 사용해서 자세하게 바라보기

    5) 모델 선택 및 하이퍼 파라미터 튜닝

    • 목적, 데이터에 따라 적합한 모델 사용
    • 모델의 세부적인것들을 변경해주면 원할한 학습 가능

    6) 학습

    • -모델에 데이터를 주고 규칙을 찾게 한다

    7) 예측 및 평가

    • 새로운 데이터를 모델에 줬을 때 올바른 값을 출력하는가
    • 새로운 데이터를 모델에 줬을 때 정확하게 값을 출력하는가


  2. 분류 평가지표(0~1사이의 값으로 존재, 1일수록 좋음)

    1) 정확도(Accuracy)

    • 전체 중에 정확히 맞춘 비율
    • 정확도만으로는 모델의 성능을 믿기 힘들다

    2) 재현율(Recall)

    • 실제 양성 중에서 예측한 양성의 비율
    • 애매한 것을 사용한다 → 도둑 판별기

    3) 정밀도(Precision)

    • 예측 양성 중에서 실제 양성의 비율
    • 애매한 것을 사용하지 않는다 → 안전한 동영상 판별기

    4) F1-Score

    • 정밀도와 재현율의 조화평균
    • 값이 높으면 애매한게 없다

    5) ROC Curve

    • 진짜 양성 비율 중 거짓 양성 비율


  3. 회귀 평가지표

    1) MSE(Mean Squared Error, 평균제곱오차)

    • 오차의 값이 0 ~ 무한대
    • 1000이라는 오차가 나왔다 라고 했을 때 정확한 판단이 불가
    • 큰 오차는 더욱 크게 표현, 작은 오차는 더 작게 표현

    2) RMSE, MAE, MAPE

    • RMSE : 평균 제곱근 오차, 값이 작을 때 사용
    • MAE : 평균 절대 오차, 값이 작을 때 사용, 특이값이 많을 때
    • MAPE : 평균 절대 비율 오차, 직관적으로 값을 보고싶을 때

    3) R2 Score = R squared

    • E로 끝나는 회귀평가지표들은 0~무한대의 범위 → 한눈에 파악하기 힘들다

    • R2 Score는 0~1까지로 변경 → 정확도처럼 사용 가능

    • 코드에서 보는 평가지표



  4. 경사하강법

    • 점진적으로 최적의 값을 찾아가는 방법
    • 오차가 작아지는 방향으로 이동시키는 방법
    • 방향의 문제 : 어떤 방향으로 이동할 것인가
    • 보폭의 문제 : 한 번에 얼마만큼 이동할 것인가


  5. 일반화, 과대적합, 과소적합

    • 일반화 : 모델이 학습이 잘 되었다 = 일반화가 잘되었다
      → 새롭게 들어오는 데이터를 예측 잘한다
    • 과대적합 : 학습데이터에 과하게 학습해서 학습데이터는 잘 맞추지만 그 외 데이터는 잘 못 맞추는 현상
       train accuracy : 0.9, test accuracy : 0.75 → 과대적합
                         0.85                 0.8 → 일반화
    • 과소적합 : 학습데이터를 조금만 학습해서 학습데이터도 못 맞추고 그 외 데이터도 못 맞추는 현상
      train accuracy : 0.9, test accuracy : 0.75 → 과소적합
                        0.85                 0.7 → 과소적합

기억해두면 좋은 것들

  1. L1 규제, L2 규제

    1) L1 규제 : 모든 가중치에 똑같은 힘으로 규제를 적용
    -특정 가중치는 0이 된다 → 사용되지 않는다
    -사용되는 가중치와 사용되지 않는 가중치가 나뉨
    -특성 선택이 자동으로 이루어짐
    → 특정 데이터가 중요할 때 사용

    2) L2 규제 : 모든 가중치에 똑같은 비율로 규제를 적용
    -모든 가중치는 0이되지 않는다
    -모든 가중치를 사용
    -모든 데이터가 고르게 중요할 때 사용
    → 일반적으로 많이 사용

  2. 다양한 모델들

    1) KNN(K Nearest Neighbors)

    • 가까운 이웃이 가지고있는 값을 활용해서 예측
    • 데이터가 군집을 이룰 때, 예측시간이 빨라야 할 때

    2) Decision Tree

    • 스무고개, 아키네이터
    • 데이터가 사각형일 때, 특성 선택을 해야 할 때

    3) Ensemble 계열의 모델

    • Bagging 방법 : 여러 개의 모델이 서로 독립적인 관계
      -RandomForest 모델
    • Boosting 방법 : 여러 개의 모델을 연결해서 사용
      -AdaBoost, XGBoost, GBM, LGBM
    • 학습과 예측 속도가 느림
    • 머신러닝 모델 중에서는 보통 가장 좋은 결과

    4) 선형 회귀 모델

    • 데이터를 최대한 잘 설명할 수 있는 선 찾기
    • Linear Regression : 수학 공식 사용
    • SGD Regression : 경사하강법 사용 * 딥러닝에서 기본 모델로 사용

    5) 선형회귀 + 규제

    • Lasso : Linear Regression + L1
    • Ridge : Linear Regression + L2

    6) 선형 분류 모델

    • SVM(Support Vector Machine) : 차원의 변동을 통해 분류

    • Logistic Regrssion : S자형 곡선(Sigmoid)을 통해 분류



  3. 교차검증

    1) 데이터셋을 3개로 나눔

    • Train, Validation, Test
    • Validation의 역할 : 기존의 Test
    • Test의 역할 : 진짜 마지막으로 확인하기

    2) 교차검증(Cross Validation)

    • K Fold Cross Validation : 데이터셋을 여러 개로 나누어 학습과 예측을 여러 번 수행

    • Stratified K Fold



  4. Pandas, Numpy

    • 다양한 데이터를 학습의 용이한 형태로 변경(Numpy가 더 중요)
    • 다양한 차원의 데이터를 다루기 용이한게 Numpy


  5. 빅데이터 분석기사 한정(iris, boston 데이터셋 활용 데이터 분석 코드)

    • 데이터 불러오기
    • 데이터 전처리하기(스케일링)
    • 모델 선택 및 하이퍼 파라미터 튜닝
      * 모델은 Ensemble계열, 하이퍼 파라미터는 2~3번 넘지 않게 학습
    • 평가(RMSE 100이하의 모델 생성)

들어봤다

  1. Encoding(Label encoding, One-hot encoding)

    • 글자를 숫자로 변경하는 방법

    • 학습을 위해선 숫자 데이터만을 넣어야한다
      (X input Nan, String to int)

    • Label encoding = map 함수로 해결

    • One-hot encoding = pd.get_gummies



  2. Scaling

    • 데이터의 범위를 조절하는 방법
    • 모델 중에 데이터의 범위가 일정하면 좋은 모델
    • Standard, MinMax, Robust, Nomalizer


  3. GirdSearch

    • -하이퍼 파라미터 튜닝을 쉽게하자


  4. Bow, TFIDF

    • 말뭉치를 학습에 용이한 형태(토큰)으로 변경하는 작업

1) Bow : 단어의 갯수를 센다, 많이나올수록 중요

2) TFIDF : 단어의 갯수를 센다, 몇 개의 문서에서 나왔는지 체크
적은 문서에 나왔고, 나온 문서 안에서는 많이 나오면 중요한 단어


profile
노는게 제일 좋아~!

0개의 댓글