리소스 로딩... 로딩...

기계 학습 8가지 알고리즘 비교

저자:발명가들의 수량화 - 작은 꿈, 2016-12-05 10:42:02에 생성, 업데이트:

기계 학습 8가지 알고리즘 비교


이 문서에서는 다음과 같은 일반적인 알고리즘의 적응 시나리오와 그 장단점을 살펴볼 것입니다!

머신러닝 알고리즘이 너무 많고, 분류, 회귀, 분류, 추천, 이미지 인식 등의 영역에서 적절한 알고리즘을 찾는 것은 정말 쉽지 않기 때문에 실제 응용에서는 일반적으로 영감을 받는 학습 방식을 사용하여 실험합니다.

일반적으로 우리는 일반적으로 동의하는 알고리즘을 선택합니다. SVM, GBDT, Adaboost와 같이, 이제 깊이 학습이 열광하고 있으며, 신경 네트워크는 좋은 선택입니다.

만약 당신이 정확성에 관심이 있다면, 가장 좋은 방법은 각 알고리즘을 개별적으로 테스트하고 비교하는, 그리고 각각의 알고리즘이 최적화되도록 매개 변수를 조정하는, 그리고 마지막으로 가장 좋은 것을 선택하는 것입니다.

하지만 만약 당신이 당신의 문제를 해결하기 위해 충분히 좋은 알고리즘을 찾고 있는 사람이라면, 또는 여기에 몇 가지 팁이 있습니다. 아래는 각각의 알고리즘의 장단점을 분석하고, 알고리즘의 장단점을 기반으로 선택하는 것이 더 쉽다.

  • 편차와 편차

    통계학에서 모델이 좋은지 나쁜지는 오차와 오차에 따라 측정됩니다. 그래서 먼저 오차와 오차를 보급해보죠.

    오차: 예측값 (예측값) 의 기대 E와 실제 값 Y 사이의 차이를 설명한다. 오차가 커질수록 실제 데이터에서 벗어난다.

img

사각지대: 예측값 P의 변화 범위를 설명하고, 사각지대는 예측값의 사각지대, 즉 예상값 E로부터의 거리에 있다. 사각지대가 커질수록 데이터의 분포가 더 흩어진다.

img

이 모델의 실제 오류는 두 가지의 합입니다.

img

작은 트레이닝 세트라면, 높은 편차/저편차 분류기 (예를 들어, 순수한 베이어스 NB) 는 낮은 편차/대 편차 분류기 (예를 들어, KNN) 보다 더 유리하다.

하지만, 당신의 트레이닝 세트가 커질수록 모델이 원 데이터에 대한 예측 능력이 좋아질수록 오차가 줄어들게 되는데, 이 때 낮은 오차/높은 오차 분류가 점차적으로 우위를 점하게 됩니다. (왜냐하면 그들은 낮은 근사율을 가지고 있기 때문에) 이 때 높은 오차 분류가 더 이상 정확한 모델을 제공하기에 충분하지 않습니다.

