머신 러닝 및 신경망 - 페이지 43

 

Python으로 처음부터 KNN을 구현하는 방법

코드: https://github.com/AssemblyAI-Examples/Machine-Learning-From-Scratch/tree/main/01%20KNN



Python으로 처음부터 KNN을 구현하는 방법

"How to implement KNN from scratch with Python"이라는 비디오에서 연사는 Python을 사용하여 처음부터 KNN 분류자를 만드는 방법을 설명합니다. 새 데이터 포인트와 데이터 세트의 다른 포인트 사이의 거리 계산, 가장 가까운 k 포인트 선택, 분류 레이블 또는 회귀 평균 결정과 같은 알고리즘 구현과 관련된 단계를 다룹니다. 화자는 Python의 클래스를 사용하여 알고리즘을 구현하고 96%의 정확도로 홍채 데이터 세트에서 성공적인 구현을 시연합니다. 또한 시청자가 Github 리포지토리에서 코드를 확인하고 댓글 섹션에서 질문하도록 초대합니다.

  • 00:00:00 이 섹션에서는 k Nearest Neighbors(k-NN) 알고리즘, 작동 방식 및 Python에서 알고리즘을 구현하는 데 필요한 단계에 대해 알아봅니다. k-NN은 새로운 데이터 포인트까지의 거리를 기준으로 가장 가까운 k 데이터 포인트를 선택하는 거리 기반 알고리즘입니다. 이 k 값은 사용자가 결정하며 회귀 및 분류 문제 모두에 사용할 수 있습니다. 알고리즘은 새 데이터 포인트와 데이터 세트의 다른 데이터 포인트 사이의 거리를 계산하는 것으로 시작합니다. 그런 다음 k개의 가장 가까운 점을 선택하고 그 값의 평균을 회귀 분석에 사용하거나 다수결 레이블을 분류에 사용합니다. 또한 피팅 및 예측 함수가 있는 Python의 클래스와 두 점 사이의 거리를 계산하는 도우미 함수를 사용하여 알고리즘을 구현하는 방법도 살펴봅니다.

  • 00:05:00 이 섹션에서 화자는 Python을 사용하여 처음부터 KNN 분류자를 만드는 방법을 설명합니다. 거리 배열을 정렬하기 위한 arc 정렬 방법부터 시작하여 가장 가까운 이웃 k개를 선택하고 가장 일반적인 클래스 레이블을 가져오고 가장 일반적인 레이블을 반환하는 것으로 이동합니다. 그런 다음 붓꽃 데이터 세트에 이 분류기를 구현하여 꽃 유형을 분류하고 96%의 정확도를 달성하여 KNN의 성공적인 구현을 보여줍니다. 발표자는 시청자에게 Github 리포지토리에서 사용 가능한 코드를 확인하고 댓글 섹션에서 질문하도록 초대합니다.
Machine-Learning-From-Scratch/01 KNN at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
Machine-Learning-From-Scratch/01 KNN at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
  • AssemblyAI-Examples
  • github.com
Implementation of popular ML algorithms from scratch - Machine-Learning-From-Scratch/01 KNN at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
 

Python으로 처음부터 선형 회귀를 구현하는 방법

코드: https://github.com/AssemblyAI-Examples/Machine-Learning-From-Scratch/tree/main/02%20Linear%20Regression



Python으로 처음부터 선형 회귀를 구현하는 방법

이 비디오는 Python을 사용하여 처음부터 선형 회귀를 구현하는 프로세스를 다룹니다. 연사는 평균 제곱 오차를 사용하여 가장 적합한 선을 찾는 방법과 경사 하강법으로 가중치와 편향을 계산하는 방법을 설명합니다. 발표자는 또한 학습 속도가 수렴에 미치는 영향에 대해 논의하고 scikit-learn의 데이터 세트 기능을 사용하여 모델을 테스트하는 방법을 시연합니다. 또한 코드의 오타를 수정하고 학습 속도를 조정하여 예측 라인의 적합성을 개선합니다. 코드는 GitHub에서 공유되며 시청자는 질문을 할 수 있습니다.

  • 00:00:00 이 섹션에서는 주어진 데이터 세트의 패턴을 이해하고 가능한 한 데이터에 가장 적합한 선형 선을 그리는 것과 관련된 선형 회귀에 초점을 맞춥니다. 평균 제곱 오차는 모든 데이터 포인트에 대한 선의 오차를 계산하는 데 사용되며 기울기 하강법을 사용하여 최소 평균 제곱 오차를 제공하는 모델 또는 가중치 및 편향의 매개 변수에 대한 값을 계산하여 가장 적합한 선을 찾습니다. 학습률은 경사 하강법이 알려주는 방향으로 얼마나 빨리 또는 느리게 가는지를 제어하는 데 사용됩니다. 학습률이 낮으면 최소 오류에 대한 접근이 느려질 수 있는 반면, 학습률이 높으면 영공 주위를 뛰어다닐 수 있습니다. 최소값을 찾지 못했습니다. 교육 중에 가중치와 편향은 0으로 초기화되고 방정식에는 예측 또는 추정할 데이터 포인트가 제공됩니다.
    결과와 방정식의 오류가 계산되므로 모든 데이터 포인트에 행렬 곱셈을 사용하여 기울기를 계산하기가 더 쉬워집니다. 테스트하는 동안 훈련된 모델은 방정식을 사용하여 결과를 예측합니다.

  • 00:05:00 이 섹션에서 화자는 Python을 사용하여 처음부터 선형 회귀를 구현합니다. 화자는 학습률을 초기화하고 반복 횟수의 기본값을 설정하며 가중치와 편향을 0으로 정의합니다. 그런 다음 화자는 가중치와 x의 내적을 취하고 바이어스를 추가하여 결과를 예측합니다. 도함수를 계산하기 위해 화자는 간단한 방정식을 사용한 다음 그래디언트를 계산하여 가중치와 편향을 업데이트합니다. 마지막으로 화자는 예측과 실제 값의 차이를 합산하고 수렴될 때까지 여러 번 반복하여 프로세스를 반복합니다.

  • 00:10:00 이 섹션에서 발표자는 선형 회귀 모델을 훈련하고 주어진 클래스를 사용하여 예측하는 방법에 대해 설명합니다. 가중치와 편향의 업데이트는 각각 가중치와 편향의 도함수에 학습률을 곱한 값을 빼서 이루어집니다. 알고리즘 실행을 여러 번 반복하기 위해 for 루프가 추가되어 데이터 세트에 대해 알고리즘을 실행합니다. 마지막으로 발표자는 scikit-learn의 데이터 세트 기능을 사용하여 선형 회귀 알고리즘의 효율성을 테스트하는 방법을 보여줍니다. 좋은 성능을 제공하는 라인을 피팅하고 예측에 대한 평균 제곱 오차를 계산합니다. 잘못된 내적 계산으로 인해 차원 오류가 발생했으며, 이는 x의 전치값을 가져옴으로써 수정됩니다.

  • 00:15:00 이 섹션에서 발표자는 코드의 오타를 수정하고 이를 사용하여 주어진 데이터 세트의 x 값을 기반으로 y 값을 예측하는 선형 회귀 모델을 만듭니다. 그런 다음 예측선을 시각화하고 잘 맞지만 개선될 수 있음을 확인합니다. 프리젠터는 학습률을 조정하기로 결정하고 더 나은 적합도를 얻기 위해 모델을 다시 실행합니다. GitHub에서 코드를 공유하고 필요한 경우 시청자에게 질문하도록 초대합니다.
