머신러닝 알고리즘 둘러보기

이 게시물에서는 가장 인기 있는 머신러닝 알고리즘을 살펴보겠습니다.

사용 가능한 방법에 대한 느낌을 얻기 위해 현장의 주요 알고리즘을 탐색하는 것이 유용합니다.

알고리즘이 너무 많아서 압도 당할 수 있지만, 알고리즘이 무엇인지, 어디에 적합한지 알 수 있어야 합니다.

현장에서 접할 수 있는 알고리즘에 대해 생각하고 분류하는 두 가지 방법을 알려 드리고자 합니다.

  • 첫 번째는 학습 스타일에 따라 알고리즘을 그룹화하는 것입니다.
  • 두 번째는 형태 또는 기능의 유사성에 따라 알고리즘을 그룹화하는 것입니다 (유사한 동물을 함께 그룹화하는 것과 같습니다).

두 방법 모두 유용하지만 유사성에 따른 알고리즘 그룹화에 초점을 맞추고 다양한 알고리즘 유형을 둘러 봅니다.

이 게시물을 읽은 후에는 지도 학습을 위한 가장 인기 있는 머신러닝 알고리즘과 그 관계에 대해 훨씬 더 잘 이해할 수 있습니다.


앙상블 학습 방법

가장 잘 맞는 라인의 앙상블의 멋진 예입니다. 약한 멤버는 회색이고 결합된 예측은 빨간색입니다.


학습 스타일별로 그룹화된 알고리즘

알고리즘이 경험이나 환경과의 상호 작용 또는 입력 데이터라고 부르려는 것을 기반으로 문제를 모델링 할 수있는 다양한 방법이 있습니다.

머신러닝 및 인공 지능 교과서에서 알고리즘이 채택 할 수있는 학습 스타일을 먼저 고려하는 것이 일반적입니다.

알고리즘이 가질 수 있는 몇 가지 주요 학습 스타일 또는 학습 모델이 있으며 여기에서 적합한 알고리즘 및 문제 유형의 몇 가지 예를 살펴보겠습니다.

이 분류 또는 머신러닝 알고리즘을 구성하는 방법은 입력 데이터의 역할과 모델 준비 프로세스에 대해 생각하고 최상의 결과를 얻기 위해 문제에 가장 적합한 것을 선택해야 하기 때문에 유용합니다.


머신러닝 알고리즘의 세 가지 학습 스타일을 살펴보겠습니다.

1. 지도 학습

지도 학습 알고리즘입력 데이터는 학습 데이터라고 하며 스팸/스팸 아님과 같은 알려진 레이블 또는 결과 또는 한 번에 주가가 있습니다.

모델은 예측을 수행하는 데 필요한 학습 프로세스를 통해 준비되며 이러한 예측이 잘못된 경우 수정됩니다. 학습 프로세스는 모델이 학습 데이터에 대해 원하는 수준의 정확도에 도달할 때까지 계속됩니다.

문제의 예로는 분류 및 회귀가 있습니다.

예제 알고리즘에는 로지스틱 회귀 및 역전파 신경망이 포함됩니다.




2. 비지도 학습

비지도 학습 알고리즘입력 데이터에 레이블이 지정되지 않았으며 알려진 결과가 없습니다.

모델은 입력 데이터에 존재하는 구조를 추론하여 준비됩니다. 이것은 일반적인 규칙을 추출하는 것일 수 있습니다. 중복성을 체계적으로 줄이기 위한 수학적 과정을 통해서일 수도 있고, 유사성에 따라 데이터를 구성하는 것일 수도 있습니다.

문제의 예로는 클러스터링, 차원 축소 및 연관 규칙 학습이 있습니다.

예제 알고리즘에는 Apriori 알고리즘과 K-Means가 포함됩니다.


3. 반 감독 학습

준지도 학습 알고리즘입력 데이터는 레이블이 지정된 예제와 레이블이 지정되지 않은 예제가 혼합되어 있습니다.

원하는 예측 문제가 있지만 모델은 데이터를 구성하고 예측을 수행하기 위해 구조를 학습해야 합니다.

문제의 예로는 분류 및 회귀가 있습니다.

예제 알고리즘은 레이블이 지정되지 않은 데이터를 모델링하는 방법을 가정하는 다른 유연한 메서드에 대한 확장입니다.



머신러닝 알고리즘 개요

비즈니스 의사 결정을 모델링하기 위해 데이터를 처리할 때 가장 일반적으로 지도 학습 및 비지도 학습 방법을 사용합니다.

현재 뜨거운 주제는 레이블이 지정된 예제가 거의없는 대규모 데이터 세트가있는 이미지 분류와 같은 영역에서 반 감독 학습 방법입니다.


유사성으로 그룹화된 알고리즘

