Machine Learning/ML with Python Library
-
지도학습 | 결정트리 (Decision Tree)Machine Learning/ML with Python Library 2024. 4. 3. 22:30
Decision Tree 만들기 결정트리(Decision Tree)는 분류와 회귀 문제에 널리 사용하는 모델이다. 기본적으로 결정 트리는 결정까지 Yes/No 질문을 이어 나가면서 학습한다. 마치 스무고개와 같다. 만약 포켓몬을 맞추는 문제라고 해보자. 뮤, 아르세우스, 피카츄, 파이리 중 두가지 질문을 통해 정답을 맞출 수 있다. 이런 방법을 이용해서 지도 학습 방식으로 데이터로부터 학습할 수 있다. Decision Tree를 만들어보자. 2차원 데이터셋을 분류하는 Tree이다. 이 데이터셋은 각 클래스에 데이터 포인트가 50개씩 있고, 반달 두개가 포개진 것 같은 모양을 하고 있다. 결정 트리를 학습한다는 것은 정답에 가장 빨리 도달하는 Yes/No질문 목록을 학습하는 것이다. ML에서는 이런 질문을..
-
지도학습 | 나이브 베이즈 분류기 (Naive Bayes Classification)Machine Learning/ML with Python Library 2024. 4. 3. 22:05
Naive Bayes Classification는 Linear Model과 매우 유사하다. Logistic Regression이나 LinearSVC같은 Linear Classification보다 훈련 속도가 바른 편이지만, 대신 일반화(Generalization) 성능이 조금 뒤진다. 일반화(Generalization)는 모델이 훈련 데이터에 대해서뿐만 아니라, 본 적 없는 새로운 데이터에 대해 얼마나 잘 예측하는지를 나타내는 성능의 척도이다. 나이브 베이즈 분류기는 각 특성을 개별로 취급해서 파라미터를 학습 시키고, 클래스별 통계를 단순하게 취합한다. scikit-learn에서는 GaussianNB, BernoulliNB, MultinomialNB 이렇게 세가지다. GaussianNB는 연속적인 어떤 ..
-
지도학습 | 선형모델의 장단점과 매개변수Machine Learning/ML with Python Library 2024. 4. 2. 22:26
선형 모델의 주 매개변수는 Regression 모델에서는 alpha였고, Classification Model이었던 LinearSVC와 LogisticRegression에서는 C였다. alpha값이 클수록, C값이 작을수록 모델은 단순해진다. 특히, Regression 모델에서 이 매개변수를 조정하는 일은 매우 중요하다. 또한 규제를 L1, L2중 어떤것을 사용할지 정해햐아하는데, 중요한 특성이 많이 없을땐 L1을, 그렇지 않으면 L2를 사용한다. L1은 몇가지 특성만 사용하기 때문에, 해당 모델에 중요한 특성과 효과를 이해하기 쉽다. Linear 모델은 학습 속도도 예측도 빠르다. 또한, 예측이 어떻게 만들어 지는지 비교적 쉽게 이해할 수 있다. Linear 모델은 특성이 많을 때 잘 작동하는데, 다른..
-
지도학습 | 다중클래스 분류용 선형 모델 (MultiClass Classification Linear Model)Machine Learning/ML with Python Library 2024. 4. 2. 22:18
Logistic Regression을 제외한 많은 Linear Classification 모델은 Binary Classification만을 지원한다. 즉, multiclass를 지원하지 않는다. 이 binary알고리즘을 multiclass로 확장하기 위해서는 가장 보편적인 기법, one vs rest, 즉 일대다 방식을 사용하면 된다. 각 클래스를 다른 모든 클래스와 구분하도록 binary classification 모델을 학습시키는것인데, 결국 클래스 수만큼 binary classification 모델이 만들어진다. 모든 결과값 중, 가장 높은 점수를 내는 classification의 클래스를 예측값으로 선택하면 된다. 세개의 클래스를 가진 간단한 데이터셋에, 이 일대다 방식을 적용해보자. # !pip..
-
지도학습 | 분류용 선형 모델 (Linear Classification Model)Machine Learning/ML with Python Library 2024. 4. 1. 22:40
선형 모델은 Classification 문제에도 많이 사용된다. 먼저, binary classification을 살펴보자. 수식은 다음과 같다. y = w0⋅x0 + w1⋅x1 + ... + wp⋅xp + b > 0 가장 널리 알려진 두 개의 선형 알고리즘은 Logistic Regression(회귀 알고리즘이 아니다)과 Support Vector Machine(LinearSVC)이다. forge 데이터셋을 사용해서 LogisticRegression과 LinearSVC 모델을 만들고, 이 모델이 만든 결정경계를 그림으로 나타내보자. # !pip install mglearn import mglearn from sklearn.linear_model import LogisticRegression from skl..
-
지도학습 | 라소 회귀 (Lasso Regression)Machine Learning/ML with Python Library 2024. 4. 1. 21:22
선형 회귀에 규제를 적용할 때, 지난번 공부한 Ridge의 대안으로 Lasso가 있다. Ridge와 마찬가지로, Lasso도 계수를 0에 가깝게 만들려고 하는데 방식이 조금 다르다. 이 규제를 L1 Regulation이라고 한다. Lasso를 사용할 때, 어떤 계수는 실제로 정말 0이 된다. 즉, 완전하게 제외되는 특성이 생기게 된다. Feature Selection을 이 회귀를 사용하면 자동으로 함께 처리된다. 이전의 보스턴 주택 가격 데이터셋에 Lasso를 적용해보자. # !pip install mglearn import mglearn from sklearn.linear_model import Lasso from sklearn.model_selection import train_test_split i..
-
지도학습 | 리지 회귀 (Ridge Regression)Machine Learning/ML with Python Library 2024. 3. 30. 14:02
리지회귀는 기본 선형 회귀 방식 대신 가장 널리 쓰이는 모델이다. 리지 회귀에서 가중치, weight(w) 서택은 훈련 데이터를 잘 예측하기 뿐만 아니라, 이 weight의 절대값을 가능한 작게 만드는 목적을 갖고 모델을 만든다. 다시 말해, 모든 w가 0에 가깝게 되길 원한다. 즉, 모든 특성이 주는 영향을 최소한으로 만드는 것이다. 이런 제약을 규제, regulation이라고 한다. 규제란, 과대 적합이 되지 않도록 모델을 강제로 제한한다는 의미이다. Ridge Regression에 사용하는 규제 방식을 L2 Regulation이라고 한다. Ridge and Alpha Ridge Regression은 linear_model.Ridge에 구현되어 있다. 코드로 확인해보자. 먼저, 필요한 라이브러리 설치..
-
지도학습 | Ordinary Least Squares (최소제곱법)Machine Learning/ML with Python Library 2024. 3. 25. 20:31
Linear Regression 또는 Ordinary Least Squares(OLS, 최소제곱법)은 가장 간단하면서도 오래된 Regression Linear Algorithm이라고 한다. Linear Regression은 prediction과 training set target들의 평균제곱오차(Mean Squared Error)를 최소화하는 파라미터 w와 b를 찾는다. 여기서, 평균 제곱오차는 prediction과 target값의 차이를 제곱하고 더한 후에 샘플 개수로 나눈것이다. mglearn의 데이터 샘플을 이용해서 LinearRegression 모델을 만들어보자. from sklearn.linear_model import LinearRegression from sklearn.model_selec..