Machine-Learning-From-Scratch/02 Linear Regression at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
Machine-Learning-From-Scratch/02 Linear Regression at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
  • AssemblyAI-Examples
  • github.com
Implementation of popular ML algorithms from scratch - Machine-Learning-From-Scratch/02 Linear Regression at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
 

Python으로 로지스틱 회귀를 처음부터 구현하는 방법

코드: https://github.com/AssemblyAI-Examples/Machine-Learning-From-Scratch/tree/main/03%20Logistic%20Regression



Python으로 로지스틱 회귀를 처음부터 구현하는 방법

이 비디오는 시그모이드 함수를 사용하여 확률과 교차 엔트로피를 오류 함수로 생성하여 Python으로 처음부터 로지스틱 회귀를 구현하는 방법을 설명합니다. 강사는 반복을 통해 예측, 그래디언트 및 편향 업데이트를 계산하기 위한 단계별 지침을 공유합니다. 또한 유방암 데이터 세트를 로드하고 로지스틱 회귀 분류기를 훈련하여 종양이 악성인지 양성인지 예측하는 방법을 보여줍니다. 비디오는 사용자 지정 함수를 사용하여 모델의 정확도를 평가하는 것으로 끝납니다. 전반적으로 구현은 성공적이며 로지스틱 회귀 알고리즘이 잘 작동함을 증명합니다.

  • 00:00:00 이 섹션에서는 비디오에서 로지스틱 회귀와 시그모이드 함수를 사용하여 특정 값 대신 확률을 생성하는 방법에 대해 설명합니다. 평균 제곱 오차를 사용하는 대신 로지스틱 회귀는 오차 함수에 교차 엔트로피를 사용합니다. 그래디언트 디센트를 사용하려면 가중치와 편향 측면에서 오류 함수의 그래디언트를 계산해야 합니다. 학습률은 기울기에 의해 주어진 방향에 얼마나 빨리 접근하는지 결정하는 데 사용됩니다. 테스트 중에 확률이 계산되고 가장 높은 확률을 기준으로 레이블이 선택됩니다. 로지스틱 회귀의 구현은 선형 회귀와 유사하지만 가중치와 편향을 0으로 초기화합니다.

  • 00:05:00 비디오의 이 섹션에서 강사는 결과를 예측하기 위해 시그모이드 함수를 사용하여 Python으로 로지스틱 회귀를 구현하는 방법을 설명합니다. 이 프로세스에는 가중치와 x 값에 편향을 더한 값의 곱에서 예측을 계산하고 이를 시그모이드 함수에 넣어 결과를 제공하고 그래디언트를 계산하는 작업이 포함됩니다. 강사는 반복을 통해 바이어스 및 업데이트에 대한 기울기를 계산하는 방법을 보여줍니다. 이 섹션에는 확률을 구하고 예측 값을 기반으로 레이블을 선택하여 로지스틱 회귀로 추론을 수행하는 방법도 포함되어 있습니다.

  • 00:10:00 이 섹션에서 강사는 Python을 사용하여 처음부터 로지스틱 회귀를 구현하는 방법을 보여줍니다. 프로세스를 단계별로 설명하고 시그모이드 함수를 사용하여 확률 및 클래스 레이블을 계산하는 방법과 더 나은 결과를 얻기 위해 학습률을 조정하는 방법을 보여줍니다. 또한 강사는 Scikit-learn에서 유방암 데이터 세트를 로드하고 데이터 세트의 기능을 기반으로 종양이 악성인지 양성인지 예측하도록 로지스틱 회귀 분류기를 훈련합니다. 마지막으로 알고리즘의 정확성을 평가하고 사용자 지정 함수를 사용하여 계산하는 방법을 시연합니다. 전반적으로 구현은 성공적이며 수제 알고리즘이 꽤 잘 작동함을 보여줍니다.
