어떤 방법을 사용할 수 있는지 감을 잡기 위해 현장의 주요 알고리즘을 둘러보는 것이 유용합니다.
너무 많은 알고리즘이 있어서 알고리즘 이름이 주위에 던져지고 그것이 무엇인지, 어디에 맞는지 알 것으로 기대될 때 압도적으로 느껴질 수 있습니다.
현장에서 접할 수 있는 알고리즘에 대해 생각하고 분류하는 두 가지 방법을 알려 드리고자 합니다.
- 첫 번째는 학습 스타일 에 따라 알고리즘을 그룹화하는 것입니다 .
- 두 번째는 형태나 기능의 유사성 에 따라 알고리즘을 그룹화하는 것입니다(유사한 동물을 그룹화하는 것과 같음).
두 접근 방식 모두 유용하지만 유사성에 따라 알고리즘을 그룹화하는 데 초점을 맞추고 다양한 알고리즘 유형을 살펴보겠습니다.
이 게시물을 읽고 나면 감독 학습을 위한 가장 인기 있는 기계 학습 알고리즘과 이들이 어떻게 관련되어 있는지 훨씬 더 잘 이해할 수 있습니다.
모든 예제에 대한 단계별 자습서 및 Excel 스프레드시트 파일이 포함된 책 Master Machine Learning Algorithms (Howard Schneider) 프로젝트를 시작하십시오 .
시작하자.
학습 스타일별로 그룹화된 알고리즘
알고리즘이 경험이나 환경 또는 입력 데이터라고 부르는 모든 것과의 상호 작용을 기반으로 문제를 모델링할 수 있는 다양한 방법이 있습니다.
기계 학습 및 인공 지능 교과서에서는 알고리즘이 채택할 수 있는 학습 스타일을 먼저 고려하는 것이 일반적입니다.
알고리즘이 가질 수 있는 몇 가지 주요 학습 스타일 또는 학습 모델이 있으며 여기서 알고리즘 및 문제 유형의 몇 가지 예와 함께 살펴보겠습니다.
이 분류법 또는 기계 학습 알고리즘을 구성하는 방법은 입력 데이터의 역할과 모델 준비 프로세스에 대해 생각하고 최상의 결과를 얻기 위해 문제에 가장 적합한 것을 선택하도록 하기 때문에 유용합니다.
기계 학습 알고리즘의 세 가지 다른 학습 스타일을 살펴보겠습니다.
1. 감독 학습
입력 데이터는 학습 데이터라고 하며 스팸/스팸 아님 또는 한 번에 주가와 같은 알려진 레이블 또는 결과를 가집니다.
모델은 예측을 수행하는 데 필요한 교육 프로세스를 통해 준비되고 해당 예측이 잘못되었을 때 수정됩니다. 훈련 프로세스는 모델이 훈련 데이터에서 원하는 수준의 정확도를 달성할 때까지 계속됩니다.
예제 문제는 분류 및 회귀입니다.
예제 알고리즘에는 Logistic Regression 및 Back Propagation Neural Network가 포함됩니다.
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
- 조건부 결정 트리
베이지안 알고리즘
베이지안 방법은 분류 및 회귀와 같은 문제에 대해 명시적으로 베이즈 정리를 적용하는 방법입니다.
가장 널리 사용되는 베이지안 알고리즘은 다음과 같습니다.
- 나이브 베이즈
- 가우시안 나이브 베이즈
- 다항 Naive Bayes
- AODE(Averaged One-Dependence Estimators)
- 베이지안 신념 네트워크(BBN)
- 베이지안 네트워크(BN)
클러스터링 알고리즘
회귀와 마찬가지로 클러스터링은 문제 클래스와 메서드 클래스를 설명합니다.
클러스터링 방법은 일반적으로 중심 기반 및 계층과 같은 모델링 접근 방식으로 구성됩니다. 모든 방법은 데이터를 최대 공통성의 그룹으로 가장 잘 구성하기 위해 데이터의 고유한 구조를 사용하는 것과 관련이 있습니다.
가장 널리 사용되는 클러스터링 알고리즘은 다음과 같습니다.
- k-평균
- k-중앙값
- 기대 극대화(EM)
- 계층적 클러스터링
연관 규칙 학습 알고리즘
연관 규칙 학습 방법은 데이터에서 변수 간의 관찰된 관계를 가장 잘 설명하는 규칙을 추출합니다.
이러한 규칙은 조직에서 악용할 수 있는 대규모 다차원 데이터 세트에서 중요하고 상업적으로 유용한 연결을 검색할 수 있습니다.
가장 널리 사용되는 연관 규칙 학습 알고리즘은 다음과 같습니다.
- 선험적 알고리즘
- Eclat 알고리즘
인공 신경망 알고리즘
인공 신경망은 생물학적 신경망의 구조 및/또는 기능에서 영감을 얻은 모델입니다.
이들은 회귀 및 분류 문제에 일반적으로 사용되는 패턴 일치 클래스이지만 실제로는 모든 방식의 문제 유형에 대한 수백 개의 알고리즘 및 변형으로 구성된 거대한 하위 필드입니다.
이 분야의 엄청난 성장과 인기 때문에 신경망에서 딥 러닝을 분리했습니다. 여기서 우리는 보다 고전적인 방법에 관심이 있습니다.
가장 널리 사용되는 인공 신경망 알고리즘은 다음과 같습니다.
- 퍼셉트론
- 다층 퍼셉트론(MLP)
- 역전파
- 확률적 경사하강법
- 홉필드 네트워크
- RBFN(방사형 기저 함수 네트워크)
딥 러닝 알고리즘
딥 러닝 방법은 풍부하고 저렴한 계산을 활용하는 인공 신경망에 대한 최신 업데이트입니다.
그들은 훨씬 더 크고 복잡한 신경망을 구축하는 것과 관련이 있으며 위에서 언급한 것처럼 이미지, 텍스트와 같은 레이블이 지정된 아날로그 데이터의 매우 큰 데이터 세트와 관련된 많은 방법이 있습니다. 오디오, 비디오.
가장 널리 사용되는 딥 러닝 알고리즘은 다음과 같습니다.
- 컨벌루션 신경망(CNN)
- 순환 신경망(RNN)
- 장단기 기억 네트워크(LSTM)
- 누적 자동 인코더
- 딥 볼츠만 기계(DBM)
- 깊은 믿음 네트워크(DBN)
차원 감소 알고리즘
클러스터링 방법과 마찬가지로 차원 축소는 데이터의 고유한 구조를 찾고 활용하지만, 이 경우 감독되지 않은 방식 또는 순서로 적은 정보를 사용하여 데이터를 요약하거나 설명합니다.
이는 차원 데이터를 시각화하거나 지도 학습 방법에서 사용할 수 있는 데이터를 단순화하는 데 유용할 수 있습니다. 이러한 방법 중 다수는 분류 및 회귀에 사용하도록 조정할 수 있습니다.
- 주성분 분석(PCA)
- 주성분 회귀(PCR)
- 부분 최소 제곱법(PLSR)
- 새몬 매핑
- 다차원척도법(MDS)
- 프로젝션 추구
- 선형 판별 분석(LDA)
- 혼합물 판별 분석(MDA)
- 2차 판별 분석(QDA)
- 유연한 판별 분석(FDA)
앙상블 알고리즘
앙상블 방법은 독립적으로 훈련되고 전체 예측을 위해 어떤 방식으로든 예측이 결합되는 여러 약한 모델로 구성된 모델입니다.
약한 학습자의 유형과 결합 방법에 많은 노력을 기울입니다. 이것은 매우 강력한 기술 클래스이므로 매우 인기가 있습니다.
- 부스팅
- 부트스트랩 집계(Bagging)
- 에이다부스트
- 가중 평균(혼합)
- 누적 일반화(Stacking)
- 그래디언트 부스팅 머신(GBM)
- 그래디언트 부스트 회귀 트리(GBRT)
- 랜덤 포레스트
기타 기계 학습 알고리즘
많은 알고리즘이 다루어지지 않았습니다.
다음과 같은 기계 학습 과정에서 전문 작업의 알고리즘은 다루지 않았습니다.
- 기능 선택 알고리즘
- 알고리즘 정확도 평가
- 성능 측정
- 최적화 알고리즘
또한 다음과 같은 기계 학습의 전문 하위 필드에서 알고리즘을 다루지 않았습니다.
- 컴퓨팅 지능(진화 알고리즘 등)
- 컴퓨터 비전(CV)
- 자연어 처리(NLP)
- 추천 시스템
- 강화 학습
- 그래픽 모델
- 그리고 더…
향후 게시물에 포함될 수 있습니다.
기계 학습 알고리즘에 대한 추가 정보
이 기계 학습 알고리즘 둘러보기는 무엇이 있는지에 대한 개요와 알고리즘을 서로 연관시키는 방법에 대한 몇 가지 아이디어를 제공하기 위한 것입니다.
알고리즘에 대한 읽기를 계속할 수 있도록 몇 가지 리소스를 함께 수집했습니다. 구체적인 질문이 있으시면 댓글을 남겨주세요.
기계 학습 알고리즘의 다른 목록
관심이 있다면 다른 훌륭한 알고리즘 목록이 있습니다. 다음은 손으로 선택한 몇 가지 예입니다.
- 기계 학습 알고리즘 목록 : On Wikipedia. 광범위하지만 이 목록이나 알고리즘 구성이 특별히 유용하지는 않습니다.
- Machine Learning Algorithms 카테고리 : Wikipedia에서도 위의 Wikipedia의 훌륭한 목록보다 약간 더 유용합니다. 알고리즘을 알파벳순으로 구성합니다.
- CRAN 작업 보기: 기계 학습 및 통계 학습 : R의 각 기계 학습 패키지에서 지원하는 모든 패키지 및 모든 알고리즘의 목록입니다. 외부에 무엇이 있고 사람들이 매일 분석에 사용하는 것이 무엇인지에 대한 근거 있는 느낌을 줍니다. .
- 데이터 마이닝의 상위 10개 알고리즘 : 데이터 마이닝에 가장 많이 사용되는 알고리즘에 대해 설명합니다. 당신이 깊이 배울 수 있는 또 다른 근거 있고 덜 압도적인 방법을 취합니다.
기계 학습 알고리즘을 연구하는 방법
알고리즘은 기계 학습의 큰 부분입니다. 제가 열정을 가지고 이 블로그에 많이 쓰는 주제입니다. 다음은 추가 읽기에 관심이 있을 수 있는 몇 가지 엄선된 게시물입니다.
- 기계 학습 알고리즘을 학습하는 방법 : "알고리즘 설명 템플릿"을 사용하여 모든 기계 학습 알고리즘을 연구하고 이해하는 데 사용할 수 있는 체계적인 접근 방식입니다(저는 이 접근 방식을 제 첫 책을 쓰기 위해 사용했습니다 ).
- 기계 학습 알고리즘의 대상 목록을 만드는 방법 : 다음 기계 학습 문제에 대한 작업을 바로 시작하기 위해 자신만의 체계적인 기계 학습 알고리즘 목록을 만드는 방법입니다.
- 기계 학습 알고리즘을 연구하는 방법 : 기계 학습 알고리즘을 연구하는 데 사용할 수 있는 체계적인 접근 방식입니다(위에 나열된 템플릿 접근 방식과 협력하면 훌륭하게 작동함).
- 기계 학습 알고리즘 동작을 조사하는 방법 : 동작에 대한 아주 작은 연구를 만들고 실행하여 기계 학습 알고리즘이 작동하는 방식을 이해하는 데 사용할 수 있는 방법론입니다. 연구는 학자만을 위한 것이 아닙니다!
- 기계 학습 알고리즘을 구현하는 방법 : 처음부터 기계 학습 알고리즘을 구현하기 위한 프로세스 및 팁과 트릭입니다.
기계 학습 알고리즘을 실행하는 방법
때로는 코드에 뛰어들고 싶을 때가 있습니다. 다음은 기계 학습 알고리즘을 실행하거나 표준 라이브러리를 사용하여 코딩하거나 처음부터 구현하는 데 사용할 수 있는 몇 가지 링크입니다.
- R에서 기계 학습 알고리즘을 시작하는 방법 : R에서 기계 학습 알고리즘을 시연하는 이 사이트의 많은 코드 예제에 대한 링크입니다.
- scikit-learn의 기계 학습 알고리즘 레시피 : scikit-learn을 사용하여 예측 모델을 생성하는 방법을 보여주는 Python 코드 예제 모음입니다.
- Weka에서 첫 번째 분류기를 실행하는 방법 : Weka에서 첫 번째 분류기를 실행하기 위한 자습서입니다( 코드가 필요하지 않습니다! ).
최종 단어
이 투어가 도움이 되었기를 바랍니다.
알고리즘 둘러보기를 개선하는 방법에 대한 질문이나 아이디어가 있으면 의견을 남겨주세요.