Study/AI 16

[AI][ML]앙상블(Ensemble)

이전 글에서도 어느정도 다뤘던 내용이지만 좀 더 다뤄 보기 위해 따로 작성하고자 한다. 앙상블(Ensemble) 조화 또는 통일 여러 개의 결정 트리(Decision Tree)를 결합하여 하나의 결정 트리보다 더 좋은 성능을 내는 머신러닝 기법 핵심은 여러 개의 약 분류기(Weak Classifier)를 결합하여 강 분류기(Strong Classifier)를 만드는 것 이를 통해 모델의 정확성이 향상된다. 학습법에는 배깅(Bagging)과 부스팅(Boosting)이 있다. + 보팅(Voting)과 스태킹(Stacking)도 있다고 한다. 배깅(Bagging) Bootstrap Aggregation의 약자 샘플을 여러 번 뽑아(Bootstrap) 각 모델을 학습시켜 결과물을 집계(Aggregation)하는..

Study/AI 2022.08.12

[AI][ML]랜덤 포레스트(Random Forest)

랜덤 포레스트 분류, 회귀 분석 등에 사용되는 앙상블 학습 방법의 일종 훈련 과정에서 구성한 다수의 결정 트리로부터 분류 또는 회귀 분석을 출력 포레스트 숲 결정트리 나무 나무가 모여 숲을 이룬다 즉, 결정 트리가 모여 랜덤 포레스트를 구성 훈련을 통해 구성해 놓은 다수의 나무들로부터 분류 결과를 취합해서 결론을 얻는 방식 몇몇의 나무들이 오버피팅을 보일 수는 있지만 다수의 나무를 기반으로 예측하기 때문에 그 영향력이 줄어들게 되어 좋은 일반화 성능을 보인다. 이처럼 좋은 성능을 얻기 위해 다수의 학습 알고리즘을 사용하는 걸 앙상블(ensemble) 학습법이라고 한다. 여러 결정 트리들이 내린 예측 값들 중 가장 많이 나온 최종 예측 값으로 결정 즉, 하나의 거대한 결정 트리를 만드는 것이 아닌 여러 개..

Study/AI 2022.08.12

[AI][ML]결정 트리(Decision Tree)

결정 트리 분류와 회귀 모두 가능한 지도 학습 모델 중 하나 의사 결정 규칙과 그 결과들을 트리 구조로 도식화한 의사 결정 지원 도구의 일종 3가지 종류의 노드로 구성 결정 노드(decision node): 사각형으로 표시 기회 노드(chance node): 원으로 표시 종단 노드(end node): 삼각형으로 표시 스무고개 하듯이 예/아니오 질문을 이어가며 학습 특정 기준(질문)에 따라 데이터를 구분하는 모델 한번의 분기 때마다 변수 영역을 두 개로 구분 맨 처음 분류 기준: Root Node 맨 마지막 노드: Terminal Node 혹은 Leaf Node 새로운 데이터가 들어오면 체크리스트(?)를 바탕으로 하나씩 질문하고 해당 답에 대한 다음 나무 줄기를 따라가다가 결국에는 '이건 어떤 레이블이겠구..

Study/AI 2022.08.11

[AI][ML]나이브 베이즈(Naive Bayes)

