dir()
: 객체가 갖고 있는 att, method를 알려줌Numpy array
자체로 pd.Series
같이 컬럼으로 붙여넣어도 됨train_test_split(random_state=)
random_state값이 없으면 뒷부분부터 차례대로 test 셋으로 만드나보다.(그러면 정렬된 label의 경우 거의 1개의 클래스만 갖게 돼서 안 좋음)예측값
으로 리턴함예측값
의 총 개수(terminal node가 3개면 데이터가 1,000개여도 값이 딱 3종류 뿐임)분류 = 최빈값, 회귀 = 평균
을 반환함8) partitioning 방법
: 컬럼(특징)별로 모두 다 경우의 수로 엔트로피를 구하고 각 컬럼별 나누는 지점을 찾아간다.
9) 가지치기(pruning)
: full tree(순도 100%)가 되면 overfitting이 일어나기 쉬움
: 그래서 적절한 수준에서 node를 몇 개 묶어줌
: 이름은 pruning(잘라버림)이지만, 실제로는 merging 함
독립조건
을 만들어주는 거란다.1) 건강의 위험도를 예측하기 위해서는 많은 요소를 고려 성별, 키, 몸무게, 지역, 운동량, 흡연유무, 음주 여부, 혈당, 근육량, 기초 대사량 등 수많은 요소가 필요
2) Feature가 30개라 했을 때 30개의 Feature를 기반으로 하나의 결정 트리를 만든다면 트리의 가지가 많아질 것이고, 이는 오버피팅의 결과를 야기
3) 30개의 Feature 중 랜덤으로 5개의 Feature만 선택해서 하나의 결정 트리 생성
4) 계속 반복하여 여러 개의 결정 트리 생성
5) 여러 결정 트리들이 내린 예측 값들 중 가장 많이 나온 값을 최종 예측값으로 지정
6) 이렇게 의견을 통합하거나 여러 가지 결과를 합치는 방식을 앙상블(Ensemble)이라고 함
7) 하나의 거대한 (깊이가 깊은) 결정 트리를 만드는 것이 아니라 여러 개의 작은 결정 트리를 만드는 것
8) 분류 : 여러 개의 작은 결정 트리가 예측한 값들 중 가장 많은 값, 회귀 : 평균
[3 if i == 3 else 0 for i in digits_label]
맞음[3 for i in digits_label if i == 3 else 0]
오류train_test_split(data=)
에 label이 포함된 df를 넣으면 어떻게 될까... 정말 100% 정답이 나올까?