avatar of 发明者量化-小小梦 发明者量化-小小梦
집중하다 사신
4
집중하다
1271
수행원

8가지 머신러닝 알고리즘 비교

만든 날짜: 2016-12-05 10:42:02, 업데이트 날짜:
comments   0
hits   6798

8가지 머신러닝 알고리즘 비교


이 글은 주로 다음과 같은 몇 가지 일반적인 알고리즘의 적응 시나리오와 그 장단점을 회상한다.

기계학습 알고리즘이 너무 많아서 분류, 회귀, 집합, 추천, 이미지 인식 분야 등에 적합한 알고리즘을 찾는 것은 정말 쉬운 일이 아니기 때문에 실제 적용에서 우리는 일반적으로 启发式学习 방식을 채택하여 실험한다.

보통 우리는 처음엔 우리가 일반적으로 알고 있는 알고리즘을 선택합니다. 예를 들어, SVM, GBDT, Adaboost, Deep Learning은 현재 매우 인기 있고, Neural Networks는 좋은 선택이기도 합니다.

만약 여러분이 정확성에 대해 관심이 있다면, 가장 좋은 방법은 여러 알고리즘들을 각각 테스트하고, 비교하고, 각 알고리즘이 최적의 해답을 얻을 수 있도록 파라미터를 조정하고, 마지막으로 가장 좋은 것을 선택하는 것입니다.

하지만 만약 여러분이 단지 문제를 해결하기 위해 충분히 좋은 알고리즘을 찾고 있거나, 또는 여기에 몇 가지 팁이 있다면, 아래는 각각의 알고리즘의 장단점을 분석해 보도록 하겠습니다.

  • ## 편차와 격차

통계학에서, 모델의 좋은 것과 나쁜 것은 오차와 차이에 의해 측정됩니다. 그래서 먼저 오차와 차이에 대해 보편화해보겠습니다.

편차: 예측값 (예측값) 의 기대 E과 실제 값 Y 사이의 차이를 나타낸다. 편차가 클수록 실제 데이터에서 멀어진다.

8가지 머신러닝 알고리즘 비교

격차: 예측값 P의 변화 범위, 격차 정도를 설명하는 것은 예측값의 격차, 즉 예상값 E의 거리이다. 격차가 클수록, 데이터의 분포는 더욱 분산된다.

8가지 머신러닝 알고리즘 비교

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

8가지 머신러닝 알고리즘 비교

작은 훈련 세트일 경우, 높은 편차/낮은 편차를 가진 분류기 (예: 순수 베이스 NB) 는 낮은 편차/높은 편차를 가진 큰 분류기 (예: KNN) 보다 더 유리하다. 왜냐하면 후자는 너무 잘 어울릴 것이기 때문이다.

하지만, 훈련 세트가 커질수록, 모델이 원본 데이터에 대한 예측 능력이 좋아질수록, 편차가 줄어들게 됩니다. 이 때 낮은 편차/높은 편차 분류기는 점차적으로 그 장점을 나타낼 수 있게 됩니다. (왜냐하면 그들은 더 낮은 근사적 오류를 가지고 있기 때문입니다.) 이 때 높은 편차 분류기는 이 때 더 이상 정확한 모델을 제공할 수 없습니다.

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

  • ## 왜 순진한 베이스가 높은 편차, 낮은 편차가 되는 걸까요?

다음 글이 인용되었습니다.

먼저, 훈련 세트와 테스트 세트의 관계를 알고 있다고 가정해 봅시다. 간단히 말해서, 우리는 훈련 세트에서 모델을 학습하고 테스트 세트를 사용하게 됩니다.

하지만 많은 경우, 우리는 테스트 세트와 훈련 세트가 동일한 데이터 분포에 부합한다고 가정할 수 있지만, 실제 테스트 데이터를 얻을 수 없습니다. 훈련 오류율만 보고 테스트 오류율을 측정하는 것은 어떨까요?

훈련 샘플이 거의 없기 때문에 (적어도 충분히 많지 않기 때문에) 훈련 집합으로 얻은 모델은 항상 완전히 정확하지 않습니다. 훈련 집합에서 100%의 정확도도 실제 데이터 분포를 그리는 것을 의미하지 않습니다. 실제 데이터 분포를 그리는 것이 우리의 목적이며, 훈련 집합의 제한된 데이터 포인트를 그리는 것이 아닙니다.

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