Machine-Learning-From-Scratch/03 Logistic Regression at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
Machine-Learning-From-Scratch/03 Logistic Regression at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
  • AssemblyAI-Examples
  • github.com
Implementation of popular ML algorithms from scratch - Machine-Learning-From-Scratch/03 Logistic Regression at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
 

Python으로 의사 결정 트리를 처음부터 구현하는 방법

코드: https://github.com/AssemblyAI-Examples/Machine-Learning-From-Scratch/tree/main/04%20Decision%20Trees



Python으로 의사 결정 트리를 처음부터 구현하는 방법

이 비디오는 Python을 사용하여 처음부터 의사 결정 트리를 구축하는 방법에 대한 단계별 가이드를 제공합니다. 발표자는 의사 결정 트리의 개념, 작동 방식 및 구축 방법을 설명합니다. 중지 기준, 트리 성장 기능, "가장 일반적인 레이블", "정보 획득", "엔트로피" 및 "분할" 도우미 기능과 예측 기능에 대해 논의합니다. 발표자는 정보 획득, 가중 엔트로피 및 정확도를 계산하는 방법도 보여줍니다. 또한 의사결정 트리 모델을 테스트하고 코드를 사용할 수 있는 GitHub 리포지토리에 대한 링크를 뷰어에게 제공합니다.

  • 00:00:00 이 섹션에서는 의사 결정 트리, 작동 방식 및 구축 방법에 대해 알아봅니다. 의사결정 트리는 데이터 세트를 나타내기 위해 작성되며 각 데이터 포인트는 '예' 또는 '아니오'를 나타내는 리프 노드로 나뉩니다. 리프 노드 사이의 노드를 분기라고 하며 데이터 포인트가 동쪽 또는 서쪽 이웃에 있는지를 나타내는 기능과 같은 기능을 기반으로 나뉩니다. 정보 획득은 부모의 엔트로피와 자식 엔트로피의 가중 평균으로 계산되며, 결정 트리 모델은 가장 중요한 정보 획득을 기반으로 학습됩니다. 마지막으로 의사 결정 트리 작성을 중지할 시기를 결정하는 데 사용되는 중지 기준에 대해 설명합니다.

  • 00:05:00 이 섹션에서 발표자는 노드가 가질 수 있는 최대 깊이 또는 최소 샘플 수 설정을 포함하여 가능한 모든 리프 노드를 분석하기 전에 의사 결정 트리를 중지하는 방법에 대해 논의합니다. 그런 다음 발표자는 의사 결정 트리 구현에 사용될 두 가지 클래스인 Node 클래스와 DecisionTree 클래스를 제시합니다. Node 클래스에는 노드가 분할된 기능에 대한 정보와 노드의 값이 포함됩니다. DecisionTree 클래스에는 트리를 x 및 y 값으로 피팅하고, 새 데이터를 예측하고, 최소 샘플 수 및 최대 깊이와 같은 중지 기준을 설정하는 메서드가 포함되어 있습니다. 전반적으로 발표자는 Python에서 처음부터 의사 결정 트리 구현을 개략적으로 설명하는 단계별 접근 방식을 취합니다.

  • 00:10:00 이 섹션에서 발표자는 결정 트리를 재귀적으로 구축하는 주요 기능인 성장 트리 기능의 구현에 대해 논의합니다. 이 함수는 x 및 y 값을 가져오고 피처 수가 실제 피처 수를 초과하지 않는지 확인합니다. 이 함수는 먼저 중지 기준을 확인한 다음 최상의 분할을 찾고 자식 노드를 만들고 성장 트리 함수를 다시 호출합니다. 중지 기준이 충족되면 함수는 새 리프 노드를 만들고 값 매개 변수와 함께 반환합니다. 발표자는 카운터 데이터 구조를 활용하고 데이터 세트에서 가장 일반적인 레이블을 반환하는 "가장 일반적인 레이블"이라는 도우미 함수에 대해서도 설명합니다.

  • 00:15:00 이 섹션에서는 비디오에서 Python으로 처음부터 결정 트리를 구현하는 방법에 대해 설명합니다. 강사는 새 분할을 생성하기 위한 최상의 임계값과 기능을 찾는 도우미 함수를 생성하는 방법을 보여줍니다. 이 함수는 numpy를 사용하여 새 분할 생성을 고려할 기능 그룹을 무작위로 선택합니다. 헬퍼 함수가 가능한 모든 분할 중에서 임계값을 찾으면 정보 이득을 계산하여 지금까지 계산된 최상의 이득보다 나은지 결정합니다. 마지막으로 최상의 분할 인덱스와 임계값이 반환됩니다.

  • 00:20:00 비디오의 이 섹션에서 화자는 "정보 이득"이라는 도우미 함수를 만들어 정보 이득을 계산하고 "엔트로피"라는 또 다른 도우미 함수를 정의하여 전달된 값을 기반으로 부모의 엔트로피를 계산합니다. 그들은 부모의 엔트로피가 px 곱하기 px의 log 2의 합으로 계산된다고 설명하고, numpy 트릭을 사용하여 각 값의 발생을 세고 값의 총 수로 나누어 x의 p를 얻습니다. . 다음으로 화자는 어떤 인덱스가 왼쪽으로 가고 어떤 인덱스가 오른쪽으로 가는지 찾는 데 도움이 되는 "split"이라는 또 다른 도우미 함수를 만들고 numpy argwhere가 어떻게 작동하는지 보여줍니다.

  • 00:25:00 비디오의 이 섹션에서 발표자는 Python을 사용하여 의사 결정 트리의 하위 항목에 대한 가중 엔트로피를 계산하는 방법을 설명합니다. y 값의 길이와 좌우 인덱스를 얻은 후 가중 평균 공식을 사용하여 자식의 엔트로피를 계산할 수 있습니다. 여기에는 각 자식 노드의 샘플 수를 전체 샘플 수로 나눈 값을 각 노드의 엔트로피로 곱한 다음 결과를 함께 더하여 자식의 엔트로피를 구하는 작업이 포함됩니다. 이 정보를 사용하여 부모 엔트로피에서 자식 엔트로피를 뺀 정보 이득을 계산한 다음 전체 의사 결정 트리로 다시 전달합니다.

  • 00:30:00 비디오의 이 섹션에서 발표자는 결정 트리 분류기에 대한 예측 기능을 구현하는 방법을 설명합니다. traverse_tree 헬퍼 함수는 여기에서 재귀적으로 트리를 순회하고 리프 노드에 도달하면 리프 노드의 값을 반환하는 데 사용됩니다. 피처의 값이 임계값보다 작거나 같으면 트리의 왼쪽이 순회하도록 전달되고 그렇지 않으면 트리의 오른쪽이 순회에 전달됩니다. 값이 반환된 다음 출력되기 전에 numpy 배열로 바뀝니다. 그런 다음 결정 트리 분류기를 유방암 데이터 세트로 테스트하고 예측 기능을 사용하여 정확도 메트릭으로 전달되는 예측을 생성합니다.

  • 00:35:00 이 섹션에서 발표자는 Python을 사용하여 처음부터 구축한 의사 결정 트리 모델을 테스트합니다. 먼저 예측과 테스트 데이터를 사용하여 모델의 정확도를 계산합니다. 그들은 또한 코드에서 두 가지 오류를 발견했습니다. 하나는 노드 초기화에서, 다른 하나는 트래버스 트리 기능에서 발견되었습니다. 오류를 수정한 후 테스트 데이터를 다시 실행하고 0.91의 정확도를 얻습니다. 그런 다음 모델에 다른 인수를 전달하고 조금 더 나은 정확도를 얻습니다. 마지막으로 발표자는 시청자에게 질문을 요청하고 코드를 사용할 수 있는 GitHub 리포지토리에 대한 링크를 제공합니다.
