본문 바로가기

공부/R & Python60

12-3. 랜덤포레스트 (Random Forest) 12-3. 랜덤포레스트 (Random Forest) 1) 랜덤포레스트 (Random Forest) - 모형설명 - 랜덤포레스트 (Random Forest) - 2001년에 Leo Breiman에 의해 제안된 기법 의사결정나무의 단점(과적합)을 개선한 알고리즘 - Ensemble 기법을 사용한 모델로서 주어진 데이터로 리샘플링을 통해 다수의 의사결정나무를 만든 다음, 여러 모델의 예측 결과들을 종합해 정확도를 높이는 방법 training data로부터 표본의 크키가 n인 bootstrap sample을 추출 -> tree모형 구성 (tree1, tree2, ... treek) -> 각 모델 tree들의 앙상블 결과를 출력 - Bagging(Bootstrap Aggregating) - 전체 데이터에서 학습데.. 2020. 3. 4.
11-2. 의사결정나무 (Decision Tree) 2 11-2. 의사결정나무 (Decision Tree) 2 2) 의사결정나무 - rpart 패키지 - 의사결정나무 실행패키지 : rpart, party 패키지 (tree패키지 외 사용) install.packages("rpart") install.packages("party") library(rpart) library(party) - 의사결정나무 함수 : rpart (종속변수~x1+x2+x3+x4, data= ) cl1 데이터에 따라 부가적인 가지치기가 필요할 수도 있음 *tree패키지에서 pruning한 결과와 동일 - rpart패키지는 과적합의 우려과 있으므로 pruning을 해줘야 함(iris의 경우 필요없음) - printcp에서 xerror(cross validation error)의 값이 최소가 .. 2020. 3. 4.
12-1. 의사결정나무와 랜덤 포레스트-의사결정나무 (Decision Tree) 1 12. 의사결정나무와 랜덤 포레스트 12-1. 의사결정나무 (Decision Tree) 1 1) 의사결정나무 (Decision Tree) - 의사결정나무 (Decision Tree) 기계학습 중 하나로 의사결정 규칙을 나무 형태로 분류해나가는 분석 기법 분석에 있어 가장 중요한 변수가 먼저 선택됨(root node) 분류 기준값은 분순률을 최소화하도록 정해짐 - 분석 과정이 직관적이고 이해하기 쉬움 - 연속성/범주형 변수를 모두 사용할 수 있음 - 분지규칙은 불순도를 최소화 시킴 범주들이 섞여있는 정도 Step 1 : tree 형성 (Growing tree) -> 과적합 문제 Step 2 : tree 가지치기 (pruning tree) Step 3 : 최적 tree로 분류 (classification) .. 2020. 3. 4.
11-3. 서포트벡터머신 3 (Support Vector Machine) 11-3. 서포트벡터머신 3 (Support Vector Machine) 1) Breast Cancer 데이터 설명 - Breast Cancer Wisconsin (Diagnostic) Data Set 세침홉인 세포검사를 통해 얻은 683개의 유방조직의 9개 특성을 나타냄 자료 출처 : UCI Machine Learning Repository 2) 서포트벡터머신 패키지와 함수 - 서포트벡터머신을 수행하기 위한 패키지 : e1071 - 오분류율 교차표 생성을 위한 패키지 : caret cancer 2020. 3. 4.
11-2. 서포트벡터머신 2 (Support Vector Machine) 11-2. 서포트벡터머신 2 (Support Vector Machine) 1) 서포트벡터머신 (kernel 함수) - 커널이란? - 서포트벡터머신을 수행하기 위한 패키지 : e1071 - 오분류율 교차표(confusion matrix) 생성을 위한 패키지 : caret library (e1071) install.packages("caret") library(caret) - Iris 데이터 (학습데이터와 검증데이터의 분할) set.seed(1000) N=nrow(iris) tr.idx=sample(1:N, size=N*2/3, replace=FALSE) 데이터분할 (학습데이터 2/3, 검증데이터 1/3) y=iris[,5] train=iris[tr.idx,] test=iris[-tr.idx,] train(.. 2020. 3. 4.
11-1. 서포트벡터머신 1 (Sipport Vector MAchine) 11-1. 서포트벡터머신 1 (Sipport Vector MAchine) 1) 서포트벡터머신 (Support Vector Machine) - 선형 SVM - 비선형 SVM 2) iris 데이터 설명 - iris 데이터 (iris.csv) 3) 서포트벡터머신 패키지와 함수 - 서포트벡터머신을 수행하기 위한 패키지 : e1071 - 서포트벡터머신 함수 : svm install.packages("e1071") library (e1071) 4) 서포트벡터머신 결과 - 서포트벡터머신 함수 : svm(y변수~x변수, data= _ - iris 데이터의 서포트벡터머신 결과 (전체 데이터를 사용한 결과) m1 2020. 3. 4.