이 경우, 실제 테스트 세트에서 오류가 발생하는 것은 분명하다 (이러한 현상은 적합성이라고 한다). 그러나 너무 간단한 모델을 사용할 수는 없으며, 그렇지 않으면 데이터 분포가 더 복잡할 때, 모델은 데이터 분포를 그리기에 충분하지 않다 (이러한 현상은 훈련 세트에서도 오류율이 높으며 적합성이 떨어진다).

지나치게 적합하다는 것은 사용된 모델이 실제 데이터 분포보다 더 복잡하다는 것을 나타내고, 부적합하다는 것은 사용된 모델이 실제 데이터 분포보다 단순하다는 것을 나타낸다.

통계학습 프레임워크에서, 사람들은 모델의 복잡성을 도출할 때, 다음과 같은 견해가 있다. Error = Bias + Variance. 여기서 Error는 모델의 예측 오류로 이해될 수 있다. 두 부분으로 구성되어 있다. 하나는 모델이 너무 단순하기 때문에 추정 정확하지 않은 부분 (Bias), 다른 부분은 모델이 너무 복잡하기 때문에 더 큰 변화 공간과 불확실성 (Variance) 이다.

따라서, 이렇게 간단하게 Bayes를 분석하는 것이 쉽다. 그것은 모든 데이터 사이의 관계가 없다는 간단한 가정으로, 심각하게 단순화 된 모델이다. 따라서, 이러한 간단한 모델에 대해, 대부분의 경우, Bias 부분은 Variance 부분보다 더 크다. 즉, 높은 편차가 낮은 차차이다.

실제로는, 오류를 최소화하기 위해, 우리는 모델을 선택할 때 Bias와 Variance가 차지하는 비율을 균형 잡아야 합니다. 즉, over-fitting와 under-fitting을 균형 잡아야 합니다.

편차와 사차의 관계가 모델의 복잡성에 더 명확하게 나타나기 위해 아래 그림을 사용해보자:

8가지 머신러닝 알고리즘 비교

