지도학습(9)
-
머신러닝 - 12. 단순 선형 회귀 (Simple Linear Regression)
단순 선형 회귀 단순 선형 회귀(Simple Linear Regression)는 하나의 특성과 연속적인 타깃 사이의 관계를 모델링한다. 이를 수식으로 나타내면 위와 같다. 흔히 보던 일차방정식의 수식과 다를 것이 없다. 즉 특성과 타깃의 관계를 가장 잘 나타내는 직선 그리와 같다. 위 수식을 굳이 풀어쓰자면, b는 y 절편을 뜻하고 w1은 가중치를 뜻한다. 쉽게 생각하여, 단순 선형 회귀의 목적은 타깃을 가장 잘 예측하는 적절한 w와 b 값을 찾는 것이다. 단순 선형 회귀 모델의 학습 위 그림 1.A에서 세가지 직선 A, B, C 중에서 어느 직선이 타깃을 가장 잘 예측한다고 생각하는가. 샘플들의 중간을 가로지르는 B가 특성과 타깃 사이의 관계를 가장 잘 나타낸다고 여길 것이다. 어림짐작이 아닌, 수식으..
2024.01.22 -
머신러닝 실습 - 4. 랜덤 포레스트로 붓꽃 데이터 분류
이 글에서는 Scikit-learn의 sklearn 라이브러리를 사용하여 랜덤 포레스트 모델을 훈련하고, 파라미터들을 조절해가며 성능을 비교한다. 결정 트리에 관한 이론적 내용을 알고 싶다면 이곳으로. 코드 (나머지 시행에서는 올리지 않음) from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier import matplotlib.pyplot as plt from sklearn.metrics import accuracy_score iris = datasets.load_iris() X = iris.data y = iris.tar..
2024.01.17 -
머신러닝 - 11. 랜덤 포레스트(Random Forest)
랜덤 포레스트 랜덤 포레스트(Random Forest)는 분류/회귀 분석에 사용되는 결정 트리의 앙상블(Ensemble)이다. 결정 트리의 과대적합과 같은 문제점을 해결하기 위한 전략으로써, 랜덤 포레스트 모델은 여러 개의 의사 결정 트리를 조합한 모델이다. 좀 더 정확히는 다수의 결정 트리를 만들어, 이들로부터 평균을 내는 방식으로 동작한다. 개개의 트리는 분산이 높은 위험이 있으나, 앙상블을 통해 성능을 높이고 과대적합의 위험을 줄일 수 있다. 랜덤 포레스트는 앙상블 방법 중 배깅(Bootstrap Aggregation, Bagging)을 적용한다. 배깅에 간단히 설명하자면, 기존의 학습 데이터로부터 랜덤 하게 '복원추출'하여 동일한 사이즈의 데이터셋을 여러 개 만들어 앙상블을 구성하는 여러 모델을 ..
2024.01.17 -
머신 러닝 실습 - 3. 결정 트리로 붓꽃 데이터 분류
이 글에서는 Scikit-learn의 sklearn 라이브러리를 사용하여 결정 트리 모델을 훈련하고, 파라미터들을 조절해가며 성능을 비교한다. 결정 트리에 관한 이론적 내용을 알고 싶다면 이곳으로. 시행 1 1.1. 파라미터 불순도 트리 최대 깊이 랜덤 스테이트 리프 노드 최소 샘플 수 Gini Impurity 5 1 3 1.2. 코드 (나머지 시행에서는 올리지 않음) from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier from sklearn import tree import matplotlib.pyplot as plt fro..
2024.01.16 -
머신러닝 - 10. 결정 트리 (Decision Tree)
결정 트리 결정 트리는 의사 결정 규칙과 그 결과들을 트리 구조로 도식화한 의사 결정 지원 도구의 일종이다. 이는 회귀와 분류 모델 모두에 사용할 수 있다. 결정 트리라는 이름에서 알 수 있듯, 일련의 질문에 대한 결정을 통해 데이터를 분해하는 모델이다. 위 그림 1을 보면 쉽게 이해할 수 있다. 특성에 대한 질문을 통해 포유류와 비 포유류로 나누고, 다시 나머지들에 대한 질문이 진행된다. 스무고개 같은 느낌으로 진행된다 할 수 있다. 이러한 단계에서 가장 처음 노드인 '포유류인가?'는 루트 노드(Root Node), 가장 말단에 있는 '악어', '강아지'등은 리프 노드(Leaf Node) 내지는 터미널 노드(Terminal node)라고 부른다. 중간에 있는 분기점들인 '조류인가', '사람보다 큰가'등..
2024.01.16 -
머신러닝 - 9. K-최근접 이웃 알고리즘(K-Nearest Neighbor, KNN)
k-NN 이란 KNN이라고 줄여 부르는 K-최근접 이웃(K-Nearest Neighbor)은 지도 학습 알고리즘으로써, 분류나 회귀에 이용할 수 있는 비모수 모델(Nonparametric Model)이다. 이 알고리즘의 동작 원리는 매우 간단하다. 위 그림 1을 예시로 들어 KNN 알고리즘에 대해 설명한다. 어떤 데이터들은 푸른색으로, 나머지 데이터들은 붉은색으로 클래스를 나눠 식별되었다. 그렇다면 현재 식별되지 않은, '?'로 표시된 데이터는 푸른색으로 식별해야 되는가, 붉은색으로 식별해야 되는가. 우리는 직관적으로 '?' 데이터는 푸른색 데이터일 것이라고 예측할 수 있다. 왜 그러한가? '?' 데이터 주위에 있는 데이터들이 모두 푸른색 데이터이기 때문이다. KNN은 바로 이러한 접근에서 출발하였다. ..
2024.01.15