Do you know how to choose the right machine learning algorithm among 7 different types?(KR)

참고자료

아래의 글은 Zaid Alissa Almaliki의 Do you know how to choose the right machine learning algorithm among 7 different types? 포스터를 번역한 자료입니다.

일반적인 접근

아래는 대부분의 기계 학습 문제에 적용할 수 있는 포괄적이고 실질적인 접근 방식입니다.

1. 문제의 분류

첫 단계는 입력변수(input)와 출력변수(output)를 통해 문제를 분류하는 것입니다.

입력 데이터의 분류: 만약 데이터가 labeled 된 데이터라면, 이것은 지도 학습(supervised learning)문제입니다. 만약 데이터가 unlabeled 된 데이터이고 구조를 찾는 것이 목적이라면, 이것은 비지도 학습(unsupervised learning)문제입니다. 만약 주어진 환경 아래에서 목적 식을 최적화하는 문제라면, 이것은 강화 학습(reinforcement learning)문제입니다.

아웃풋 데이터의 분류: 만약 모델의 출력물이 숫자라면, 이것은 회귀(regression)문제입니다. 만약 모델의 출력물이 클래스이면, 이것은 분류(classification)문제입니다. 만약 모델의 출력물이 입력된 값들의 집합이라면 이것은 클러스터링(clustering) 문제입니다.

2. 데이터의 이해

데이터 자체는 최종 게임이 아니라 오히려 전체 분석 과정에서의 원료입니다. 성공적인 기업은 데이터를 수집하고 접근할 수가 있을 뿐만 아니라 더 나은 의사 결정을 내릴 수가 있는 통찰력을 끌어낼 수 있어야지만 더 나은 고객 서비스, 경쟁력 있는 차별화 및 높은 매출 증가를 가져옵니다. 데이터를 이해하는 과정은 문제에 적합한 알고리즘을 선택하는 과정에서 중요한 역할을 합니다. 일부 알고리즘은 적은 표본 세트로 작동할 수 있지만 다른 알고리즘은 많은 양의 표본이 필요합니다. 특정 알고리즘은 범주 형 데이터로 작동하지만 다른 알고리즘은 숫자 입력으로 작업하는 것이 필요합니다.

2.1 데이터의 분석(Analyze)

이 단계에서는 통계적인 기법으로 데이터를 이해하고 시각화 및 플롯을 사용하여 데이터를 이해하는 두 가지 중요한 작업이 있습니다.

  • 통계적인 기법 : min, max, mean, median 등등

  • 시각화 및 플롯 : 박스플롯, 산점도, 히스토그램 등등

2.2 데이터의 절차(Process)

데이터 처리의 구성 요소에는 전처리(preprocessing), 프로파일링(profiling), 클렌징(cleansing)이 포함되며, 종종 다른 내부 시스템 및 외부 시스템의 데이터를 함께 가져오는 작업도 포함됩니다.

2.3 데이터의 변형(Transform)

원시 상태에서 모델링에 적합한 상태로 데이터를 변환하는 부분입니다. 피처 엔지니어링은 원시 데이터를 예측 모델에 대한 기본 문제를 보다 잘 나타내는 피처로 변환하여 보이지 않는 데이터에 대한 모델 정확도를 향상하는 프로세스입니다. by Jason Brownlee.

3. 적절한 알고리즘 탐색

문제를 분류하고 데이터를 이해한 후 다음 단계는 합리적인 시간에 구현하고 적용 가능한 실용적인 알고리즘을 선택하는 것입니다. 모델 선택에 영향을 주는 요소는 다음과 같습니다.

  • 모델의 정확도

  • 모델의 해석력

  • 모델의 복잡도

  • 모델의 확장성

  • 모델을 만들고 훈련 및 테스트까지 걸리는 시간

  • 모델을 사용해 예측을 만들기까지 걸리는 시간

  • 모델이 비즈니스 목표를 충족하는지 여부

4. 머신러닝 알고리즘 시행

신중하게 선택한 평가 기준을 사용하여 데이터 집합의 각 알고리즘의 성능을 비교하는 기계 학습 파이프라인을 설정해야 합니다. 다른 접근법은 같은 데이터 세트에 같은 알고리즘을 사용하여 비교하는 것입니다. 이를 위한 최상의 솔루션은 한 번만 수행하거나 새로운 데이터가 추가될 때마다 이를 수행하는 서비스를 실행하는 것입니다.

5. 하이퍼 파라미터 최적화

하이퍼 매개 변수의 최적 회에는 grid search, Random search 및 Bayesian Optimization 3가지가 있습니다.

  • grid search : 가능한 모든 경우를 탐색하는 방법

  • Random search : 임의의 값으로 하이퍼 파라미터를 탐색하는 방법

  • Bayesian Optimization : 기존의 값을 향상해 나가는 방향으로 탐색하는 방법