물론, 이것은 생성 모델 (NB) 과 판단 모델 (KNN) 의 차이라고 생각할 수도 있습니다.

  • 왜 순수한 베이스가 높은 편차와 낮은 편차라고 할까요?

    다음의 내용들은 자발적으로 알려드립니다:

    먼저, 트레이닝 세트와 테스트 세트의 관계를 알고 있다고 가정합니다. 간단히 말해서, 우리는 트레이닝 세트에서 모델을 배우고 테스트 세트를 가지고 그것을 사용할 때 테스트 세트의 오류율에 따라 효과를 측정합니다.

    하지만 많은 경우, 우리는 테스트 세트와 트레이닝 세트가 같은 데이터 분포에 맞다고 가정할 수 있지만 실제 테스트 데이터를 얻을 수 없습니다.

    훈련 샘플이 적기 때문에 (적어도 충분하지 않기 때문에) 훈련 세트에서 얻은 모델은 항상 완전히 정확하지 않습니다. 훈련 세트에서 100%의 정확도조차도 진정한 데이터 분포를 묘사한다는 것을 의미하지는 않습니다. 진정한 데이터 분포를 묘사하는 것이 우리의 목표이며 훈련 세트의 제한된 데이터 포인트를 묘사하는 것이 아닙니다.

    또한, 실제로, 훈련 샘플은 종종 약간의 노이즈 오류를 가지고 있기 때문에, 훈련 세트에 대한 완벽성을 너무 추구하는 경우 매우 복잡한 모델을 사용하면 모델이 훈련 세트의 모든 오류를 실제 데이터 분포 특성으로 간주하여 잘못된 데이터 분포 추정치를 얻을 수 있습니다.

    이 말은 실제 테스트 세트에 있어서 오류가 어지는 것이다 (이 현상은 적합성이라고 한다). 그러나 너무 간단한 모델을 사용할 수는 없다. 그렇지 않으면 데이터 분포가 비교적 복잡할 때 모델이 데이터 분포를 그리는 데 부족할 것이다 (이 현상은 트레이닝 세트에서도 높은 오류율을 나타내고 있어 적합성이 떨어진다).

    과적응은 사용된 모델이 실제 데이터 분포보다 더 복잡하고, 부적응은 실제 데이터 분포보다 더 간단하다는 것을 나타냅니다.

    통계학 학습의 틀에서, 모델 복잡성을 도출할 때, 에러 = 비아스 + 바리언스 (Error = Bias + Variance) 라고 하는 견해가 있다. 여기서 에러는 모델의 예측 오류율로 이해될 수 있을 것으로 보이며, 두 부분으로 구성되어 있다. 하나는 모델이 너무 단순하기 때문에 예상의 부적절한 부분 (Bias) 이며, 다른 하나는 모델이 너무 복잡하기 때문에 더 큰 변화 공간과 불확실성 (Variance) 으로 이루어진다.

    따라서, 이것은 단순 베이어스를 쉽게 분석할 수 있다. 그것은 단순하게 모든 데이터들 사이에 상관이 없다고 가정하고, 심각하게 단순화된 모델이다. 따라서, 그러한 간단한 모델에 대해 대부분의 경우, bias 부분은 variance 부분, 즉 높은 편차와 낮은 편차보다 더 크다.

    실제로, 오류를 최소화하기 위해, 우리는 모델 선택에 있어서 Bias와 Variance의 비율을 균형 잡아야 한다. 즉, over-fitting과 under-fitting을 균형 잡아야 한다.

    모형의 복잡성과 오차와 차이의 관계는 다음과 같은 도표를 사용하여 더 명확합니다.

img