알고리즘은 종종 기능 (작동 방식) 측면에서 유사성으로 그룹화됩니다. 예를 들어, 트리 기반 방법 및 신경망에서 영감을 얻은 방법.

이것이 알고리즘을 그룹화하는 가장 유용한 방법이라고 생각하며 여기서 사용할 접근 방식입니다.

이것은 유용한 그룹화 방법이지만 완벽하지는 않습니다. 신경망에서 영감을 받은 방법이자 인스턴스 기반 방법인 학습 벡터 양자화와 같이 여러 범주에 쉽게 들어갈 수 있는 알고리즘이 여전히 있습니다. 문제를 설명하는 동일한 이름과 회귀 및 클러스터링과 같은 알고리즘 클래스를 가진 범주도 있습니다.

알고리즘을 두 번 나열하거나 주관적으로 “최상의” 적합한 그룹을 선택하여 이러한 경우를 처리 할 수 있습니다. 나는 일을 단순하게 유지하기 위해 알고리즘을 복제하지 않는이 후자의 접근 방식을 좋아합니다.

이 섹션에서는 가장 직관적이라고 생각하는 방식으로 그룹화된 많은 인기 있는 머신러닝 알고리즘을 나열합니다. 이 목록은 그룹이나 알고리즘에서 완전하지는 않지만 대표적이며 토지의 위치에 대한 아이디어를 얻는 데 유용 할 것이라고 생각합니다.

참고: 분류 및 회귀에 사용되는 알고리즘에 대한 강한 편향이 있으며, 이는 가장 널리 퍼진 두 가지 감독 머신러닝 문제입니다.

회귀 알고리즘

회귀 알고리즘회귀는 모델에서 수행한 예측의 오차 측정값을 사용하여 반복적으로 구체화되는 변수 간의 관계를 모델링하는 것과 관련이 있습니다.

회귀 방법은 통계의 주력 제품이며 통계적 머신러닝에 함께 채택되었습니다. 회귀를 사용하여 문제의 클래스와 알고리즘의 클래스를 참조 할 수 있기 때문에 혼란 스러울 수 있습니다. 실제로 회귀는 과정입니다.

가장 많이 사용되는 회귀 알고리즘은 다음과 같습니다.

  • 최소 제곱 회귀 분석(OLSR)
  • 선형 회귀
  • 로지스틱 회귀
  • 단계적 회귀 분석
  • 다변량 적응 회귀 스플라인(MARS)
  • 국부적으로 추정된 산점도 평활화(LOESS)


인스턴스 기반 알고리즘

인스턴스 기반 알고리즘인스턴스 기반 학습 모델은 모델에 중요하거나 필요한 것으로 간주되는 학습 데이터의 인스턴스 또는 예제가 있는 의사 결정 문제입니다.

이러한 방법은 일반적으로 예제 데이터의 데이터베이스를 구축하고 유사성 측정값을 사용하여 새 데이터를 데이터베이스와 비교하여 최상의 일치를 찾고 예측합니다. 이러한 이유로 인스턴스 기반 방법은 승자 독식 방법 및 메모리 기반 학습이라고도합니다. 저장된 인스턴스의 표현과 인스턴스 간에 사용되는 유사성 측정값에 중점을 둡니다.

가장 많이 사용되는 인스턴스 기반 알고리즘은 다음과 같습니다.

  • k-최근접 이웃(kNN)
  • 학습 벡터 양자화(LVQ)
  • 자기 조직화 맵 (SOM)
  • 로컬 가중치 학습 (LWL)
  • 지원 벡터 머신(SVM)

정규화 알고리즘

정규화 알고리즘복잡성에 따라 모델에 불이익을 주는 다른 방법(일반적으로 회귀 메서드)에 대한 확장으로, 일반화에 더 나은 더 간단한 모델을 선호합니다.

정규화 알고리즘은 인기 있고 강력하며 일반적으로 다른 방법으로 간단하게 수정되기 때문에 여기에 별도로 나열했습니다.

가장 널리 사용되는 정규화 알고리즘은 다음과 같습니다.

  • 능선 회귀
  • 최소 절대 수축 및 선택 연산자(LASSO)
  • 탄성 그물
  • 최소 각도 회귀 (LARS)

의사 결정 트리 알고리즘

의사 결정 트리 알고리즘의사 결정 트리 메서드는 데이터에 있는 특성의 실제 값을 기반으로 의사 결정 모델을 구성합니다.

결정은 지정된 레코드에 대한 예측 결정이 내려질 때까지 트리 구조에서 분기됩니다. 의사 결정 트리는 분류 및 회귀 문제에 대한 데이터에 대해 학습됩니다. 의사 결정 트리는 종종 빠르고 정확하며 머신러닝에서 가장 선호됩니다.

