전통문화대전망 - 전통 미덕 - 기계 학습 초보자를위한 10 가지 알고리즘
기계 학습 초보자를위한 10 가지 알고리즘
이 문서에서는 선형 회귀, Logistic 회귀, 소박한 베네치아, K 이웃 알고리즘 등 기계 학습 초보자가 알아야 할 10 알고리즘에 대해 설명합니다.
기계 학습에서,' 세상에 공짜 점심이 없다' 는 정리가 있다. 간단히 말해서, 특히 감독 학습 (즉, 예측 모델링) 에서 모든 문제에 유효한 알고리즘이 없다는 것을 나타냅니다.
예를 들어, 신경망이 항상 의사 결정 트리보다 낫다고 말할 수는 없으며, 그 반대도 마찬가지입니다. 데이터 세트의 크기와 구조와 같은 많은 요소들이 작용한다.
따라서 특정 문제에 대해 다양한 알고리즘을 시도하고 성능을 평가하고 승자를 선택하기 위해 데이터 "테스트 세트" 를 남겨 두어야 합니다.
물론, 당신이 시도하는 알고리즘은 반드시 당신의 문제에 적합해야 합니다. 즉, 적절한 기계 학습 임무를 선택하는 것입니다. 예를 들어, 집을 청소해야 한다면 진공청소기나 빗자루나 걸레를 사용할 수 있지만 삽을 꺼내지 않고 파기 시작할 수 있습니다.
대원칙
그러나, 또 하나의 보편적인 원칙은 기계 학습 알고리즘을 감독하는 모든 예측 모델링의 기초이다.
기계 학습 알고리즘은 입력 변수 x 를 출력 변수 Y: Y = F (x) 에 가장 잘 매핑하는 학습 목표 함수 f 로 설명됩니다.
이것은 일반적인 학습 임무입니다. 우리는 입력 변수 X 의 새로운 샘플을 기반으로 Y 를 예측할 수 있습니다. 우리는 함수 F 의 모양이나 형식을 알지 못합니다. 알고 있다면, 우리는 그것을 직접 사용할 것입니다. 기계 학습 알고리즘을 사용하여 데이터로부터 배울 필요가 없습니다.
가장 일반적인 기계 학습 알고리즘은 Y = f(X) 를 매핑하여 새로운 x 의 y 를 예측하는 것입니다. 이를 예측 모델링 또는 예측 분석이라고 하며, 우리의 목표는 가능한 가장 정확한 예측을 하는 것입니다.
이 문서에서는 기계 학습의 기본 사항을 알고 싶은 초보자를 위해 데이터 과학자들이 사용하는 최상위 10 기계 학습 알고리즘에 대해 간략하게 설명합니다.
1. 선형 회귀
선형 회귀는 통계학과 기계 학습에서 가장 유명하고 이해하기 쉬운 알고리즘 중 하나일 수 있다.
예측 모델링은 주로 모델 오류를 최소화하거나 가능한 가장 정확한 예측을 하는 데 중점을 두고 설명 가능한 비용을 희생합니다. 우리는 통계학을 포함한 여러 분야의 알고리즘을 차용하고 재사용하여 이러한 목적으로 사용할 것이다.
선형 회귀의 표현은 입력 변수의 특정 가중치 (계수 B 라고 함) 를 구하여 입력 변수 X 와 출력 변수 Y 사이의 관계를 가장 잘 나타내는 선을 설명하는 방정식입니다.
선형회귀
예: y = B0+B 1 * x
입력된 X 를 기준으로 Y 를 예측합니다. 선형 회귀 학습 알고리즘의 목표는 계수 B0 과 B 1 의 값을 찾는 것입니다.
일반 최소 평방 및 그라데이션 감소 최적화를 위한 선형 대수학 솔루션과 같은 다양한 기술을 사용하여 데이터에서 선형 회귀 모형을 배울 수 있습니다.
선형 회귀는 이미 200 여 년 동안 존재해 왔으며 광범위한 연구를 받았다. 이 기술을 사용한 경험 중 일부는 가능한 한 비슷한 (관련) 변수를 제거하고 소음을 제거하는 것입니다. 이것은 빠르고 간단한 기술이니, 네가 먼저 시도해 볼 수 있다.
2. 논리 회귀
논리적 회귀는 기계 학습이 통계학을 참고하는 또 다른 기술이다. 이진 분류 문제를 해결하는 데 선호됩니다.
로지스틱 회귀는 선형 회귀와 유사하며 각 입력 변수의 가중치, 즉 계수 값을 찾는 것을 목표로 합니다. 선형 회귀와 달리 논리 회귀는 논리 함수라는 비선형 함수를 사용하여 출력을 예측합니다.
논리 함수는 큰 S 처럼 보이며 임의의 값을 0 에서 1 범위로 변환할 수 있습니다. 논리 함수의 출력 값을 0 과 1 (예를 들어 입력이 0.5 보다 작으면 1) 으로 지정하고 범주 값을 예측할 수 있기 때문에 유용합니다.
논리회귀
모델의 학습 방식으로 인해 논리적 회귀 예측은 범주 0 또는 1 에 속하는 지정된 데이터 인스턴스의 확률로도 사용될 수 있습니다. 이는 더 많은 예측 근거를 제공해야 하는 문제에 유용합니다.
선형 회귀와 마찬가지로 논리 회귀는 출력 변수와 무관한 속성과 매우 유사한 (관련) 속성을 삭제할 때 더 효과적입니다. 이것은 2 분류 문제에 매우 효과적인 빠른 학습 모델이다.
선형 판별 분석 (LDA)
논리적 회귀는 분류 알고리즘입니다. 전통적으로 두 가지 분류 문제로 제한되었습니다. 두 개 이상의 범주가 있는 경우 선형 판별 분석이 선호되는 선형 분류 기술입니다.
LDA 의 표현은 매우 간단하고 직접적이다. 데이터의 통계적 속성으로 구성되며 각 범주를 계산합니다. 단일 입력 변수의 LDA 는 다음과 같습니다.
각 범주의 평균;
모든 범주의 분산.
선형 판별 분석
예측 방법은 각 범주에 대한 판별 값을 계산하고 최대치로 범주를 예측하는 것입니다. 이 기법은 데이터가 가우스 분포 (종형 곡선) 라고 가정하므로 데이터에서 비정상적인 값을 미리 제거하는 것이 좋습니다. 이것은 분류 예측 모델링 문제를 처리하는 간단하고 강력한 방법이다.
4. 분류 및 회귀 트리
의사 결정 트리는 모델링 기계 학습을 예측하는 중요한 알고리즘입니다.
의사 결정 트리 모델의 표현은 이진 트리입니다. 이것은 이진 트리의 알고리즘과 데이터 구조이며 특별한 것은 없다. 각 노드는 별도의 입력 변수 x 와 변수의 분할점을 나타냅니다 (변수가 숫자라고 가정).
의사 결정 차트
의사 결정 트리의 리프 노드에는 예측에 사용되는 출력 변수 y 가 포함되어 있습니다. 리프 노드에 도달하고 해당 노드의 범주 값을 출력할 때까지 트리의 분할점을 반복하여 예측할 수 있습니다.
의사 결정 트리의 학습 속도와 예측 속도는 모두 빠르다. 또한 데이터에 대한 특별한 준비 없이 많은 문제를 해결할 수 있습니다.
5. 소박한 베이지안
소박한 베이직스는 간단하지만 강력한 예측 모델링 알고리즘이다.
모델은 교육 데이터에서 직접 계산할 수 있는 두 가지 확률로 구성됩니다. 1) 각 범주의 확률입니다. 2) 각 x 에 대한 값, 각 범주에 대한 조건부 확률을 제공합니다. 계산이 완료되면 확률 모델은 베이지안 정리를 사용하여 새 데이터를 예측할 수 있습니다. 데이터가 진짜일 때, 당신은 보통 가우스 분포 (종형 곡선) 를 가정하여, 너는 이 확률들을 간단하게 추정할 수 있다.
토마스 베이즈
소박한 베이직스는 소박하다. 왜냐하면 모든 입력 변수가 독립적이라고 가정하기 때문이다. 이것은 강력한 가정이다. 실제 데이터는 그렇지 않지만, 이 기술은 대량의 복잡한 문제에서 매우 유용하다.
6.k 가장 가까운 이웃 알고리즘
KNN 알고리즘은 매우 간단하고 효과적입니다. KNN 의 모델 표현은 전체 교육 데이터 세트입니다. 간단합니까?
KNN 알고리즘은 전체 교육 세트에서 k 개의 가장 유사한 예 (이웃) 를 검색하고 k 예제의 출력 변수를 요약하여 새로운 데이터 포인트를 예측합니다. 회귀 문제의 경우 평균 출력 변수일 수 있으며 분류 문제의 경우 사용자 수 (또는 가장 일반적인) 범주 값일 수 있습니다.
비결은 데이터 인스턴스 간의 유사성을 결정하는 방법입니다. 속성의 측정 단위가 같은 경우 (예: 모두 인치로 표시) 가장 간단한 기술은 유클리드 거리를 사용하는 것입니다. 각 입력 변수 간의 차이에 따라 직접 값을 계산할 수 있습니다.
K 가장 가까운 이웃, KNN
KNN 은 모든 데이터를 저장하기 위해 많은 양의 메모리나 공간이 필요하지만 예측이 필요한 경우에만 계산 (또는 학습) 을 수행합니다. 또한 언제든지 교육 샘플을 업데이트 및 관리하여 예측의 정확성을 유지할 수 있습니다.
거리나 타이트성의 개념은 매우 높은 차원 (많은 입력 변수) 에서 충돌할 수 있으며, 이는 알고리즘의 문제 성능에 부정적인 영향을 미칠 수 있습니다. 이것은 소위 차원 재앙입니다. 따라서 예측된 출력 변수와 가장 관련이 있는 입력 변수만 사용하는 것이 좋습니다.
7. 학습 벡터 양자화
K 이웃 알고리즘의 단점 중 하나는 전체 교육 데이터 세트를 순회해야 한다는 것이다. 학습 벡터 정량화 (LVQ) 는 훈련 샘플의 수를 선택하고 이러한 샘플이 어떤 것이어야 하는지 정확하게 배울 수 있는 인공 신경망 알고리즘입니다.
학습 벡터 정량화
LVQ 의 표현은 코드북 벡터의 모음입니다. 이들은 처음에 무작위로 선택되고 학습 알고리즘의 여러 반복에서 점진적으로 조정되어 교육 데이터 세트를 가장 잘 요약합니다. 학습 후 코드북 벡터를 사용하여 예측할 수 있습니다 (K 이웃 알고리즘과 유사). 각 코드북 벡터와 새 데이터 인스턴스 사이의 거리를 계산하여 가장 가까운 이웃을 찾습니다 (코드본 벡터와 가장 잘 일치). 그런 다음 가장 잘 일치하는 셀의 범주 값 또는 (회귀의 실제 값) 을 예측으로 반환합니다. 동일한 범위 (예: 0 과 1 사이) 를 가지도록 데이터를 다시 조정하면 최상의 결과를 얻을 수 있습니다.
KNN 이 데이터 세트에서 좋은 결과를 얻은 경우 LVQ 를 사용하여 전체 교육 데이터 세트를 저장하는 데 필요한 메모리 요구 사항을 줄여 보십시오.
8. 지원 벡터 머신 (SVM)
지원 벡터기는 아마도 가장 유행하고 광범위하게 논의되는 기계 학습 알고리즘 중 하나일 것이다.
초평면은 입력 변수의 공간을 나누는 직선입니다. SVM 에서 입력 변수 범주 (범주 0 또는 범주 1) 에 따라 입력 변수 공간을 가장 잘 나누는 하이퍼평면을 선택합니다. 2 차원에서, 당신은 그것을 하나의 선으로 생각할 수 있습니다. 우리는 모든 입력점이 이 선에 의해 완전히 분리될 수 있다고 가정합니다. SVM 학습 알고리즘은 초평면의 최적 분할 범주를 만드는 계수를 찾습니다.
지원 벡터 머신
편경사 평면과 가장 가까운 데이터 점 사이의 거리를 간격이라고 합니다. 두 범주를 분리하는 최적 또는 이상적인 초평면에는 최대 간격이 있습니다. 이러한 점만 하이퍼평면 정의 및 분류자 작성과 관련이 있습니다. 이러한 점을 지원 벡터라고 하며 하이퍼평면을 지원하거나 정의합니다. 실제로 최적화 알고리즘은 간격을 최대화하는 계수를 찾는 데 사용되는 값입니다.
SVM 은 가장 강력한 즉시 사용 가능한 분류기 중 하나일 수 있으므로 시도해 볼 가치가 있습니다.
9. 포장 및 무작위 숲
랜덤 숲은 가장 유행하고 가장 강력한 기계 학습 알고리즘 중 하나이다. Bootstrap Aggregation (bagging 이라고도 함) 통합 기계 학습 알고리즘입니다.
Bootstrap 은 데이터 샘플에서 수량을 추정하는 강력한 통계 방법입니다. 평균과 같다. 데이터에서 많은 샘플을 추출하고 평균을 계산한 다음 모든 평균을 평균화하여 실제 평균을 더 잘 예측할 수 있습니다.
Bagging 은 같은 방법을 사용하지만 전체 통계 모델을 추정합니다. 가장 일반적인 것은 의사 결정 트리입니다. 교육 데이터에서 여러 샘플을 추출한 다음 각 데이터 샘플을 모델링합니다. 신규 데이터를 예측해야 하는 경우 실제 출력 값을 더 잘 추정할 수 있도록 각 모델이 모든 예측 값을 예측하고 평균화합니다.
랜덤 포레스트
무작위 숲은 이 방법에 대한 조정이다. 임의 산림 방법에서는 최적의 분할점을 선택하는 대신 무작위성을 도입하여 의사 결정 트리를 만들어 2 차 최적 분할을 촉진합니다.
따라서 각 데이터 샘플에 대해 작성된 모형은 다른 방법을 통해 얻은 모형과 다르지만 방법이 고유하고 다르더라도 여전히 정확합니다. 그들의 예측과 결합해서 실제 생산액을 더 잘 추정할 수 있다.
의사 결정 트리와 같이 분산이 큰 알고리즘으로 좋은 결과를 얻는다면, bagging 알고리즘을 통해 더 나은 결과를 얻을 수 있습니다.
10. 승압 및 AdaBoost
Boosting 은 강력한 분류자를 만들기 위해 약한 분류자를 통합하려는 통합 기술입니다. 이는 교육 데이터에서 모델을 만든 다음 두 번째 모델을 만들어 첫 번째 모델의 오류를 수정하려고 하면 됩니다. 교육 세트를 완벽하게 예측하거나 추가된 모델 수가 최대값에 도달할 때까지 모델을 추가합니다.
AdaBoost 는 이진 분류를 위한 첫 번째 boosting 알고리즘입니다. 이것은 boosting 을 이해하는 가장 좋은 출발점이다. 현대의 boosting 방법은 AdaBoost 를 기반으로 하며, 가장 주목할 만한 것은 임의 그라데이션 상승이다.
Adaboost 알고리즘
AdaBoost 는 짧은 의사 결정 트리에 사용됩니다. 첫 번째 의사 결정 트리를 만든 후 각 교육 인스턴스에서의 트리 성능은 다음 의사 결정 트리가 각 교육 인스턴스에 얼마나 많은 관심을 기울여야 하는지 측정하는 데 사용됩니다. 예측하기 어려운 교육 데이터에는 큰 가중치가 부여되고, 예측하기 쉬운 데이터에는 작은 가중치가 부여됩니다. 모델을 차례로 생성하고 교육 샘플에서 각 모델의 가중치를 업데이트하여 시퀀스의 다음 의사 결정 트리 학습에 영향을 줍니다. 모든 의사 결정 트리가 설정되면 새로운 데이터를 예측하고 교육 데이터에서 각 의사 결정 트리의 정확성을 통해 성능을 평가합니다.
알고리즘 오류 수정에 너무 많은 주의를 기울이기 때문에 비정상적인 값을 제거한 깨끗한 데이터를 갖는 것이 중요합니다.
요약
다양한 기계 학습 알고리즘에 직면했을 때 초보자는 종종 "어떤 알고리즘을 사용해야합니까?" 라고 묻습니다. 이 질문에 대한 답은 (1) 데이터의 크기, 품질 및 특징을 포함한 여러 요인에 따라 달라집니다. (2) 사용 가능한 계산 시간; (3) 임무의 긴급 성; (4) 이 데이터로 무엇을하고 싶니?
경험 많은 데이터 과학자라도 다른 알고리즘을 시도하기 전에 어떤 알고리즘이 가장 성능이 좋은지 판단할 수 없다. 비록 다른 많은 기계 학습 알고리즘이 있지만, 이 글에서는 가장 유행하는 것을 다루고 있다. 만약 네가 기계 학습의 초심자라면, 이것은 아주 좋은 시작점이 될 것이다.