모형의 복잡성이 높아지면, 편차는 점점 작아지고, 차이는 점점 커집니다.

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

    • ### 1. 프랭크 베이스

    단순 베이시스는 생성형 모델에 속합니다. (생산형 모델과 결정형 모델에 대해서는 주로 합동 분배를 요구하는지 여부에 관한 것입니다.) 아주 간단합니다.

    조건부 독립성 가설 (((더 엄격한 조건)) 을 내세우면, 단순 베이스 분류기는 논리 회귀와 같은 판별 모델보다 더 빨리 수렴할 수 있으므로 적은 훈련 데이터가 필요합니다. NB 조건부 독립성 가설이 성립하지 않더라도 NB 분류기는 실제로 여전히 훌륭한 성능을 발휘합니다.

    그것의 주요한 단점은 특징들 사이의 상호작용을 학습할 수 없다는 것입니다. mRMR의 R은 특징의 과잉입니다. 좀 더 고전적인 예를 들자면, 예를 들어, 당신이 브래드 피트와 톰 크루즈의 영화를 좋아하지만, 당신이 그들이 함께하는 영화를 좋아하지 않는다는 것을 학습할 수 없습니다.

    장점:

    순수 베이시스 모델은 고전적인 수학 이론에서 비롯되었으며, 탄탄한 수학 기반과 안정적인 분류 효율을 가지고 있다. 소규모 데이터에 대한 성능이 뛰어나고, 여러 과제를 개별적으로 처리할 수 있으며, 인큐티브 트레이닝에 적합하다. 누락된 데이터에 민감하지 않고, 알고리즘도 비교적 간단하며, 텍스트 분류에 많이 사용된다. 단점:

    그리고 그 다음에는, 분류 결정에 대한 오류가 있습니다. 입력 데이터의 표현 형태에 민감하다.

    • ### 2. 논리 회귀

    분별형 모델에는 많은 정규화 모델이 있습니다. (L0, L1, L2, 등등) 그리고 여러분은 여러분의 특성이 관련성이 있는지에 대해 걱정할 필요가 없습니다.

    의사 결정 나무와 SVM 기계에 비해 좋은 확률 해석을 얻을 수 있으며, 새로운 데이터를 사용하여 모델을 쉽게 업데이트 할 수 있습니다.

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

    시그모이드 함수:

    8가지 머신러닝 알고리즘 비교

    장점: 산업 문제에서 간단하고 광범위하게 적용될 수 있도록 분류할 때 계산량이 매우 작고, 속도가 매우 빠르며, 저장 자원이 적습니다. 이 실험의 결과는 다음과 같습니다. 논리 회귀에 있어서, 다중공선성은 문제가 아니며, L2 정규화와 결합하여 문제를 해결할 수 있다. 단점: 특징 공간이 넓으면 논리 회귀의 성능이 좋지 않습니다. 부적합성, 일반적으로 정확도가 낮다 많은 종류의 특징이나 변수를 잘 처리하지 못함. 두 가지 분류 문제를 처리할 수 있다 (이 기초에서 파생된 softmax는 다중 분류에 사용될 수 있다) 그리고 선형적으로 분할될 수 있어야 한다. 비선형적 특성에 대해서는 변환이 필요합니다.

    • ### 3. 선형 회귀

    선형 회귀는 회귀를 위해 사용되며, Logistic 회귀는 분류를 위해 사용되지 않습니다. 기본 아이디어는 기하급수적 하강법을 사용하여 최소 2 곱하기 형태의 오류 함수를 최적화하는 것입니다. 물론, 정상 방정식을 사용하여 직접적으로 인수를 구할 수 있습니다.

    8가지 머신러닝 알고리즘 비교

    그리고 LWLR에서, 변수의 계산 표현은 다음과 같다:

    8가지 머신러닝 알고리즘 비교

    따라서 LWLR는 LR와 달리, LWLR는 비변수 모형이며, 회귀 계산을 할 때마다 훈련 샘플을 적어도 한 번 니다.

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

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

    • ### 4. 근접접 알고리즘 ?? KNN

    KNN은 근접접근계 알고리즘으로, 주요 과정은 다음과 같다:

    1. 훈련 샘플과 테스트 샘플의 각 샘플 포인트의 거리를 계산한다.

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

    3. k개의 최소 거리의 샘플을 선택합니다.

    4. 이 k개의 표본의 표지판에 따라 투표를 하여 최종 분류를 얻습니다.

    최적의 K값을 선택하는 방법은 데이터에 달려 있다. 일반적으로, 분류할 때 더 큰 K값은 소음의 영향을 줄일 수 있다. 그러나 범주 사이의 경계를 흐리게 만든다.

    더 좋은 K값은 다양한 엑스포시안 기술을 통해 얻을 수 있다. 예를 들어, 교차 검증 (cross-validation) 을 할 수 있다. 또한, 노이즈와 비관계성 특징 벡터의 존재는 K 근접 알고리즘의 정확성을 떨어뜨린다.

    근접 알고리즘은 강력한 일관성 결과를 갖는다. 데이터의 무한으로, 알고리즘은 Bayesian 알고리즘의 오류율을 두 배 이상하지 않을 것을 보장한다. 몇몇 좋은 K 값에 대해, K 근접은 Bayesian 이론의 오류율을 초과하지 않을 것을 보장한다.

    KNN 알고리즘의 장점

    이론이 성숙하고, 아이디어는 단순하며, 분류와 회귀를 위해 사용될 수 있습니다. 비선형 분류에 사용할 수 있습니다. 훈련 시간 복잡도는 O (n) 입니다. 데이터에 대한 가설이 없고, 정확성이 높으며, 외계인에 대한 감수성이 낮습니다. 결점

    계산량이 많고, 표본 불균형 문제 (어떤 범주에는 많은 표본이 있고 다른 범주에는 적은 표본이 있습니다.) 많은 메모리를 필요로 합니다.

    • ### 5. 의사결정 나무

    쉽게 설명할 수 있다. 그것은 특징들 사이의 상호관계를 부담없이 처리할 수 있고, 비대칭적이기 때문에, 예외값이나 데이터가 선형적으로 분리될 수 있는지에 대해 걱정할 필요가 없다.

    이 모델의 단점 중 하나는 온라인 학습을 지원하지 않는다는 점입니다. 그래서 새로운 샘플이 들어오면 의사결정 나무를 완전히 재구성해야 합니다.

    또 다른 단점은 과도한 적합성이라는 점입니다. 하지만 이것은 무작위 숲 RF (또는 나무 부스티드 트리) 와 같은 통합 방법의 절단점입니다.

    또한, 무작위 숲은 종종 많은 분류 문제에서 승리합니다 (보통 지원 벡터 머신보다 조금 더 좋죠), 그것은 훈련이 빠르고 조정 가능하며, 당신은 지원 벡터 머신처럼 많은 파라미터를 조정하는 것을 걱정할 필요가 없습니다, 그래서 이전에는 매우 인기가있었습니다.

    의사결정 나무에서 중요한 점은 한 속성을 선택하여 분기하는 것입니다. 따라서 정보 증식의 계산 공식에 주의를 기울이고 그것을 깊이 이해하십시오.

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

    8가지 머신러닝 알고리즘 비교

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

    이제 xxi라는 속성을 선택하여 그 속성을 분기합니다. 분기 규칙은: xxi=vxi=v일 경우, 샘플을 나무의 한 가지 가지로 분할합니다.

    명백히, 분파의 표본은 2개의 범주를 포함할 가능성이 높으며, 각각 이 2개의 분파의 H1과 H2를 계산하여 분파 후의 총 정보 H =p1 H1+p2 H2를 계산하면, 이 때 정보 증가가 ΔH = H - H이다. 정보 증가를 원칙으로 하여, 모든 속성을 한자리에 테스트하고, 이 번 분파 속성으로서 가장 큰 증가를 하는 속성을 선택한다.

    의사결정 나무 자체의 장점

    계산이 간단하고, 이해하기 쉽고, 설명이 가능합니다. 그 결과, 우리는 그 결과와 비교할 수 있습니다 그리고 우리는 이 모든 것을 통해, 우리가 무엇을 할 수 있는지 알게 됩니다. 비교적 짧은 시간에 대용량 데이터 소스에 대해 실행 가능하고 효과적인 결과를 만들 수 있다. 결점

    과도한 적응에 취약하다 (사소한 숲은 과도한 적응을 크게 줄일 수 있다.) 그리고 그 결과로, 이 데이터들은 서로 연관성이 없어졌습니다. 각 카테고리의 샘플 수가 일치하지 않는 데이터에 대해, 의사 결정 나무에서 정보 증가가 더 많은 수치를 가진 특성에 대한 결과를 선호합니다 (정보 증가가 사용되는 한, RF와 같은 단점이 있습니다).

    • ### 5.1 Adaboosting

    Adaboost는 부합 모형으로, 각 모형은 이전 모형의 오류율에 기초하여 만들어지며, 과잉 집중은 분기 오류의 샘플에, 올바른 분류의 샘플에 대한 관심은 줄어들며, 반복적으로 반복되면, 상대적으로 더 나은 모델을 얻을 수 있다. 전형적인 부스팅 알고리즘이다. 다음은 그것의 장단점을 요약한다.

    이점

    adaboost는 매우 높은 정밀도의 분류기입니다. 다양한 방법을 사용하여 서브 클래시터를 구축할 수 있다. Adaboost 알고리즘은 프레임워크를 제공한다. 간단한 분류자를 사용할 때, 계산된 결과는 이해할 수 있으며, 약한 분류자의 구조는 매우 간단하다. 간단한 것, 특징 필터링이 필요 없습니다. 오버피팅은 거의 일어나지 않습니다. 무작위 숲과 GBDT와 같은 조합 알고리즘에 대한 내용은 기계 학습 - 조합 알고리즘 요약입니다.

    단점: 아웃리어에 민감하다

    • ### 6. SVM 지원 벡터 기계

    높은 정확도, 과응합을 피하기 위해 좋은 이론적 보장을 제공하며, 심지어 데이터가 원자적 특성 공간에서 선형적으로 분할되지 않더라도, 적절한 핵 함수를 부여하면, 그것은 잘 작동한다.

    무작위 초고차원의 텍스트 분류 문제에서 특히 인기가 높습니다. 불행히도 메모리가 많이 소모되고 해석하기 어렵고, 실행 및 조정이 다소 번거롭습니다. 무작위 숲은 이러한 단점을 피하고 실용적입니다.

    이점 그리고 우리는 이 문제를 해결하는 데에 성공했습니다. 비선형적 특징의 상호작용을 처리할 수 있는 능력 전체 데이터에 의존하지 않아도 됩니다. 그리고 그 결과로,

    결점 많은 표본을 관찰할 때, 효율성이 높지 않습니다. 비선형적인 문제에 대한 일반적인 해결책이 없기 때문에 적절한 핵 함수를 찾는 것은 종종 어렵습니다. 실종된 데이터에 민감합니다. 코어에 대한 선택 또한 기교적입니다 (libsvm에는 네 가지의 코어 함수가 있습니다: 선형 코어, 다항식 코어, RBF 및 시그모이드 코어):

    첫 번째, 만약 샘플의 수가 특징 수보다 작다면, 비선형 핵을 선택할 필요가 없습니다. 단순히 선형 핵을 사용할 수 있습니다.

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

    셋째, 샘플 수와 특징 수가 같다면, 이 경우 비선형 핵을 사용할 수 있으며, 원칙은 두 번째와 동일하다.

    첫 번째 경우에도, 데이터의 크기를 먼저 축소한 다음 비선형 핵을 사용할 수 있습니다. 이것은 또한 하나의 방법입니다.

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

    인공신경망의 장점: 분류의 정확성; 동시 분산 처리 능력, 분산 저장 및 학습 능력, 노이즈 신경에 대한 강한 거친성 및 오류 용인 능력으로, 복잡한 비선형적 관계에 충분히 접근할 수 있다. : : :

    인공 신경망의 단점: 신경망은 네트워크 토포스트럭처, 가중치 및 절댓값의 초기값과 같은 많은 매개 변수를 필요로 한다. 학습 과정의 관찰이 불가능하고, 출력 결과가 해석하기 어렵기 때문에, 그 결과의 신뢰성과 수용성에 영향을 미칠 수 있습니다. 학습시간이 너무 길고, 학습의 목적에 도달하지 못할 수도 있습니다.

    • ### 8 K-Means 집합

    K-Means 클러그에 대한 기사를 작성했습니다. K-Means 클러그에 대한 추론에는 매우 강력한 EM 아이디어가 있습니다.

    이점 알고리즘은 간단하고 쉽게 구현할 수 있습니다. 대용량 데이터 세트를 처리하기 위해, 이 알고리즘은 비교적 확장 가능하며, 높은 효율을 발휘한다. 왜냐하면, 그것의 복잡도는 대략 O(nkt) 이므로, 여기서 n는 모든 객체의 수이고, k는 의 수이고, t는 반복의 수이다. 보통 k< 알고리즘은 제곱 오차 함수값을 최소로 하는 k 분할을 찾아내려고 한다. 질소가 밀도가 높고, 구형 또는 무형이며, 질소와 질소 사이의 차이는 분명할 때, 집합효과가 좋다.

    결점 데이터 타입에 대한 요구 사항이 높고, 숫자형 데이터에 적합하다. 지역적 최소값에 도달할 수 있으며, 대용량 데이터에서 더 느리게 일치한다. K값은 선택하기가 더 어렵습니다. 초기값의 초심값에 민감하며, 다른 초기값에 대해 다른 집약 결과를 초래할 수 있다. 비상면 모양을 발견하거나 크기가 매우 큰 은 적합하지 않습니다. 소음 과 고립점 데이터에 민감한 소량의 이러한 데이터는 평균에 큰 영향을 미칠 수 있다.

    알고리즘 선택 참조

    한 기사는 간단한 알고리즘 선택 기법을 제시하고 있습니다.

    우선적으로 선택해야 할 것은 논리 회귀 (logical regression) 이며, 그 효과가 좋지 않다면 그 결과를 기준으로 삼아 다른 알고리즘과 비교할 수 있다.

    그리고는 의사결정 나무 (random forest) 를 시도해보고 당신의 모델의 성능을 크게 향상시킬 수 있는지 보도록 하자. 당신이 그것을 최종 모델로 삼지 않더라도, 당신은 노이즈 변수를 제거하고, 특징을 선택하기 위해 Random Forest을 사용할 수 있다.

    특성의 수와 관측 샘플이 특히 많다면, 자원과 시간이 충분할 때 (이 전제는 중요합니다) SVM을 사용하는 것이 선택 사항이다.

    보통: GBDT>=SVM>=RF>=Adaboost>=Other…, 지금 딥러닝이 뜨겁고, 많은 분야에서 사용되고, 그것은 신경망에 기반하고, 현재 나 자신도 배우고 있지만, 이론적 지식은 매우 두껍지 않고, 이해가 충분히 깊지 않아서 소개하지 않는다.

    알고리즘은 중요하지만, 좋은 데이터는 좋은 알고리즘보다 우수하며, 좋은 디자인의 특징은 큰 도움이 된다. 만약 당신이 거대한 데이터 세트를 가지고 있다면, 어떤 알고리즘을 사용하든 분류 성능에 큰 영향을 미치지 않을 수 있다. (이 시점에서는 속도와 사용 편의성에 따라 선택을 할 수 있다.)

  • 참고문헌