가장 널리 사용되는 의사 결정 트리 알고리즘은 다음과 같습니다.

  • 분류 및 회귀 트리(CART)
  • 반복 이분법 3 (ID3)
  • C4.5 및 C5.0(강력한 접근 방식의 다른 버전)
  • 카이 제곱 자동 교호작용 감지(CHAID)
  • 결정 그루터기
  • M5
  • 조건부 의사 결정 트리


베이지안 알고리즘

베이지안 알고리즘베이지안 방법은 분류 및 회귀와 같은 문제에 대해 Bayes의 정리를 명시적으로 적용하는 방법입니다.

가장 많이 사용되는 베이지안 알고리즘은 다음과 같습니다.

  • 나이브 베이즈
  • 가우스 나이브 베이즈
  • 다항 나이브 베이즈
  • 평균 1-의존성 추정기(AODE)
  • 베이지안 신념 네트워크 (BBN)
  • 베이지안 네트워크(BN)

클러스터링 알고리즘

클러스터링 알고리즘회귀와 마찬가지로 클러스터링은 문제의 클래스와 메서드의 클래스를 설명합니다.

클러스터링 방법은 일반적으로 중심 기반 및 계층과 같은 모델링 접근 방식으로 구성됩니다. 모든 방법은 데이터의 고유한 구조를 사용하여 데이터를 최대 공통성 그룹으로 가장 잘 구성하는 것과 관련이 있습니다.

가장 많이 사용되는 클러스터링 알고리즘은 다음과 같습니다.

  • k-평균
  • k-중앙값
  • 기대 극대화 (EM)
  • 계층적 클러스터링


연관 규칙 학습 알고리즘

연관 규칙 학습 알고리즘연관 규칙 학습 방법은 데이터에서 변수 간에 관측된 관계를 가장 잘 설명하는 규칙을 추출합니다.

이러한 규칙은 조직에서 악용할 수 있는 대규모 다차원 데이터 세트에서 중요하고 상업적으로 유용한 연결을 검색할 수 있습니다.

가장 널리 사용되는 연결 규칙 학습 알고리즘은 다음과 같습니다.

  • 선험적 알고리즘
  • 에클랫 알고리즘


인공 신경망 알고리즘

인공 신경망 알고리즘인공 신경망은 생물학적 신경망의 구조 및/또는 기능에서 영감을 받은 모델입니다.

회귀 및 분류 문제에 일반적으로 사용되는 패턴 일치 클래스이지만 실제로는 모든 종류의 문제 유형에 대한 수백 개의 알고리즘과 변형으로 구성된 거대한 하위 필드입니다.

제가 딥러닝을 신경망에서 분리한 것은 이 분야의 엄청난 성장과 인기 때문입니다. 여기서 우리는 보다 고전적인 방법에 관심이 있습니다.

가장 널리 사용되는 인공 신경망 알고리즘은 다음과 같습니다.

  • 퍼셉트론
  • 다층 퍼셉트론(MLP)
  • 역전파
  • 확률적 경사하강법
  • 홉필드 네트워크
  • 방사형 기저 함수 네트워크(RBFN)


딥러닝 알고리즘

딥러닝 알고리즘딥 러닝 방법은 풍부하고 저렴한 계산을 활용하는 인공 신경망에 대한 최신 업데이트입니다.

그들은 훨씬 더 크고 복잡한 신경망을 구축하는 데 관심이 있으며, 위에서 언급했듯이 많은 방법은 이미지, 텍스트와 같은 레이블이 지정된 아날로그 데이터의 매우 큰 데이터 세트와 관련이 있습니다. 오디오 및 비디오.

가장 널리 사용되는 딥 러닝 알고리즘은 다음과 같습니다.

  • 컨볼루션 신경망 (CNN)
  • 순환 신경망(RNN)
  • 장기 단기 기억 네트워크(LSTM)
  • 스택형 오토인코더
  • 딥 볼츠만 머신 (DBM)
  • 깊은 신념 네트워크 (DBN)


차원 축소 알고리즘

차원 감소 알고리즘클러스터링 방법과 마찬가지로 차원 축소는 데이터의 고유한 구조를 찾고 활용하지만 이 경우에는 더 적은 정보를 사용하여 데이터를 요약하거나 설명하는 비지도 방식 또는 순서로 수행됩니다.

이는 차원 데이터를 시각화하거나 지도 학습 방법에서 사용할 수 있는 데이터를 단순화하는 데 유용할 수 있습니다. 이러한 방법의 대부분은 분류 및 회귀에 사용하도록 조정할 수 있습니다.

  • 주성분 분석 (PCA)
  • 주성분 회귀(PCR)
  • 부분 최소 제곱 회귀 분석 (PLSR)
  • 삼몬 매핑
  • 다차원 스케일링(MDS)
  • 프로젝션 추적
  • 선형 판별 분석 (LDA)
  • 혼합물 판별 분석 (MDA)
  • 2차 판별 분석(QDA)
  • 유연한 판별 분석 (FDA)


