Machine Learning
-
지도학습 | 알고리즘 - KNN 분류Machine Learning/ML with Python Library 2024. 2. 5. 23:19
KNN, K-Nearest Neighbors 알고리즘은 가장 간단한 알고리즘이다. 훈련 데이터셋을 저장하는것이 모델을 만드는 과정의 전부이다. 예측은 간단하다. 가장 가까운 데이터 포인트, 즉, 최근접 이웃(Nearest Neighbor)를 찾는다. 가장 간단한 KNN 알고리즘은, 가장 가까운 훈련데이터 포인트를 최근접 이웃으로 찾아 예측에 사용하는 것이다. mglearn.plots.plot_knn_classification(n_neighbors=1) 위 예시에서는 데이터 포인트 3개를 추가했고, 별표로 표시했다. 그리고 추가한 각 데이터 포인트에서 가장 가까운 Training 데이터 포인트를 연결했다. 1개 뿐만 아니라 K개를 선택할 수 있고, 그렇기 때문에 K-NN 이라고 불려진다. 둘 이상의 최근접..
-
지도학습 | 알고리즘 - 데이터셋Machine Learning/ML with Python Library 2024. 2. 4. 19:28
Import 지도학습에 사용할 데이터셋을 먼저 준비해보자. 우선은 이진 분류(Binary Classification)을 위한 데이터를 만들어보았다. 데이터를 만들고 시각화 하기 위해서, 먼저 아래와 같은 패키지를 설치하고 import 해주었다. Google Colab에는 mglearn이 자동으로 설치되어있지 않아서, pip를 이용해서 설치해주었다. !pip install mglearn import mglearn import matplotlib.pyplot as plt Forge - Classification Dataset 이제 두개의 특성을 가진 forge 데이터셋을 만들어보자. 우리가 원하는 이진 분류 데이터셋이다. 아래와 같은 코드로 만들어 볼 수 있다. # Create dataset that is ..
-
지도학습 | 일반화, 과대적합, 과소적합Machine Learning/ML with Python Library 2024. 2. 4. 14:57
모델이 처음 보는 데이터에 대해 정확하게 예측할 수 있으면, 이를 Training 세트에서 Test 세트로 일반화(Generalization)되었다고 한다. 모델을 만들 때, 가능한 한 정확하게 일반화 되도록 구현해야한다. 훈련 세트와 테스트 데이터가 매우 비슷하다면, 그 모델이 테스트 세트에서도 정확히 예측한다고 기대할 수 있다. 하지만, 아주 복잡한 모델을 만들면, Training 세트에만 정확한 모델이 되어버릴 수 있다. 예를 들어보자. 초보 데이터 과학자가 요트를 구매한 고객과 구매 의사가 없는 고객들의 데이터를 수집했고, 이를 이용해 누가 타겟 요트 바이어가 될지 예측한다고 해보자. 관심 없는 사람에게는 괜히 귀찮게 하지 않고, 실제 관심이 있거나 구매할 것 같은 고객에게만 이메일을 보내는 전략..
-
Neurons and Layers - Neuron with Sigmoid activation | Advanced Learning AlgorithmMachine Learning/Stanford ML Specialization 2024. 2. 3. 22:19
Coursera Machine Learning Specialization > Supervised Machine Learning: Advanced Learning Algorithms > Neural Network Intuition 이번에는 sigmoid activation을 사용하는 뉴런(unit)을 사용해서 함수를 개발해보자. Course 1에서 사용했던 logistic regression과 동일하다. $$ f_{\mathbf{w},b}(x^{(i)}) = g(\mathbf{w}x^{(i)} + b) $$ $$g(x) = sigmoid(x)$$ Dataset 먼저, 데이터를 준비해보자. X_train = np.array([0., 1, 2, 3, 4, 5], dtype=np.float32).reshape(..
-
Neurons and Layers - Neuron without activation - Regression/Linear Model | Advanced Learning AlgorithmMachine Learning/Stanford ML Specialization 2024. 2. 3. 21:02
Coursera Machine Learning Specialization > Supervised Machine Learning: Advanced Learning Algorithms > Neural Network Intuition 이제, 실제로 뉴런(유닛)들과 레이어가 어떻게 작동을 하는지 알아보자. 특히, Course 1에서 regression과 linear모델, logistic model을 만들었던것처럼 해볼것이다. 이 랩에서는 Tensorflow(텐서플로우)를 사용했는데, 이 프레임워크를 이용해서 이 모델들이 어떻게 동작하는지 보도록 하자. Tensorflow는 Google에서 개발한 ML 패키지이다. 2019년에 Google은 Keras를 TensorFlow에 통합하고, TensorFlow 2.0을..
-
Inference: making predictions | Advanced Learning AlgorithmMachine Learning/Stanford ML Specialization 2024. 2. 3. 09:40
Coursera Machine Learning Specialization > Supervised Machine Learning: Advanced Learning Algorithms > Neural Network Intuition 지금까지 배웠던 것들을 모두 합쳐서 inferences, 즉 값을 예상하도록 만들어보자. 이 알고리즘은 forward propagation(순방향 전파)라고 한다. Handwritten digit, 즉 손으로 쓴 글자를 인식하는 모델을 예로 들어보겠다. 8x8 pixel의 이미지가 있다고 가정해보자. 여기서 라벨은 0과 1이 존재한다. 즉 디지털 이미지이다. 아래를 살펴보자. 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 ..
-
지도학습 | 분류와 회귀Machine Learning/ML with Python Library 2024. 1. 29. 23:41
지도학습은 가장 널리, 성공적으로 사용되는 ML 방법중 하나이다. 이미 이전에 iris의 분류를 하는 어플리케이션을 만든것처럼, 지도 학습은 input과 output 샘플 데이터가 있고, 또다른 input의 output을 예측하고자 할 때 사용하게 된다. Training Data를 이용해서 ML 모델을 만들고, Testing Data를 이용해 모델을 검증하게 된다. 이 모델의 목표는, 이전에 본 적 없는 새로운 데이터에 대해 정확한 출력을 예측하는 모델을 만드는 것이다. 지도학습에는 분류(Classification)과 회귀(Regression)이 있다. 분류는 미리 정의된 여러 클래스 레이블(Class Label)중 하나를 예측하는것인데, iris 어플리케이션에서 3가지 꽃의 품종을 분류하는 예시를 다뤄..
-
ML Intro | Iris Analysis - Evaluating the ModelMachine Learning/ML with Python Library 2024. 1. 27. 22:06
지난번, 모델을 이용해 예측을 해봤다. 그렇다면 이 예측이 맞는지 아닌지 어떻게 파악할 수 있을까? 이런 지도학습(Supervised Machine Learning)에서 트레이닝 된 모델의 성능을 평가하는 과정은 꼭 필요하다. 그렇기 때문에 우리는 지난번 scikit-learn의 train_test_split 함수를 이용해서 Training 데이터와 Test데이터로 나눴다. 여기서 만들어진 test data를 이용해서 정확도를 계산하고 모델의 성능을 평가할 수 있다. y_pred = knn.predict(x_test) print("Prediction for Test Set:", y_pred) Prediction for Test Set: [2 1 0 2 0 2 0 1 1 1 2 1 1 1 1 0 1 1 0..