Machine-Learning-From-Scratch/04 Decision Trees at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
Machine-Learning-From-Scratch/04 Decision Trees at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
  • AssemblyAI-Examples
  • github.com
Implementation of popular ML algorithms from scratch - Machine-Learning-From-Scratch/04 Decision Trees at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
 

Python으로 Random Forest를 처음부터 구현하는 방법

코드: https://github.com/AssemblyAI-Examples/Machine-Learning-From-Scratch/tree/main/05%20Random%20Forests



Python으로 Random Forest를 처음부터 구현하는 방법

이 비디오 자습서는 Python을 사용하여 Random Forests를 처음부터 구현하는 방법을 설명합니다. 학습하는 동안 데이터 세트의 임의 하위 집합이 선택되고 이 하위 집합으로 의사 결정 트리가 생성됩니다. 이 프로세스는 알고리즘을 시작하기 전에 결정된 트리 수에 대해 반복됩니다. 추론하는 동안 각 트리에서 예측을 얻고 분류인 경우 클래스 레이블의 과반수 투표를 합니다. 발표자는 의사 결정 트리를 분산시키는 목록을 만들고 Numpy 배열에 추가하여 구현 방법을 시연합니다. 정확도는 정확하게 예측된 참 값의 수를 참 값의 총 수로 나누어 계산할 수 있습니다. 화자는 또한 더 높은 정확도를 달성하기 위해 트리 수, 최대 깊이 및 최소 샘플 분할을 수정할 수 있다고 말합니다.

  • 00:00:00 이 섹션에서는 다양한 결정 트리로 구성된 랜덤 포레스트에 대해 알아봅니다. 프로세스에는 이러한 트리를 만들 때 방정식에 임의성을 도입하는 작업이 포함됩니다. 학습하는 동안 데이터 세트의 임의 하위 집합이 선택되고 이 하위 집합으로 의사 결정 트리가 생성됩니다. 이 프로세스는 알고리즘을 시작하기 전에 결정된 트리 수에 대해 반복됩니다. 추론하는 동안 각 트리에서 예측을 얻고 분류인 경우 클래스 레이블의 과반수 득표를 얻습니다. 회귀인 경우 모든 예측의 평균이 계산됩니다. 구현은 이전 학습에서 생성된 의사 결정 트리 클래스를 사용하며 트리 수, 최대 깊이, 분할을 위한 최소 샘플, 기능 수 및 모든 트리를 포함할 빈 배열을 지정하여 초기화됩니다. 클래스는 다음과 같습니다. 적합 및 예측 기능, 필요한 것은 위에서 언급한 필수 매개변수를 전달하는 것입니다.

  • 00:05:00 이 섹션에서 강사는 샘플의 하위 집합을 기반으로 결정 트리를 맞추는 방법과 이를 랜덤 포레스트 모델의 트리 목록에 추가하는 방법을 설명합니다. 도우미 함수 "bootstrap_samples"가 생성되어 주어진 데이터 세트에서 대체할 지정된 수의 샘플을 무작위로 선택합니다. 그런 다음 강사는 랜덤 포레스트의 모든 트리를 반복하고 예측 목록을 반환하는 입력 X에 대해 랜덤 포레스트를 사용하여 예측하는 방법을 설명합니다. 각 내부 목록에는 서로 다른 트리의 동일한 샘플에 대한 예측이 포함됩니다. 마지막으로 강사는 목록을 재정렬하는 numpy의 "축 교체" 기능과 컬렉션 라이브러리의 카운터 데이터 구조를 사용하여 가장 일반적인 분류 레이블을 반환하는 "most_common" 도우미 기능을 소개합니다.

  • 00:10:00 이 섹션에서 화자는 Python을 사용하여 처음부터 랜덤 포레스트를 구현하는 과정을 설명합니다. 그들은 예측에 사용될 도우미 함수를 언급하고 목록을 만들고 의사 결정 트리를 확산한 다음 예측을 위해 반환될 NumPy 배열에 추가합니다. 정확도는 올바르게 예측된 참 값의 수를 참 값의 총 수로 나누어 계산합니다. 발표자는 또한 더 높은 정확도를 달성하기 위해 트리 수, 최대 깊이 및 최소 샘플 분할을 조작할 수 있다고 언급합니다. 발표자는 시청자에게 GitHub 리포지토리의 코드를 안내하고 댓글 섹션의 질문을 환영합니다. 마지막으로 화자는 튜토리얼의 나머지 부분을 패트릭에게 넘깁니다.
