Machine Learning/ML with Python Library
-
지도학습 | Linear Regression (선형회귀)Machine Learning/ML with Python Library 2024. 3. 25. 20:07
회귀의 경우, 일반화된 예측 함수는 다음과 같다. y = w0x0 + w1x1 + w2x2 + ... + wpxp + b 여기서 w와 x는 특성의 갯수만큼 생기며, 위의 예제에서는 p+1개의 특성이 있다고 생각할 수 있다. 특성이 한개인 Linear Regression 모델은 다음과 나타낼 수 있다. y = w0x0 + b mglearn예시를 가지고 Linear Regression에서 위에서 정의한 선을 어떻게 그려내는지 확인해보자. !pip install mglearn import mglearn mglearn.plots.plot_linear_regression_wave() 위와같은 Linear가 그려졌고, w(weight)과 b(bias)값은 아래와 같이 측정되었다. w[0]: 0.393906 b: -..
-
지도학습 | K-NN Regression (최근접 이웃 회귀)Machine Learning/ML with Python Library 2024. 3. 24. 21:05
KNN을 이용해서 Regression문제도 풀어낼 수 있다. KNN을 이용하게 되면, 예측값은 가장 가까운 이웃의 타겟값이 된다. !pip install mglearn import mglearn mglearn.plots.plot_knn_regression(n_neighbors=1) 이렇게 하면, 가장 가까운 이웃 1개를 골라서 그것이 결과값이 된다. 결과는 다음과 같았다. 각 인풋(test data)별로, 가장 가까운 데이터(training data/target)을 찾아내고, 그 타겟을 결과값으로(test prediction) 나타내었다. 여기서 K-NN은, 1-NN이었는데, 코드를 조금 수정해서 K를 1보다 큰 숫자를 사용해 회귀분석을 할 수 있다. mglearn.plots.plot_knn_regres..
-
지도학습 | 알고리즘 - KNN KNeighborsClassifier 분석Machine Learning/ML with Python Library 2024. 2. 7. 00:01
2D 데이터셋같은 경우, 모든 테스트 포인트들의 예측을 xy 평면에 그려볼 수 있다. 어떤지점을 어떤 Class로 예측하는지 한눈에 보기 좋다. 그렇게 색을 칠하면, 알고리즘이 클래스를 1과 0으로 나누는 결정 경계(Decision Boundry)를 만들어내는것을 볼 수 있다. 이전에 사용했던 데이터로 이 결정 경계를 그려보자. 1-NN, 3-NN, 그리고 9-NN을 그려서 특징을 파악해보았다. 먼저, 필요한 패키지를 설치 후 Import 했다. !pip install mglearn import mglearn import matplotlib.pyplot as plt 그리고 이웃의 갯수가 1, 3, 9일때마다 어떤 Decision Boundry가 그려지는지 파악했다. from sklearn.model_se..
-
지도학습 | 알고리즘 - 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 세트에만 정확한 모델이 되어버릴 수 있다. 예를 들어보자. 초보 데이터 과학자가 요트를 구매한 고객과 구매 의사가 없는 고객들의 데이터를 수집했고, 이를 이용해 누가 타겟 요트 바이어가 될지 예측한다고 해보자. 관심 없는 사람에게는 괜히 귀찮게 하지 않고, 실제 관심이 있거나 구매할 것 같은 고객에게만 이메일을 보내는 전략..
-
지도학습 | 분류와 회귀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..