6. 공통으로 사용되는 머신러닝 알고리즘

지도 학습(Supervised Learning)

지도 학습은 인간이 알고리즘을 가르치기 위한 가이드 역할을 하기 때문에 그렇게 명명됩니다. 지도 학습은 알고리즘의 가능한 출력이 이미 알려졌고 알고리즘을 학습하는 데 사용된 데이터가 이미 정답으로 표시되어 있어야 합니다. 출력이 실수이면 작업 회귀를 호출합니다. 출력이 클래스(이 값의 순서가 지정되지 않은 경우)이면 분류입니다.

비지도 학습(Unsupervised Learning)

비지도 학습은 진정한 인공 지능 (artificial intelligence)이라고 불리는 것과 밀접하게 관련되어 있습니다. 컴퓨터는 인간이 없어도 복잡한 과정과 패턴을 식별하여 그 내용을 배울 수 있는 방법입니다. 객체에 관한 정보는 거의 없으며, 특히 Train에는 레이블(Label)이 없습니다. 개체 그룹 간에 몇 가지 유사점을 관찰하고 적절한 클러스터에 포함할 수 있습니다.

강화 학습

강화 학습은 여러 단계에서 복잡한 목표를 달성하거나 특정 차원을 따라 최대화하는 방법을 학습하는 목표 지향 알고리즘을 의미합니다. 예를 들어, 게임에서 얻은 포인트를 최대화하기라는 목표를 수행하도록 학습하는 것입니다. 이것은 지도 학습에서 정답을 가지고 모델을 학습하는 것과는 다르게 강화 학습에서는 정답이 없지만 에이전트가 해야 할 일을 결정한다는 점에서 차이가 있습니다.

6.1 Linear Regression

선형 회귀 분석은 두 개의 연속적인 (양적) 변수 사이의 관계를 요약하고 연구할 수 있는 통계 방법입니다. X로 표시된 하나의 변수는 독립 변수로 간주합니다. y로 표시된 다른 변수는 종속 변수로 간주합니다. 선형 회귀 분석에서는 하나의 독립 변수 X를 사용하여 종속 변수 y의 결과를 설명하거나 예측하지만, 다중 회귀 분석에서는 두 개 이상의 독립 변수를 사용하여 평균 제곱 오류 (mean squared error, MSE) 또는 평균 절대 오류 (mean absolute error, MAE)와 같은 손실 함수에 따라 결과를 예측합니다. 따라서 현재 실행 중인 프로세스의 미래 가치를 예측하라는 지시를 받을 때마다 회귀 알고리즘을 사용할 수 있습니다. 이 알고리즘의 단순성에도 불구하고, 수천 가지의 변수들이 있을 때 잘 작동합니다. 예를 들어, 자연어처리에서 bag of words나 n-grams에 잘 작동합니다. 더 복잡한 알고리즘은 많은 변수 또는 작은 데이터 세트에 오버피팅됩니다. 하지만 선형회귀함수는 일정한 성능을 제공합니다. 그러나 많은 경우에서 성능이 불안정한 단점이 있습니다.

6.2 Logistic Regression

이름에 회귀가 붙는다고 분류 알고리즘과 헷갈리시면 안 됩니다. 로지스틱 회귀 (logistic regression)은 2진 분류를 수행하므로 레이블 출력은 2진입니다. 우리는 또한 회귀 분석을 출력 변수가 범주형 일 때 선형 회귀의 특별한 경우로 생각할 수 있습니다. 여기서 우리는 확률 로그를 종속 변수로 사용합니다. 로지스틱 회귀 (logistic regression)에 대해 굉장한 것은 무엇입니까? 그것은 선형 결합을 취하고 비선형 함수 (S 자형)를 적용하기 때문에 신경망의 작은 인스턴스입니다!

6.3 K-means

당신이 많은 데이터 포인트 (과일에 대한 측정값)를 가지고 있으며 사과와 배 두 그룹으로 데이터 포인트를 나누고 싶다고 상상합니다. K-Means clustering은 데이터 포인트들을 그룹으로 자동으로 나누는 데 사용되는 클러스터링 알고리즘입니다.

K-means에서 k는 우리가 나누려는 k개의 개수입니다. (이 경우에는 배와 사과로 2입니다) 13개의 데이터 포인트가 있다고 가정해 봅시다. 실제로 7개의 사과와 6개의 배가 있지만 (이 사실을 모르는 경우) 두 개의 그룹으로 나누고 싶다고 해 보겠습니다. 이 예제에서는 배가 모든 사과보다 더 크다고 가정합니다. 두 개의 무작위 데이터 포인트를 시작 위치로 선택합니다. 시작 위치와 다른 모든 점 사이의 거리를 계산하고 가장 가까운 시작위치와 같은 그룹으로 대응합니다. 이것은 클러스터링에서 첫 번째 패스이며 이것은 가장 느린 부분입니다.