Machine-Learning-From-Scratch/05 Random Forests at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
Machine-Learning-From-Scratch/05 Random Forests at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
  • AssemblyAI-Examples
  • github.com
Implementation of popular ML algorithms from scratch - Machine-Learning-From-Scratch/05 Random Forests at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
 

Python으로 Naive Bayes를 처음부터 구현하는 방법

코드: https://github.com/AssemblyAI-Examples/Machine-Learning-From-Scratch/tree/main/06%20NaiveBayes



Python으로 Naive Bayes를 처음부터 구현하는 방법

이 비디오 자습서는 Python을 사용하여 처음부터 Naive Bayes를 구현하는 데 중점을 둡니다. 강사는 베이즈 정리 및 독립 가정에 대한 개요를 제공합니다. 알고리즘 학습에 필요한 사전 확률 및 클래스 조건부 확률을 계산하는 방법을 설명합니다. 연사는 또한 확률을 모델링하는 방법으로 가우시안 분포를 소개합니다. 이 비디오는 코드가 있는 알고리즘의 훈련 및 예측 단계를 보여줍니다. 강사는 두 개의 클래스가 있는 장난감 데이터 세트에서 알고리즘을 테스트하여 96.5%의 정확도를 달성했습니다. 전반적으로 이 튜토리얼은 Naive Bayes를 배우고 이를 Python으로 구현하는 데 관심이 있는 사람들에게 유용한 리소스입니다.

  • 00:00:00 이 섹션에서 발표자는 클래스 레이블을 예측하기 위해 기능 간의 독립성을 가정하는 확률 분류기인 Naive Bayes의 기본 이론에 대해 설명합니다. 그들은 Bayes의 정리와 독립 가정을 설명하고 이것이 각 클래스의 사후 확률을 계산하는 데 어떻게 사용되는지 설명합니다. 연사는 계속해서 알고리즘 학습에 필요한 사전 확률과 클래스 조건부 확률을 계산하는 방법을 설명합니다. 또한 확률을 모델링하는 방법으로 가우시안 분포를 소개합니다. 학습 및 예측 단계가 요약되고 Naive Bayes를 구현하는 코드가 시연됩니다. 발표자는 적합 및 예측 방법 모두에 대한 정의를 제공하고 각각의 교육 및 예측에 필요한 단계를 설명합니다.

  • 00:05:00 비디오의 이 섹션에서 강사는 Python을 사용하여 처음부터 Naive Bayes를 구현하는 방법을 설명합니다. 이 코드는 x와 y가 이미 numpy 및 d 배열 형식이라고 가정합니다. 강사는 x.shape를 사용하여 x를 추출하는 방법과 numpy.unique()를 사용하여 고유한 클래스의 수를 가져오는 방법을 보여줍니다. 다음 단계는 각 클래스의 평균, 분산 및 사전을 계산하는 것입니다. 이 값을 0으로 초기화한 다음 numpy 함수를 사용하여 계산하면 됩니다. 그런 다음 강사는 도우미 함수와 목록 이해를 사용하여 각 클래스의 사후 확률을 계산하는 방법을 설명합니다. 마지막으로 강사는 예측을 numpy 배열로 반환하는 방법을 보여줍니다.

  • 00:10:00 이 섹션에서는 화자가 Python에서 Naive Bayes 알고리즘을 구현하는 방법에 대해 설명합니다. 우선 순위를 계산한 다음 가우시안 분포를 사용하여 사후를 계산하고 확률 밀도에 대한 도우미 함수를 만든 다음 사후가 가장 높은 클래스를 예측하는 단계를 거칩니다. 마지막으로 1000개의 샘플과 10개의 기능으로 구성된 장난감 데이터 세트에서 알고리즘을 테스트하여 96.5%의 정확도를 달성했습니다. 발표자는 코드에 대한 추가 탐색을 장려하고 다음 강의를 기대합니다.
Machine-Learning-From-Scratch/06 NaiveBayes at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
Machine-Learning-From-Scratch/06 NaiveBayes at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
  • AssemblyAI-Examples
  • github.com
Implementation of popular ML algorithms from scratch - Machine-Learning-From-Scratch/06 NaiveBayes at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
 

Python으로 처음부터 PCA(주성분 분석)를 구현하는 방법

코드: https://github.com/AssemblyAI-Examples/Machine-Learning-From-Scratch/tree/main/07%20PCA



Python으로 처음부터 PCA(주성분 분석)를 구현하는 방법