나이브 베이즈 분류(Naive Bayes Classification) 텍스트 분류에 사용됨으로써 여러 범주 중 하나로 판단하는 문제에 대한 대중적인 방법 일반적인 원칙에 근거한 여러 알고리즘들을 이용하여 훈련 베이즈 정리(Bayes' Theorem) 새로운 사건의 확률을 계산하기 전에 이미 일어난 사건을 고려하는 것을 전제로 하는 베이즈 통계의 근간 조건부 확률 P(A|B)는 사건 B가 발생한 경우 A의 확률을 나타낸다. weather_play.csv를 사용하여 실습 import pandas as pd data = pd.read_csv('D:/Ai/weather_play.csv') data # mapping dictionary 만들기 outlook_dic = {'overcast':0, 'rainy':1,..

Study/AI 2022.08.10

[AI][ML]SVM(Support Vector Machine)

SVM(서포트 벡터 머신) 분류와 회귀에 사용 두 카테고리 중 어느 하나에 속한 데이터의 집합이 주어졌을 때, SVM 알고리즘은 주어진 데이터 집합을 바탕으로 하여 새로운 데이터가 어느 카테고리에 속할지 판단하는 비확률적 이진 선형 분류 모델을 만듦 support vectors는 결정 경계와 가까이 있는 데이터 포인트들을 의미 이 데이터들이 경계를 정의하는 결정적인 역할을 함 데이터에 2개 속성만 있다면 결정 경계는 다음과 같은 간단한 선 형태가 될 것 속성이 3개로 늘어난다면 3차원으로 그려야 함 이 때의 결정 경계는 선이 아닌 평면임 속성의 개수가 늘어날수록 더 복잡해질 것이다. 결정 경계도 단순한 평면이 아닌 고차원이 될 것이며, 이를 초평면(hyperplane)이라고 부른다. 마진(Margin) ..

Study/AI 2022.08.10

[AI][ML]k-최근접 이웃 알고리즘(KNN, K-Nearest Neighbor)

k-최근접 이웃 알고리즘 분류와 회귀에 사용 분류: 출력은 소속된 항목, 객체는 k개의 최근접 이웃 사이에서 가장 공통적인 항목에 할당되는 객체로 과반수 의결에 의해 분류 회귀: 출력은 객체의 특성 값, k개의 최근접 이웃이 가진 값의 평균 k=3 일 때는 해당 데이터가 Class B인 보라색으로 분류됨 k=6 일 때는 해당 데이터가 Class A인 노란색으로 분류됨 즉, KNN은 k를 어떻게 정하냐에 따라 결과값이 바뀔 수 있음 k가 너무 작아도 안되고, 너무 커도 안됨 k의 dafault 값은 5이며, 일반적으로 홀수를 사용함 더 가까운 이웃일수록 더 먼 이웃보다 평균에 더 많이 기여하도록 이웃의 기여에 가중치를 주는 것이 유용 단순하기 때문에 다른 알고리즘에 비해 구현이 쉬움 훈련이 따로 필요하지 ..

Study/AI 2022.08.09

[AI][ML]Logistic Regression(로지스틱 회귀)

로지스틱 회귀 독립 변수의 선형 결합을 이용하여 사건의 발생 가능성을 예측하는 데 사용되는 통계 기법 종속 변수와 독립 변수간의 관계를 구체적인 함수로 나타내어 향후 예측 모델에 사용하는 것 선형 회귀 분석과는 다르게 종속 변수가 범주형 데이터를 대상으로 하며 입력 데이터가 주어졌을 때 해당 데이터의 결과가 특정 분류로 나뉘기 때문에 일종의 분류 기법으로도 볼 수 있음 회귀를 사용하여 데이터가 어떤 범주에 속할 확률을 0에서 1 사이의 값으로 예측하고 그 확률에 따라 가능성이 더 높은 범주에 속하는 것으로 분류해주는 지도 학습 알고리즘 데이터가 특정 범주에 속할 확률을 예측하기 위해 거쳐야 하는 단계 1. 모든 속성(feature)들의 계수(coefficient)와 절편(intercept)을 0으로 초기..

Study/AI 2022.07.31

[AI][ML]회귀(Regression)

회귀 실제 값과 예측 값의 차이를 최소화하는 식을 찾는 것 y=wx+b의 식에서 독립변수의 값에 영향을 미치는 회귀 계수의 최적의 값을 찾는 것 y = wx + b - w: 회귀 계수(cofficient) 독립변수 x가 1 증가할 때마다 종속변수 y는 w만큼 증가 → 직선의 기울기 - 절편(intercept): 독립변수가 모두 0일때 종속변수 y의 값 위의 식에서 독립변수 x = 0이면 y = b가 됨 MSE(평균제곱오차) MSE(Mean Squared Error)는 오차를 제곱한 값의 평균을 의미한다 오차는 알고리즘이 예측한 값과 실제 값의 차이를 의미하는 것으로, 알고리즘이 정답을 잘 맞출수록 MSE의 값은 작아진다. 경사하강법 Gradient Decent 점진적으로 반복적인 계산을 통해 파라미터 값..

Study/AI 2022.07.29

[AI][ML]상관계수

상관계수 산점도에서 점들이 얼마나 직선에 가까운지를 나타내는 척도 얼마나 직선적인 경향을 나타내는가를 수치로 표현 상관계수 공식 → 출처 링크 참고 상관계수 코드 예시 from numpy import mean from numpy import std from numpy.random import randn from numpy.random import seed #seed random number generator seed(1) x = 20 * randn(1000) + 100 y = x plt.scatter(x, y) plt.show() Qx = x - mean(x) Qy = y - mean(y) r = sum(Qx*Qy) / ((len(Qx) - 1) * std(x)*std(y)) r seed(1) x = 2..

Study/AI 2022.07.20