모델의 복잡성이 높아질 때, 오차는 점차 작아지고 편차는 점차 커진다.

  • 일반적인 알고리즘의 장단점

    • 1.朴素贝叶斯

      순수한 베이어스는 생성 모델 (창출 모델과 결정 모델에 관한 것, 주로 결합 분포를 요구하는지 여부에 관한 것) 에 속하며 매우 간단합니다.

      조건부 독립성 가정 (이보다 엄격한 조건) 을 설정하면, 순수한 베이어스 분류기의 회합 속도는 논리 회귀와 같은 모델을 판단하는 것보다 더 빠르므로 적은 훈련 데이터가 필요합니다. NB 조건부 독립성 가정이 성립하지 않더라도 NB 분류기는 여전히 실무에서 훌륭하게 수행합니다.

      그것의 주요 단점은 그 특징들 간의 상호작용을 배울 수 없다는 것이다. mRMR에서 말하는 R는 특징의 과다이다. 비교적 고전적인 예를 인용하자면, 예를 들어, 당신이 브래드 피트와 톰 크루즈의 영화를 좋아하지만, 당신이 그들이 함께하는 영화를 좋아하지 않는 것을 배울 수 없다는 것이다.

      장점:

      순수한 베이어스 모델은 고전적인 수학 이론에서 유래하여, 탄탄한 수학적 기초와 안정적인 분류 효율성을 가지고 있다. 작은 규모의 데이터에 대한 좋은 성능, 멀티 클래스 작업을 처리 할 수 있으며 인크멘트 훈련에 적합합니다. 미흡한 데이터에 민감하지 않고, 알고리즘은 비교적 간단하며, 텍스트 분류를 위해 자주 사용됩니다. 단점:

      전후 확률을 계산해야 합니다. 그리고 그 결과, 우리는 더 많은 정보를 얻었습니다. 입력된 데이터의 표현 형태에 민감합니다.

    • 2.逻辑回归

      정의형 모델에 속하며, 정규형 모델의 방법 (L0, L1, L2, etc) 이 많으며, 당신은 단순한 베이어스를 사용하는 것처럼 당신의 특징이 연관되어 있는지에 대해 걱정할 필요가 없습니다.

      또한 결정 트리와 SVM에 비해 좋은 확률 설명을 얻을 수 있으며, 새로운 데이터를 사용하여 모델을 쉽게 업데이트 할 수 있습니다. (online gradient descent).

      만약 당신이 확률 구조를 필요로 한다면 (예를 들어, 단순히 분류 문턱을 조정하거나 불확실성을 표시하거나 신뢰 범위를 얻으려면) 또는 나중에 더 많은 훈련 데이터를 빠르게 모델에 통합하고 싶다면, 그것을 사용하십시오.

      시그모이드 함수:

      img

      장점: 단순하고 광범위한 산업용 문제를 구현합니다. 분류할 때 계산량이 매우 작고 속도가 빠르며 저장 자원이 낮습니다. 편리한 관찰 샘플 확률 점수; 논리 회귀의 관점에서, 다중 공선성은 문제가 아니며, L2 정규화와 결합하여 문제를 해결할 수 있다. 단점: 특징 공간이 많을 때 논리 회귀의 성능은 좋지 않습니다. 부적절하고, 일반적으로 정확도가 낮습니다. 많은 종류의 특징이나 변수를 잘 처리할 수 없습니다. 두 가지 분류 문제만 처리할 수 있으며 (이 기반에서 파생된 소프트맥스는 다차원으로 사용될 수 있으며) 선형분해가 있어야 한다. 비선형적인 특징은 변환이 필요합니다.

    • 3.线性回归

      선형 회귀는 회귀를 위해 사용되며, 논리 회귀는 분류를 위해 사용되지는 않지만, 그 기본 아이디어는 경사 하락 방법을 사용하여 최소 두 배의 형태의 오류 함수를 최적화하는 것입니다. 물론 정상적인 방정식을 사용하여 직접 매개 변수를 구할 수 있습니다.

      img

      그리고 LWLR (국부 가중선적 회전) 에서, 변수의 계산 표현식은:

      img

      따라서 LWLR은 LR와 달리, LWLR은 회귀 계산이 수행될 때마다 훈련 샘플을 적어도 한 번 통과해야 하기 때문에 비변수 모델이다.

      장점: 구현이 간단하고 계산이 간단합니다.

      단점: 비선형 데이터에 적합하지 않습니다.

    • 4.最近邻算法——KNN

      KNN은 가장 가까운 이웃 알고리즘으로, 주요 프로세스는 다음과 같습니다.

      1. 훈련 표본과 시험 표본의 각 표본점의 거리를 계산한다 (일반적인 거리의 측정에는 유럽 거리, 마트리스 거리 등이 있다.)

      2. 모든 거리의 값을 정렬합니다.

      3. 가장 작은 거리를 가진 샘플을 선택합니다.

      4. 이 k 샘플의 태그에 따라 투표하여 최종 분류 범주를 얻습니다.

      최적의 K값을 선택하는 방법은 데이터에 따라 달라진다. 일반적으로, 분류할 때 더 큰 K값은 노이즈의 영향을 줄일 수 있다. 그러나 범주 간의 경계가 흐려진다.

      더 나은 K값은 다양한 정보화 기술로 얻을 수 있다. 예를 들어, 크로스 검증. 또한 소음과 무관성 특성 벡터의 존재는 K 인접 알고리즘의 정확성을 감소시킨다.

      근접한 알고리즘은 강력한 일관성 결과를 가지고 있다. 데이터가 무한대로 갈수록, 알고리즘은 Bayesian 알고리즘의 실수율을 두 배 이상 넘지 않을 것을 보장한다. 어떤 좋은 K값에 대해, K 근접한 알고리즘은 Bayesian 이론적 실수율을 넘지 않을 것을 보장한다.

      KNN 알고리즘의 장점

      이론은 성숙하고, 아이디어는 간단하며, 분류와 회귀에 사용할 수 있습니다. 비선형 분류에 사용할 수 있습니다. 훈련 시간 복잡도는 O ((n) 이다. 데이터에 대한 가정이 없으며, 정확도가 높으며, 오틀리에 민감하지 않습니다. 단점

      많은 계산을 하고 있습니다. 표본 불균형 문제 (예: 어떤 범주에는 많은 표본이 있고 다른 범주에는 적은 표본이 있습니다.) 많은 메모리가 필요합니다.

    • 5.决策树

      설명하기 쉽다. 그것은 스트레스 없이 특징들 사이의 상호 관계를 처리할 수 있고, 매개변수적이지 않기 때문에, 당신은 이상값이나 데이터가 선형적으로 분리될 수 있는지에 대해 걱정할 필요가 없다. 예를 들어, 결정나무는 어떤 특징의 차원 x의 끝에서 A를 쉽게 처리할 수 있고, B는 중간에서, 그리고 A는 특징의 차원 x의 앞부분에 다시 나타난다.

      온라인 학습을 지원하지 않는 것이 단점 중 하나였기 때문에 새로운 샘플이 왔을 때 모든 결정 트리를 재구성해야합니다.

      또 다른 단점은 쉽게 부합이 발생한다는 것입니다. 그러나 이것은 무작위 숲 RF (또는 나무를 향상시키는 나무) 와 같은 통합 방법의 접점입니다.

      또한, 무작위 숲은 종종 많은 분류 문제에서 승리합니다 (일반적으로 지원 벡터보다 조금 더 낫습니다), 그것은 빠르고 조정 가능하며, 당신은 지원 벡터처럼 많은 매개 변수를 조정하는 것에 대해 걱정할 필요가 없습니다.

      의사결정 나무에서 중요한 것은 분기할 속성을 선택하는 것이므로 정보 증강의 계산 공식을 주목하고 깊이 이해하는 것입니다.

      정보 의 계산 공식은 다음과 같습니다.

      img

      그 중 n의 대표는 n개의 분류 범주 (예를 들어, 2개의 분류 문제라고 가정하면 n=2) 를 가지고 있다. 전체 샘플에서 두 종류의 샘플이 나타나는 확률 p1과 p2를 각각 계산하여 선택되지 않은 속성 분화 이전 정보 을 계산할 수 있다.

      이제 xxi라는 속성을 선택하여 분기할 때 분기하는 규칙은: x = vxi = v라면 샘플을 나무의 한 가지 가지로 분기한다. 그렇지 않으면 다른 가지로 이동한다.

      명백히, 분포의 표본은 두 범주를 포함할 가능성이 높으며, 각각 분포의?? H1와 H2를 계산하고 분포 후의 전체 정보?? H =p1 H1+p2 H2를 계산하면 이 때 정보 증가가 ΔH = H - H이다. 정보 증가가 원칙으로, 모든 속성을 따로 테스트하고, 가장 큰 증가를 제공하는 속성을 선택하여 이 분포 속성으로 선택한다.

      의사결정 나무 자체의 장점

      계산은 간단하고 이해하기 쉽고 설명이 잘 됩니다. 부적절한 특성을 가진 샘플을 비교하여 처리하기에 적합합니다. 이 모든 것은 우리가 할 수 있는 일입니다. 대용량 데이터 소스에 대해 비교적 짧은 시간에 실행 가능하고 효과적인 결과를 얻을 수 있습니다. 단점

      가변화 (random forests can be reduced to a great extent of over-adaptation) 가 발생하기 쉽다. 이 자료들은 다른 자료들과 연관성이 없다는 것을 무시하고 있습니다. 다양한 범주에서 샘플의 수가 일치하지 않는 데이터의 경우, 의사결정 나무에서 정보 증강의 결과는 더 많은 숫자를 가진 특성에 편향됩니다. (정보 증강을 사용하는 경우, RF와 같은 단점이 있습니다.)

    • 5.1 적응

      아다부스트는 덧셈 모델로, 각각의 모델은 이전 모델의 오류율에 기초하여 만들어지며, 잘못된 샘플에 대한 과잉 관심과 올바른 분류 샘플에 대한 과감한 관심으로, 반복적으로 반복된 후에 상대적으로 더 나은 모델을 얻을 수 있다.

      장점

      아다보스트는 매우 높은 정확도의 분류기입니다. 다양한 방법을 사용하여 하위 분류기를 만들 수 있으며, Adaboost 알고리즘은 프레임워크를 제공합니다. 간단한 분류기를 사용했을 때 계산된 결과는 이해할 수 있으며, 약한 분류기의 구조는 매우 간단하다. 이 글은 매우 간단하고, 특징 필터링이 필요하지 않습니다. 이 경우, 과잉 적합성이 발생하기 쉽지는 않습니다. 무작위 숲과 GBDT와 같은 조합 알고리즘에 대해서는 이 기사를 참조하십시오: 기계 학습 - 조합 알고리즘 요약

      단점: 외형에 민감하다

    • 6.SVM支持向量机

      높은 정확도는 과도한 부합을 피하는 데 좋은 이론적 보장을 제공하며, 데이터가 원래의 특징 공간에서 선형적으로 분리되지 않더라도 적절한 핵 함수를 제공하면 잘 작동합니다.

      특히 이동식 초고차원 텍스트 분류 문제에서 인기가 있다. 안타깝게도 메모리가 많이 사용되고 설명하기 어렵고 실행과 조정이 다소 번거롭지만 무작위 숲은 이러한 단점을 피하고 실용적입니다.

      장점 그리고 우리는 이 문제를 해결하기 위해 많은 노력을 기울이고 있습니다. 비선형적 특징의 상호 작용을 처리 할 수 있습니다. 모든 데이터에 의존할 필요가 없습니다. 이 모든 것은 우리가 할 수 있는 일입니다.

      단점 많은 표본을 관찰할 때 효율성이 높지 않습니다. 비선형 문제에 대한 보편적인 해결책은 없으며, 적절한 핵 함수를 찾는 것이 때때로 어렵습니다. 이 모든 것은 매우 중요한 것입니다. 핵의 선택은 또한 기법적입니다 (libsvm에는 네 가지 핵 함수가 있습니다: 선형 핵, 다중 핵, RBF 및 시그모이드 핵):

      첫째, 표본의 수가 특징 수보다 작으면 비선형 핵을 선택할 필요가 없으며, 단순한 선형 핵을 사용할 수 있습니다.

      두 번째, 표본 수가 특징 수보다 많을 경우, 비선형 핵을 사용하여 표본을 더 높은 차원으로 매핑하면 일반적으로 더 나은 결과를 얻을 수 있습니다.

      셋째, 샘플 수와 특징 수가 같으면 비선형 핵을 사용할 수 있다.

      첫 번째 경우에도 데이터를 먼저 축소하고 비선형 핵을 사용하는 것이 방법이다.

    • 7. 인공신경망의 장단점

      인공신경망의 장점: 고도의 정확성, 대동형 분산 처리, 분산 저장 및 학습 능력이 강합니다. 노이즈 신경에 대한 강력한 거칠성과 오류 용량으로 복잡한 비선형 관계에 충분히 접근 할 수 있습니다. 이 글의 내용은 이 부분에서 볼 수 있습니다.

      인공신경망의 단점: 신경망은 네트워크 토플 구조, 웨이트 값, 문턱의 초기 값과 같은 많은 매개 변수를 필요로 합니다. 관찰할 수 없는 학습 과정, 설명하기 어려운 출력 결과, 그 결과의 신뢰성과 수용성에 영향을 줄 수 있다. 학업시간이 너무 길어서 학업 목적에 도달하지 못할 수도 있습니다.

    • 8 K-Means 그룹

      K-Means 분류에 대한 이전 기사를 작성했습니다. 블로그 링크: 기계 학습 알고리즘 - K-means 분류. K-Means에 대한 추론에는 강력한 EM 생각이 있습니다.

      장점 알고리즘은 간단하고 구현하기 쉽습니다. 대용량 데이터 세트를 처리하는 데 있어서, 이 알고리즘은 상대적으로 확장 가능하고 효율적입니다. 그 복잡도는 대략 O (nkt) 이며, 여기서 n은 모든 객체들의 수, k는 의 수, t는 반복의 수입니다. 일반적으로 k<이 밀도가 높고, 구형 또는 덩어리 모양이고, 의 구별이 명확할 때, 이 더 좋은 집합효과이다.

      단점 데이터 유형에 대한 요구 사항이 높고 수치형 데이터에 적합합니다. 로컬 최소값으로 회전할 수 있고, 대규모 데이터에서 회전하는 것이 느립니다. K값은 선택하기가 어렵습니다. 초기 값의 중심 값에 민감하며, 다른 초기 값에 대해 다른 그룹화 결과를 초래할 수 있습니다. 부피가 크게 다르거나 부피가 크게 다르거나 부피가 크게 다르거나 부피가 크게 다르거나 부피가 크게 다르거나 부피가 크게 다르거나 부피가 크게 다르거나 부피가 크게 다르거나 부피가 크게 다르거나 소음 및 격리점 데이터에 민감한 소량의 이러한 종류의 데이터는 평균에 큰 영향을 줄 수 있습니다.

      알고리즘 선택 참조

      이전에는 외국에서 번역한 몇 편의 기사를 썼는데, 한 편의 기사는 간단한 알고리즘 선택 트릭을 제시했습니다.

      첫 번째 선택은 논리 회귀가어야 하며, 그 효과가 좋지 않으면 그 결과를 기준으로 참조하여 다른 알고리즘과 기초적으로 비교할 수 있습니다.

      그리고 나서 결정 나무 (random forest) 를 사용해 본 다음 모델의 성능을 크게 향상시킬 수 있는지 확인하십시오. 비록 당신이 최종 모델로 최종 모델로 삼지 않았더라도, 당신은 noise variables를 제거하고, feature selection을 하기 위해 Random Forest을 사용할 수 있습니다.

      특징의 수와 관찰된 표본이 특히 많을 경우 자원과 시간이 충분할 때 (이 전제는 중요합니다) SVM을 사용하는 것은 선택 사항이 될 수 있습니다.

      보통은: GBDT>=SVM>=RF>=Adaboost>=Other... 오, 지금 깊이 학습은 매우 인기가 있고, 많은 분야에서 사용되고 있습니다. 그것은 신경 네트워크에 기반하고 있습니다.

      알고리즘은 중요하지만, 좋은 데이터는 좋은 알고리즘보다 더 낫고, 좋은 특징을 설계하는 것은 매우 유용하다. 만약 당신이 초대 데이터 세트를 가지고 있다면, 어떤 알고리즘을 사용하든 분류 성능에 큰 영향을 미치지 않을 수 있다. (이 때 속도와 편의성에 따라 선택을 할 수 있다.)

  • 참고자료


더 많은