비디오는 Python 및 Numpy를 사용하여 처음부터 주성분 분석(PCA)을 구현하는 프로세스를 설명합니다. PCA는 대부분의 정보를 유지하면서 데이터 세트의 차원을 줄이는 기술입니다. 강사는 데이터 세트에서 PCA를 수행하기 위해 적합 및 변환 방법을 사용하여 Python 클래스를 생성하는 단계를 안내합니다. 적합 방법은 먼저 데이터의 평균과 공분산을 계산하고 고유 벡터와 고유 값을 추출합니다. 변환 방법은 데이터를 주성분에 투영합니다. 발표자는 프로세스에서 평균 빼기 및 고유 벡터 정렬의 중요성을 강조합니다. 마지막으로 Iris 데이터 세트에서 구현을 테스트하여 차원을 4차원에서 2차원으로 성공적으로 축소했습니다.

  • 00:00:00 이 섹션에서 강사는 데이터 세트를 더 큰 세트의 대부분의 정보를 포함하는 더 낮은 차원 세트로 변환하여 데이터 세트의 차원을 줄이는 비지도 학습 방법인 주성분 분석(PCA)에 대해 설명합니다. 강사는 PCA가 변환된 피처가 선형적으로 독립적이고 중요도가 가장 높은 차원만 취하여 차원이 축소된 변환을 찾는 방법을 설명합니다. 새로 찾은 차원은 투영 오류를 최소화해야 하며 투영된 점은 최대 분산을 의미하는 최대 확산을 가져야 합니다. 강사는 Python 및 Numpy를 사용하여 처음부터 PCA를 구현하는 단계를 안내합니다. 이러한 단계에는 x에서 평균 빼기, x와 x의 공분산 계산, 고유값에 따라 고유 벡터를 내림차순으로 정렬하는 작업이 포함됩니다.

  • 00:05:00 이 섹션에서는 화자가 Python을 사용하여 주성분 분석(PCA) 구현을 설명합니다. 여기에는 구성 요소 수를 입력으로 사용하는 '초기화' 함수, 평균을 빼고 공분산을 계산하고 고유 벡터를 정렬하고 주성분을 저장하는 '적합' 방법을 만드는 작업이 포함됩니다. 그런 다음 '변환' 방법은 이 변환을 새 데이터에 적용합니다. 발표자는 코드의 각 단계를 진행하면서 평균 빼기와 고유 벡터 정렬의 중요성을 강조하고 궁극적으로 차원 감소를 위한 주성분을 출력합니다.

  • 00:10:00 이 섹션에서 발표자는 Python에서 처음부터 PCA(주성분 분석)를 구현하는 방법을 보여줍니다. 맞춤 및 변환 방법을 사용하여 클래스를 만드는 것으로 시작합니다. 적합 방법은 먼저 데이터의 평균을 계산하고 평균을 중심으로 합니다. 그런 다음 데이터의 공분산을 계산하고 고유 벡터와 고유 값을 추출합니다. 변환 방법은 내적을 사용하여 주성분에 데이터를 투영합니다. 마지막으로 화자는 Iris 데이터 세트로 구현을 테스트하고 데이터의 차원을 4차원에서 2차원으로 성공적으로 줄입니다.
Machine-Learning-From-Scratch/07 PCA at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
Machine-Learning-From-Scratch/07 PCA at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
  • AssemblyAI-Examples
  • github.com
Implementation of popular ML algorithms from scratch - Machine-Learning-From-Scratch/07 PCA at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
 

Python으로 퍼셉트론을 처음부터 구현하는 방법

코드: https://github.com/AssemblyAI-Examples/Machine-Learning-From-Scratch/tree/main/08%20Perceptron



Python으로 퍼셉트론을 처음부터 구현하는 방법

이 비디오 자습서는 활성화 함수, 가중치 및 입력을 사용하여 이진 분류에 대해 선형으로 분리 가능한 패턴만 학습할 수 있는 퍼셉트론 알고리즘의 이론을 설명합니다. 그런 다음 발표자는 최적화 알고리즘의 학습률과 반복 횟수를 선택하고 활성화 함수를 단위 단계 함수로 정의하여 Python에서 퍼셉트론 모델을 처음부터 구현하는 데 필요한 단계를 설명합니다. 가중치와 편향을 초기화한 후 모델은 퍼셉트론 업데이트 규칙에 따라 가중치와 편향을 업데이트하여 학습 데이터에서 학습합니다. 마지막으로 발표자는 테스트 데이터에 대한 클래스 레이블을 예측하여 모델의 정확도를 평가하고 정확도는 100%로 결정 경계의 성공적인 학습을 나타냅니다.

  • 00:00:00 이 섹션에서 발표자는 Perceptron 알고리즘의 기본 이론과 이진 분류기의 감독 학습을 위한 알고리즘에 대해 설명합니다. 퍼셉트론은 생물학적 뉴런의 단순화된 모델이며 신경망의 프로토타입으로도 알려져 있습니다. 퍼셉트론 알고리즘은 선형적으로 분리 가능한 패턴만 학습할 수 있으며, 인공 신경망의 단일 단위로 볼 수 있습니다. 그런 다음 발표자는 가중치, 입력 및 활성화 함수와 이진 분류기 클래스 레이블을 포함하는 퍼셉트론의 수학적 표현을 설명합니다. 그런 다음 비디오는 퍼셉트론 업데이트 규칙을 설명합니다. 이 규칙을 통해 알고리즘은 가중치와 편향을 업데이트하여 오분류의 경우 포지티브 또는 네거티브 대상 클래스로 푸시합니다.

  • 00:05:00 이 섹션에서 발표자는 Python에서 처음부터 퍼셉트론 모델을 구현하는 단계를 설명합니다. 최적화 알고리즘의 학습률과 반복 횟수를 선택하는 것으로 시작합니다. 다음으로 활성화 함수는 단위 단계 함수로 저장됩니다. 가중치와 편향은 처음에 없음으로 초기화되고 코드는 함수를 맞추고 예측하기 위해 이동합니다. fit 함수의 경우 훈련 데이터에서 샘플 수와 특징 수를 구한 다음 가중치와 편향을 초기화합니다. 클래스 레이블은 1 또는 0으로 조정됩니다. 다음으로 각 입력에 대해 선형 출력이 계산되는 최적화가 수행됩니다. 마지막으로 선형 모델과 활성화 함수를 사용하여 테스트 데이터에 대한 예측 출력을 계산하는 예측 함수가 구현됩니다.

  • 00:10:00 이 섹션에서 발표자는 Python으로 처음부터 퍼셉트론을 구현하는 방법을 설명합니다. 퍼셉트론의 업데이트 규칙은 델타 w = 알파 곱하기 y 빼기 y 모자 곱하기 x이고 델타 편향은 알파 곱하기 y 빼기 y 모자입니다. 그런 다음 발표자는 이 규칙을 사용하여 업데이트 부분을 기반으로 가중치와 편향을 업데이트합니다. 적합 방법을 설명한 후 발표자는 선형 출력을 계산한 다음 활성화 함수를 통과하여 y를 예측하는 예측 방법으로 이동합니다. 마지막으로 발표자는 정확도를 위한 도우미 함수를 사용하여 이 구현을 테스트하고 데이터 세트는 150개의 샘플과 두 가지 기능으로 블롭을 만들고 학습률과 반복 횟수로 퍼셉트론을 생성하고 훈련 데이터로 피팅하고 테스트 데이터로 예측합니다. 정확도는 100%로 판명되어 결정 경계를 성공적으로 학습했음을 나타냅니다.
 

