Data Science/Machine Learning

[Coursera Stanford Machine Learning (week 6)]Machine Learning system design

sunnyshiny 2023. 2. 17. 15:01
728x90

해당 내용은 coursera Andrew Ng교수의 Machine Learning강의 노트 정리

 

 

Prioritizing what to work on

어떻게 하면 spam email 분류문제의 정확성을 향상시킬수 있을까

  • 많은 데이터 수집 [Collection lots of data]
  • 정교한 feature 개발 [Develop sophisticated features]
  • 입력을 다양한 방식 으로 처리하는 알고리즘 개발 [Develop algorithms to process your input in different ways]

 

 

Error Analysis

기계 학습 문제를 해결하기 위한 권장 접근법

  • 간단한 알고리즘으로 시작하여 신속하게 구현하고 교차 검증 데이터에서 초기에 테스트
  • Learning curve를 통해 더 많은 데이터, 더 많은 feature 등이 필요한지 여부를 결정
  • 교차 검증 세트의 오류를 수동으로 검사하고 대부분의 오류가 어디서 발생한 것인지 알아볼 것

예를 들어, 500개의 이메일이 있는데 알고리즘이 100개의 이메일을 잘못 분류한다고 가정할 때 100개의 이메일을 수동으로 분석하고 그것이 어떤 종류의 이메일인지에 분류할 수 있다. 그러면 우리는 이 100개의 이메일을 정확하게 분류하는 데 도움이 될 새로운 단서와 기능을 생각해 낼 수 있다.

 

따라서 잘못 분류된 메일의 대부분이 암호를 도용하려는 전자 메일이라면 해당 메일에 특정한 기능을 찾아 모델에 추가할 수 있다. 또한 각 단어를 루트에 따라 분류하면 오류율이 어떻게 변하는지 알 수 있다. 위의 예에서 steal passwords의 분류가 정확하게 분류되지 않았고 이를 분류하기 위한 feature나 특징을 고려하고 어떠한 단서나 기능들이 추가되야 할지 판단하는 것이 좋다. 즉 잘못된 마침표라던지 스펠링 체크 등을 고려해보는 것이다. 

 

 

 

Handling skewed Data

암환자를 예측하는 모델에서 전체 데이터 중에서 실제 암환자의 수가 1% 라고 하였을 때 모델의 정확도가 99%라는 것은 모델이 잘 예측해서라기 보다 데이터의 특성으로 인해 정확도가 높게 나온것이다. 정확성을 판단하는 방법으로 precision 과 recall 이 있다.

 

 

https://pouannes.github.io/blog/precision-recall/

$$ precision=\frac{true\ positive}{no.\ of\ predicted\ positive}\\ recall=\frac{true\ positive}{no.\ of\ actual\ positive}\\Accuracy=\frac{true\ positive+true\ negative}{total\ examples} $$

 

여러 알고리즘을 비교하거나 하나의 알고리즘에 서로 다른 threshhold를 사용한다고 할때 precision과  recall의 값으로 어떤것이 더 나은지 판단하기 어려울 수 있다.  F score는 하나의 숫자로 결과가 도출되기 때문에 비교 가능하다. 

$$ F_1\ Score =2\frac{precision*recall}{precision+recall} $$

 

Large data rationale

  • Use a learning algorithm with many parameters [ex logistic regression/ linear regression with many features; neural network with many hidden units] → low bias algorithm
    • ⇒ $J_{train}(\theta)$ will be small
  • Use a very large training set [ unlikely to overfit] → low variance algorithm
    • ⇒ $J_{train}(\theta) \approx J_{train}(\theta)$

 

⇒ $J_{test}(\theta)$ will be small

 

 

 

Refrenece
Machine learning , Coursera, Andrew Ng 

728x90