분류(6)
-
머신러닝 실습 - 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 -
머신러닝 - 8. 서포트 벡터 머신(Support Vector Machine, SVM)
서포트 벡터 머신이란 서포트 벡터 머신(Support Vector Machine, 이하 SVM)은 주어진 데이터 집합을 바탕으로, 새로운 데이터가 어느 카테고리에 속하는지 판단하는 이진 선형 분류 모델을 만드는 알고리즘이다. 퍼셉트론이나, 아달린, 로지스틱 회귀등과의 차이점은 최적화 대상으로 마진(Margin)을 최대화한다는 것이다. 이에 대해 좀 더 자세히 알아보면 아래와 같다. 선형 분류 모델은 클래스를 구분하는 초평면(결정 경계)으로 표현되는데, 이 초평면에 가장 가까운 훈련 샘플 사이의 거리를 마진이라 한다. 다시 말해 SVM이 마진을 최대화 한다는 것은, 앞서 말한 초평면과 가장 가까운 훈련 샘플 사이의 거리를 최대화한다는 이야기이다. 위의 그림 1.a에서 세가지 초평면 중 어느 것이 가장 적절..
2024.01.15 -
머신러닝 - 7. 로지스틱 회귀(Logistic Regression)
로지스틱 회귀란 로지스틱 회귀(Logistic Regression)는 종속 변수와 독립 변수 간의 관계를 구체적인 함수로 나타내는 모델이다. 좀 더 자세히 설명하자면 수치형 설명변수 X와 연속형 숫자로 이루어진 종속변수 Y 간의 관계를 선형으로 가정한다. 구현하기 쉽고 선형적으로 구분되는 클래스에 뛰어난 성능을 내는 분류 모델이다. 이때, 독립 변수와 종속 변수가 각각 1개인 경우 단순 선형 회귀라고 한다. 기본적으로 이진 분류를 위한 선형 모델이지만(클래스 레이블이 2개), 이 이상의 범주를 가지는 문제는 다항 로지스틱 회귀(Multinomial Logistic Regression)나 소프트맥스 회귀(Softmax Regression)으로 손쉽게 다중 클래스 설정으로 일반화할 수 있다. 로지스틱 회귀는..
2024.01.11