Python으로 처음부터 SVM(Support Vector Machine)을 구현하는 방법

코드: https://github.com/AssemblyAI-Examples/Machine-Learning-From-Scratch/tree/main/09%20SVM



Python으로 처음부터 SVM(Support Vector Machine)을 구현하는 방법

SVM(Support Vector Machines)은 교육 중에 가중치를 학습하여 클래스 간 분리를 최대화하는 선형 결정 경계를 찾는 것을 목표로 합니다. 비용 함수는 손실을 최소화하고 거리를 최대화하는 절충에 추가된 정규화 항과 함께 결정 경계의 올바른 측면에서 얼마나 떨어져 있는지를 결정하는 힌지 손실을 포함합니다. 그래디언트가 계산되고 업데이트 규칙이 파생되며 가중치가 초기화되는 반면 예측 함수는 선형 함수의 출력입니다. NumPy 및 Scikit-learn 라이브러리를 사용하여 Python에서 처음부터 SVM을 구현하는 코드가 제공되며 여기에는 훈련 테스트 및 분할 가져오기, 데이터 세트, 결정 경계 플로팅 및 정확한 구현을 확인하는 두 개의 초평면이 포함됩니다.

  • 00:00:00 이 섹션에서는 비디오에서 클래스 간의 최대 분리를 제공하는 선형 결정 경계 또는 초평면을 찾는 것을 목표로 하는 SVM(Support Vector Machines)에 대해 설명합니다. 초평면은 훈련 중에 학습해야 하는 가중치(w)와 함께 가장 가까운 점 또는 지지 벡터로부터 가장 큰 마진을 가져야 합니다. 결정 경계의 올바른 측면에서 얼마나 떨어져 있는지를 결정하는 힌지 손실을 포함하는 손실 함수가 정의됩니다. 비용 함수에서 해당 부분의 중요성을 제어하는 람다 매개변수를 사용하여 손실 최소화와 양측 거리 최대화 사이의 절충을 위해 정규화 항이 비용 함수에 추가됩니다.

  • 00:05:00 이 섹션에서는 SVM에 대한 가중치와 편향을 찾는 프로세스에 대해 설명합니다. 그래디언트 계산에 대해 설명하고 업데이트 규칙은 그래디언트에서 파생됩니다. 가중치 초기화도 시연됩니다. 클래스 레이블은 값이 -1 또는 1이 되도록 업데이트되고 지정된 반복 횟수에 대해 업데이트 규칙이 적용됩니다. 예측 함수는 단순히 학습된 가중치에서 얻은 선형 함수의 출력입니다. 출력을 0과 비교하여 주어진 테스트 샘플의 클래스를 결정할 수 있습니다. SVM용 코드는 NumPy 및 Scikit-learn 라이브러리를 사용하여 Python으로 작성됩니다.

  • 00:10:00 이 섹션에서 발표자는 처음부터 SVM을 구현하기 위해 Python 코드를 작성하는 방법을 설명합니다. 이 방법은 적합 및 예측 방법의 두 부분으로 구성됩니다. 적합 방법은 주어진 데이터에서 가중치를 계산하는 훈련이며 예측 방법은 가중치를 사용하여 주어진 데이터를 근사하여 출력을 예측합니다. 발표자는 조건에 따라 달라지는 다양한 기울기에 따른 코드 업데이트에 대해 자세히 설명합니다. 조건 y 곱하기 W 곱하기 x 빼기 B는 1보다 크거나 같아야 합니다. numpy 점을 사용하여 확인합니다. 이 코드는 sklearn 및 matplotlib에서 기차 테스트, 분할 및 데이터 세트를 가져오고 두 가지 기능이 있는 데이터 세트의 두 블롭이 있는 예제 데이터 세트를 생성한 다음 클래스가 -1 및 플러스 1인지 확인하고 교육 및 테스트 세트로 분할합니다. svm을 실행하여 정확도를 예측합니다. 발표자는 또한 정확한 구현을 확인하는 플러스 1과 마이너스 1의 결정 경계와 두 초평면을 플로팅하기 위한 코드를 설명합니다.
Machine-Learning-From-Scratch/09 SVM at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
Machine-Learning-From-Scratch/09 SVM at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
  • AssemblyAI-Examples
  • github.com
Implementation of popular ML algorithms from scratch - Machine-Learning-From-Scratch/09 SVM at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
 

Python으로 처음부터 K-Means를 구현하는 방법