초기 그룹이 있지만, 무작위로 선택했기 때문에 아마 부정확 할 수 있습니다. 하나의 그룹에 6개의 사과와 배가 있고 다른 하나에는 2개의 사과와 4개의 배가 있다고 가정 해보십시오. 따라서 한 그룹의 모든 포인트의 평균위치를 그 그룹의 새로운 시작점으로 사용하고 위에서 했던 거리계산 작업을 반복하여 새로운 그룹을 만듭니다.

평균이 각 클러스터의 대다수에 가까우므로 둘째로 이동하면 한 그룹의 모든 내용은 사과가 되고 다른 그룹의 모든 내용물은 배가됩니다. 이제 클러스터가 끝난 것을 어떻게 알 수 있느냐면, 당신은 평균을 다시 취하고 클러스터링을 수행하고 포인트가 변경되었는지 확인하십시오. 아무 포인트도 바뀌지 않았으면 끝난 것입니다. 그렇지 않으면 다시 클러스터링이 수행될 것입니다.

6.4 KNN(K-nearest neighbors)

K-means는 비지도 학습방법으로 유사성을 기반으로 K개의 그룹으로 분류하는 방법입니다. 반면, KNN은 지도 학습 중에서 분류문제를 풀기 위한 방법입니다.

우리가 축구선수의 포지션과 그들의 측정치를 알고 있다고 상상해봅시다. 그리고 우리는 축구 선수들의 포지션을 모르고도 측정치만 가지고 그들의 포지션을 예측하고 싶습니다. 이때 우리가 사용할 수 있는 방법이 KNN입니다.

반면에 유사성을 기반으로 K 개의 별개 그룹으로 그룹화해야 하는 경우 K-means 방법을 사용할 수 있습니다

KNN에서, k는 새로운 관측치의 포지션을 결정할 때 이웃의 개수를 k로 정의할 수 있습니다. 예를 들어, K = 5인 경우 새 축구선수의 포지션을 예측하는 경우 가장 비슷한 5명의 축구선수를 기반으로 포지션을 결정할 수 있습니다.

K-means에서 K는 우리가 결국 갖고 자하는 클러스터의 수를 의미합니다. K = 7인 경우, 데이터 집합에서 알고리즘을 실행하면 7개의 클러스터 그룹이 생성됩니다. 둘 다 K를 사용하는 알고리즘이지만 목적이 다른 점에서 우리를 혼동하게 합니다.

6.5 Support Vector Machines

SVM은 초평면을 사용하여 서로 다른 두 점 (X와 O)을 구분합니다. 때로는 평면에서 직선으로 포인트를 분류할 수 없으므로, 직선으로 나눌 수 있는 더 높은 차원 공간 (커널을 사용하여) 에 대응해야 합니다. 마치 훨씬 더 높은 차원 공간에서 직선 일지라도 원래의 공간에 곡선 선처럼 보이는 트릭을 사용하는 것입니다.

6.6 Random Forest

당신은 Procter & Gamble의 주식을 가지고 있습니다. 당신은 시작 가격, 마감 가격, 가격 및 가격 변화와 같은 지난달의 여러 데이터를 기반으로 구매, 판매 및 보유의 세 가지 선택지가 있습니다.

우리는 의사결정 나무를 이용하여 최상의 의사결정을 하려고 합니다. 예를 들어, 주식을 대량으로 구매했고 그 날 주가가 전날보다 10% 이상 변동하는 것과 같은 상황을 말합니다. 하지만 우리는 어떤 피처들을 사용해야 할지 모르지만, 가지고 있는 피처들은 많습니다.

그래서 우리는 무작위의 측정값 세트와 우리의 훈련 세트의 무작위 표본을 취하고 결정 트리를 만듭니다. 그런 다음 매번 다른 임의의 측정 세트와 무작위 데이터 표본을 사용하여 여러 번 같은 작업을 수행합니다. 결국, 우리는 많은 의사 결정 나무를 가지고 있습니다. 우리는 각각을 사용하여 가격을 예측한 다음 단순한 평균을 바탕으로 최종 예측을 결정합니다.

6.7 Neural Net

신경 네트워크는 인공 지능의 한 형태입니다. 신경망의 기본 개념은 컴퓨터 내부에 있는 많은 밀도의 상호 연결된 뇌세포를 시뮬레이션하여 사물을 배우고 패턴을 인식하며 인간과 같은 방식으로 의사 결정을 내릴 수 있도록 하는 것입니다. 신경 네트워크에 대한 놀랄만한 사실은 명시적으로 배우기 위해 프로그램 할 필요가 없다는 것입니다. 뇌와 마찬가지로 모든 것을 자체적으로 학습합니다!

출처 : https://towardsdatascience.com/do-you-know-how-to-choose-the-right-machine-learning-algorithm-among-7-different-types-295d0b0c7f60