728x90 Drawing (AI)/MachineLearning27 Udemy - 머신러닝의 모든 것 (Naive Bayes) Bayes theorem (베이즈 정리) 베이즈 정리는 데이터라는 조건이 주어졌을 때의 조건부확률을 구하는 공식이다. 베이즈 정리를 쓰면 데이터가 주어지기 전의 사전확률값이 데이터가 주어지면서 어떻게 변하는지 계산할 수 있다. 따라서 데이터가 주어지기 전에 이미 어느 정도 확률값을 예측하고 있을 때 이를 새로 수집한 데이터와 합쳐서 최종 결과에 반영할 수 있다. 데이터의 개수가 부족한 경우 아주 유용하다. 데이터를 매일 추가적으로 얻는 상황에서도 매일 전체 데이터를 대상으로 새로 분석작업을 할 필요없이 어제 분석결과에 오늘 들어온 데이터를 합쳐서 업데이트만 하면 되므로 유용하게 활용할 수 있다. 베이즈 정리의 식은 아래와 같이 쓸 수 있다. 𝑃(𝐴|𝐵): 사후확률(posterior). 사건 B가 발생한 .. 2023. 6. 20. Udemy - 머신러닝의 모든 것 (Kernel SVM - 2) Social Network Ads 같은 데이터에 대해 kernel SVM모델을 만들어보자. 이전에 만든 SVM모델과 다른것은 하나도 없고 kernel을 rbf로 바꾸어주면된다. # Support Vector Machine (SVM) # Importing the libraries import numpy as np import matplotlib.pyplot as plt import pandas as pd # Importing the dataset dataset = pd.read_csv('Social_Network_Ads.csv') X = dataset.iloc[:, :-1].values y = dataset.iloc[:, -1].values # Splitting the dataset into the Tra.. 2023. 4. 30. Udemy - 머신러닝의 모든 것 (Kernel SVM - 1) Kernel Support Vector Machine 우선 간단한 1차원 상황부터 보면 다음과 같은 경우에는 선형적인 선을 통해 데이터를 분류할 수 없다. 따라서 f = (x-5)^2 함수에 값을 얹어서 선형적으로 분류할 수 있도록 다음과 같이 바꾼다. 이제 linear한 점선으로 데이터가 분리됨을 볼 수 있다. 이를 좀더 고차원에서 살펴보면 다음과 같다. 살펴보면 z라는 새로운 차원이 생겼고 데이터들은 Hyperplane으로 나뉘어짐을 볼 수 있다. 추후에 다시 2차원으로 projection을 하면 다음과 같이 비선형 분리기가 생김을 알 수 있다. 그러나 이렇게 고차원에서 연산을 진행하고 다시 저차원으로 내리는 과정은 컴퓨터에게도 굉장히 버거운 연산이라 속도면에서 단점이 존재할 수 있다. 따라서 더 효.. 2023. 4. 26. Udemy - 머신러닝의 모든 것 (SVM) Support Vector Machine 다음과 같이 두개의 그룹으로 나누어진 데이터가 있다고 가정할때 다양한 선을 그어서 그 경계를 설정할 수 있다. 이때 SVM은 아래와 같이 양쪽 그룹에 붙혀서 그릴 수 있는 한계선 간의 거리가 최대치가 되는 경우(Maximum Margin)를 찾는다. 위 그림의 개념들을 좀더 자세히 보면 Maximum Margin을 결정하는 그룹의 끝에 위치하게 되는 data를 Support Vectors라고 부른다. 위의 두 Support Vectors 점들이 결국 SVM 알고리즘을 결정하는 결정적 요인이 된다. Maximum Margin을 기준으로 중심에 그려지는 선은 Maximum Margin Hyperplane이라고 불린다. Hyperplane은 초평면인데 선이 평면이라고 .. 2023. 4. 2. Udemy - 머신러닝의 모든 것 (K-NN) K-Nearest Neighbors KNN알고리즘은 다음과 같이 분류되어있는 데이터 사이의 새로운 데이터를 특정 결정짓는 알고리즘이다. 알고리즘의 과정을 살펴보자. STEP 1: K의 숫자를 고른다. 이때 k는 알고리즘 안에 넣을 이웃의 수이다. 가장 흔한 디폴트 값은 5이다. STEP 2: K개의 가장 가까운 이웃 데이터를 찾는다. 이는 어떠한 거리 방식을 이용해도 괜찮지만 보통 유클리드 거리를 이용한다. STEP 3: 발견한 K개의 이웃들이 포함된 카테고리를 조사하여 각 카테고리에 포함된 이웃 수를 센다. STEP 4: 새로운 데이터를 가장 많은 이웃이 포함된 카테고리에 포함시킨다. 위 그림을 보면 k=5일때 가장 가까운 이웃으로 선정된 5개의 데이터중 3개는 Category A, 2개는 Catego.. 2023. 3. 31. Udemy - 머신러닝의 모든 것 (로지스틱 회귀) Logistic Regression 다양한 회귀들에 대해서 배웠다. 그러나 다음과 같은 경우에 어떤식으로 회귀를 진행해야할지 전혀 감이 잡히지 않는다. 원래알고있던 회귀를 이용하면 굉장히 이상한 결과가 나온다. 사실 이런 데이터는 기업에서 본인들의 상품을 선택한 사람에 대한 데이터와 같이 yes or no인 겨우 많이 보일 수 있는 데이터인데 지금까지 배운 지식으로는 어떤 모델을 써야할지 판단할 수 없다. 이때 아래의 sigmoid함수와 수학적 식을 이용하여 만들어진 logistic regression function을 이용할 수 있다. Customer Prediction 고객의 나이와 추정수입을 통해 제품을 구매할 손님인지 구매하지 않을 손님인지 예측을 해보도록 하자 이는 실제 세계에서도 있을 법한 모.. 2023. 3. 26. Udemy - 머신러닝의 모든 것 (회귀 모델 선택) 최적 모델 선택 데이터 전처리과정은 생략하고 빠진 데이터나 범주 데이터가 없는 완전한 데이터셋을 이용하여 진행하도록한다. 이는 이전에 시계열 데이터 분석 책에서 다루었던 UCI 머신 러닝 저장소의 고전적인 데이터이다. 약 만개의 데이터로 이루어져있는 복합 발전소 데이터이다. 첫번째부터 엔진온도, 배기진공, 주변기압, 상대습도라는 독립 변수(features)와 에너지라는 종속 변수로 이루어진 데이터이다. Source Code 이전까지 배운 다양한 회귀 코드들의 끝에 R squared를 평가하는 코드를 추가하여 어떤 방식의 회귀가 가장 효율적인지 확인한다. from sklearn.metrics import r2_score r2_score(y_test, y_pred) 결과 # Multiple_linear [[.. 2023. 3. 23. Udemy - 머신러닝의 모든 것 (회귀 모델 성능 평가) R Squared R Squared는 아래와 같이 회귀선 기준으로 계산한 잔차제곱합(SSres)과 평균Y값을 기준으로 계산한 총제곱합(SStot)으로 계산된다. 위의 그래프와 식을 보면 알 수 있듯이 총제곱합은 평균값에 의해 결정된 고정값이므로 R Squared값을 1에 가깝게 만들기 위해 잔차제곱합을 최소화하려고 노력할 것이다. Adjusted R Squared R Squared의 대표적인 문제점은 새로운 feature가 들어올때 발생한다. 예를들어 아래 그림과 같이 x1,x2 feature가 존재하던 다항회귀모델에 새로운 x3 feature가 들어오면 문제가 발생한다. y값에는 변화가 없으니 총제곱합은 일정할텐데 새로운 변수가 들어와 SSres값을 높여서 R Squared값을 높이니 모델은 x3의 가.. 2023. 3. 20. Udemy - 머신러닝의 모든 것 (Random Forest Regression) Random Forest 랜덤 포레스트는 앙상블 학습의 한 버전인데 앙상블 학습에는 그라데이션 부스팅 같은 다른 버전들도 있다. 앙상블 학습은 여러 알고리즘이나 같은 알고리즘을 여러개 조합하여 훨씬 더 강력한 알고리즘을 만드는 것을 의미한다. 이때 랜덤 포레스트는 여러 개의 의사 결정 트리를 결합한 앙상블 기법을 이용했다. 랜덤 포레스트를 단계별로 살펴보자. STEP1: Training set에서 랜덤한 K 데이터 포인트들을 고른다. STEP2: 고른 데이터들에 연관된 의사 결정 트리를 만든다. STEP3: 몇개의 트리를 만들지 결정하고 STEP1,2를 반복하여 여러개의 트리를 만든다. STEP4: 학습된 각각의 트리에서 결과를 받아서 예측 값을 도출한다. (적어도 500개정도의 트리, 즉 500개의 결.. 2023. 3. 18. 이전 1 2 3 다음 728x90