코드: https://github.com/AssemblyAI-Examples/Machine-Learning-From-Scratch/tree/main/10%20KMeans



Python으로 처음부터 K-Means를 구현하는 방법

이 동영상은 Python을 사용하여 처음부터 K-Means 클러스터링 알고리즘을 구현하는 방법을 보여줍니다. K-Means는 더 이상의 변화가 없을 때까지 평균 또는 중심을 반복적으로 업데이트하여 레이블이 지정되지 않은 데이터를 k개의 다른 클러스터로 클러스터링하는 비지도 학습 알고리즘입니다. 이 비디오는 빈 클러스터 초기화, 클러스터 및 반복 수에 대한 매개변수 설정, 클러스터 레이블 및 중심 업데이트, 변경 사항이 없을 때 최적화 루프 중지를 다룹니다. 발표자는 또한 가장 가까운 중심을 계산하기 위해 유클리드 거리를 측정하는 것의 중요성을 설명하고 클러스터링 프로세스를 시각화하기 위해 Matplotlib에서 미리 작성된 플로팅 기능을 제공합니다.

  • 00:00:00 이 섹션에서 발표자는 데이터 세트를 k개의 서로 다른 클러스터로 클러스터링하고 더 이상 변화가 없을 때까지 반복 최적화 프로세스 중에 평균 또는 중심을 업데이트하는 k-평균 비지도 학습 방법을 설명합니다. 클러스터 레이블과 중심을 업데이트하는 프로세스가 반복되고 가장 가까운 중심 공식을 사용하여 두 특징 벡터 사이의 유클리드 거리를 계산합니다. 그런 다음 스피커는 레이블이 지정되지 않은 데이터에서 세 개의 클러스터를 찾는 예를 보여주고 빈 클러스터를 초기화하고 클러스터 및 반복 수에 대한 매개 변수를 설정하는 것을 포함하여 Python에서 처음부터 k-평균을 구현하는 방법을 보여줍니다. 비디오는 k-평균 알고리즘과 Python에서의 구현에 대한 요약으로 끝납니다.

  • 00:05:00 이 섹션에서 발표자는 Python을 사용하여 처음부터 K-Means 구현에 대해 논의합니다. 각 클러스터 및 중심에 대한 빈 목록과 같은 필요한 변수를 초기화한 다음 적합 방법이 아닌 예측 함수를 정의하는 것으로 시작합니다. 그들은 K-Means가 레이블이 지정되지 않은 데이터에 대한 비지도 학습 기술이라고 설명합니다. 최적화 루프에는 클러스터에서 새 중심을 계산하기 전에 샘플을 중심에 할당하는 작업이 포함됩니다. 발표자는 중심과 클러스터를 만들고 가져오는 데 도우미 기능이 필요하다고 말합니다. 더 이상 변경 사항이 없으면 최대 반복보다 일찍 루프를 중지할 수 있다고 언급하면서 끝납니다.

  • 00:10:00 이 섹션에서 발표자는 클러스터 레이블을 업데이트하고 가장 가까운 중심에 샘플을 할당하는 도우미 함수의 구현을 설명합니다. 클러스터 레이블을 업데이트하는 기능은 각 클러스터를 반복하고 각 샘플 인덱스의 레이블에 클러스터 인덱스를 할당합니다. 화자는 또한 각 클러스터에 대한 빈 목록의 초기화를 보여 인덱스를 할당한 다음 각 샘플을 반복하여 가장 가까운 중심에 할당합니다. 마지막으로 말하기는 중심과 클러스터를 플로팅하는 단계를 설명하고 코드가 플로팅 단계를 제공해야 하는지 확인합니다.

  • 00:15:00 이 섹션에서는 연사가 Python을 사용하여 처음부터 K-Means 클러스터링 알고리즘을 구현하는 방법을 설명합니다. 이 알고리즘은 데이터 세트와 지정된 수의 클러스터를 입력으로 사용한 다음 각 포인트를 가장 가까운 중심에 할당합니다. 화자는 가장 가까운 중심을 찾고 두 점 사이의 유클리드 거리를 계산하기 위한 도우미 기능을 소개합니다. 또 다른 도우미 함수를 사용하여 각 클러스터의 평균을 계산한 다음 중심에 할당합니다. 마지막으로 알고리즘은 각 클러스터의 이전 중심과 새 중심 사이의 거리가 0인지 확인하여 알고리즘이 수렴되었는지 확인합니다.

  • 00:20:00 이 섹션에서 발표자는 Python 및 numpy를 사용하여 처음부터 K-Means 클러스터링을 구현하는 방법을 설명합니다. 그들은 유클리드 거리 측정의 중요성과 새로운 중심 및 클러스터 레이블을 계산하는 방법에 대해 논의합니다. 또한 matplotlib 라이브러리를 사용하여 클러스터링 프로세스를 단계별로 시각화하는 미리 작성된 플로팅 기능을 제공합니다. 마지막으로 sklearn의 make_blobs 함수를 사용하여 샘플 데이터 세트에 대한 구현을 시연하여 3개의 클러스터를 만들고 K-Means 알고리즘이 데이터 포인트를 개별 클러스터로 성공적으로 그룹화하는 방법을 보여줍니다. 연사는 시청자에게 Github에서 전체 코드를 확인하고 나머지 과정에서 기계 학습 개념에 대한 보다 심층적인 설명을 시청하도록 권장합니다.
Machine-Learning-From-Scratch/10 KMeans at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
Machine-Learning-From-Scratch/10 KMeans at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
  • AssemblyAI-Examples
  • github.com
Implementation of popular ML algorithms from scratch - Machine-Learning-From-Scratch/10 KMeans at main · AssemblyAI-Examples/Machine-Learning-From-Scratch