기본 콘텐츠로 건너뛰기

라벨이 node인 게시물 표시

[matplotlib]quiver()함수

[ML] 결정트리(Decision Tree) 모델

결정트리(Decision Tree) 모델 결정트리(decision tree) 모델은 분류 및 회귀에 사용되는 비모수적 지도학습방법으로 데이터의 특징들에서 추론된 규칙들에 의해 분류하여 예측값을 반환합니다. klearn.tree.DecisionTreeClassifier() 클래스를 사용하여 모델을 생성합니다. 클래스이 인수는 다음과 같습니다. max_depth: 분류 단계를 지정, 기본값은 min_sample_split에 지정된 수 또는 분류된 객체의 entropy가 최소가 될때까지 분류가 진행 min_sample_split: 분류된 그룹의 데이터수로 기본값은 2, 이에 적합된 노드에서 학습은 종료됩니다. max_feature: 최적의 분류를 찾을 때 고려되는 특징의 수, 기본값은 none random_state: random_seed의 역할 다음은 make_classification() 함수를 적용하여 생성한 가공 데이터 셋에 대해 생성한 결정트리모델입니다. import numpy as np import pandas as pd from sklearn.datasets import make_classification from sklearn.preprocessing import StandardScaler from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import train_test_split from sklearn import metrics import matplotlib.pyplot as plt import seaborn as sns X1, y =make_classification(n_samples=100, random_state=41) X=X1[:, :2] X.shape, y.shape ((100, 2), (100,)) clf=DecisionTreeClassifier().fit(X, y) pred=clf.predict(X) acc=me...

의사결정트리(Dicisions Tree)

의사결정트리(Dicisions Tree) 의사 결정 트리는 이진 규칙 집합을 사용하여 대상 값을 계산하는 예측 모델이며 각 개별 트리는 분기, 노드 및 잎이 있는 상당히 단순한 모델입니다. 용어(terminlogy) root node: 전체 모집단 또는 샘플을 나타내며 두 개 이상의 동종 세트로 더 나뉩니다. splitting: 노드를 두 개 이상의 하위 노드로 나누는 프로세스입니다. Decicion Node: 하위 노드가 추가 하위 노드로 분할되면 결정 노드라고 합니다. Leaf/terminal node: 분할되지 않는 노드를 리프 또는 터미널 노드라고 합니다. prunning(가지치기): 의사결정 노드의 하위 노드를 제거할 때 이 프로세스를 가지치기라고 합니다. 분열의 반대 과정이라고 할 수 있습니다. Branch/Sub-tree(분기 / 하위 트리): 전체 트리의 하위 섹션을 분기 또는 하위 트리라고 합니다. Parent and Child Node(상위 및 하위 노드): 하위 노드로 분할된 노드를 하위 노드의 상위 노드라고 하는 반면 하위 노드는 상위 노드의 하위 노드입니다. 그림 1. 의사결정트리 root node에서 질문에 의해 True/False로 구분합니다. 이 과정을 계속하면 결과적으로 leaf node에 도달하게 되며 단일예측이 가능하게 됩니다. 의사 결정 트리는 분류 및 회귀 문제에 사용할 수 있는 지도 머신 러닝 알고리즘 중 하나로서 모델은 훈련 데이터에서 추출한 결정 규칙을 기반으로 합니다. 회귀 문제에서 모델은 클래스 대신 값을 사용하고 평균 제곱 오차(MSE)는 결정 정확도를 위해 사용됩니다. 그러나 의사 결정 트리 모델은 일반화에 좋지 않고 훈련 데이터의 변화에 민감합니다. 훈련 데이터 세트의 작은 변화는 모델 예측 정확도에 영향을 미칠 수 있습니다. Scikit-lea...