앙상블 알고리즘

앙상블 알고리즘앙상블 방법은 독립적으로 훈련되고 예측이 어떤 방식 으로든 결합되어 전체 예측을 수행하는 여러 약한 모델로 구성된 모델입니다.

어떤 유형의 약한 학습자를 결합하고 어떻게 결합할 것인지에 많은 노력을 기울입니다. 이것은 매우 강력한 기술 클래스이며 매우 인기가 있습니다.

  • 증폭
  • 부트스트랩된 집계(배깅)
  • 아다부스트
  • 가중 평균(혼합)
  • 누적 일반화(스태킹)
  • 그라디언트 부스팅 기계 (GBM)
  • 그라데이션 부스트 회귀 트리(GBRT)
  • 랜덤 포레스트

다른 머신러닝 알고리즘

많은 알고리즘이 다루어지지 않았습니다.

필자는 다음과 같은 머신러닝 과정에서 특수 작업의 알고리즘을 다루지 않았습니다.

  • 기능 선택 알고리즘
  • 알고리즘 정확도 평가
  • 성능 측정
  • 최적화 알고리즘

또한 다음과 같은 머신러닝의 전문 하위 분야의 알고리즘도 다루지 않았습니다.

  • 계산 지능 (진화 알고리즘 등)
  • 컴퓨터 비전 (CV)
  • 자연어 처리(NLP)
  • 추천 시스템
  • 강화 학습
  • 그래픽 모델
  • 그 외 다수…

향후 게시물에 포함될 수 있습니다.


머신러닝 알고리즘에 대한 추가 읽기

이 머신러닝 알고리즘 둘러보기는 현재 존재하는 내용에 대한 개요와 알고리즘을 서로 연관시키는 방법에 대한 몇 가지 아이디어를 제공하기 위한 것입니다.

머신러닝 알고리즘의 다른 목록

관심이 있다면 다른 훌륭한 알고리즘 목록이 있습니다. 다음은 손으로 선택한 몇 가지 예입니다.

  • 머신러닝 알고리즘 목록: 위키피디아에서. 광범위하지만이 목록이나 알고리즘의 구성이 특히 유용하지는 않습니다.
  • 머신러닝 알고리즘 분류: 또한 위키백과에서는 위의 위키백과 훌륭한 목록보다 약간 더 유용합니다. 알고리즘을 알파벳순으로 구성합니다.
  • CRAN 작업 보기: 머신러닝 및 통계 학습: R의 각 머신러닝 패키지에서 지원하는 모든 패키지 및 모든 알고리즘 목록입니다. 무엇이 있고 사람들이 매일 분석에 무엇을 사용하고 있는지에 대한 근거 있는 느낌을 제공합니다.
  • 데이터 마이닝의 상위 10개 알고리즘: 데이터 마이닝에 가장 많이 사용되는 알고리즘에 대해 설명합니다. 

머신러닝 알고리즘을 연구하는 방법

알고리즘은 머신러닝의 큰 부분입니다. 다음은 추가 읽기에 관심을 가질 만한 게시물입니다.

  • 머신러닝 알고리즘을 배우는 방법 : “알고리즘 설명 템플릿”을 사용하여 머신러닝 알고리즘을 연구하고 이해하는 데 사용할 수있는 체계적인 접근 방식입니다 (이 접근 방식을 사용하여 첫 번째 책을 작성했습니다).
  • 머신러닝 알고리즘의 대상 목록을 만드는 방법: 다음 머신러닝 문제에 대한 작업을 바로 시작하기 위해 고유한 체계적인 머신러닝 알고리즘 목록을 만드는 방법입니다.
  • 머신러닝 알고리즘을 연구하는 방법: 머신러닝 알고리즘을 연구하는 데 사용할 수 있는 체계적인 접근 방식입니다(위에 나열된 템플릿 접근 방식과 함께 사용하면 훌륭하게 작동함).
  • 머신러닝 알고리즘 동작을 조사하는 방법: 동작에 대한 매우 작은 연구를 만들고 실행하여 머신러닝 알고리즘의 작동 방식을 이해하는 데 사용할 수 있는 방법론입니다. 연구는 학계만을 위한 것이 아닙니다!
  • 머신러닝 알고리즘을 구현하는 방법: 머신러닝 알고리즘을 처음부터 구현하기 위한 프로세스와 팁과 요령입니다.


머신러닝 알고리즘을 실행하는 방법

때로는 코드를 자세히 살펴보고 싶을 때가 있습니다. 다음은 머신러닝 알고리즘을 실행하거나, 표준 라이브러리를 사용하여 코딩하거나, 처음부터 구현하는 데 사용할 수 있는 몇 가지 링크입니다.

네피리티
No Comments

Sorry, the comment form is closed at this time.