K-NN 알고리즘 적용 및 매개변수 튜닝 참고글 : KNN 알고리즘(이동) K-NN(K-Nearest Neighbors) 알고리즘은 새로운 관측치와 기존 데이터와의 거리 연산를 통한 분류가 목적이므로 train data / test data가 동시에 들어가는게 특징입니다. 또한, 알고리즘 자체에 predict() 기능을 보유하고 있어서 예측 및 평가에 predict 함수를 사용하지 않아도 자체적으로 수행해줍니다. install.packages("class")library(class)knn(train, # 모델 평가용 데이터 중 예측 변수 test, # 예측용 데이터 (예측을 훈련과 동시에 가능) cl, # 분류(class) 변수 k=n, # k 설정 (근접한 k개의 데이터까지 확인) prob=TRUE) ..
중요도가 높은 핵심 변수 선택하기 모델의 예측률을 높이기 위해, 중요도가 높은 설명변수만 모델에 적용시켜주는 것이 중요합니다. # 데이터 준비> library(caret)> rn train test table(train$Species) setosa versicolor virginica 35 35 35 > table(test$Species) setosa versicolor virginica 15 15 15 # 중요도가 높은 핵심 변수 선택하기 # 방법 1) randomForest 모델을 활용한 방법 > library(randomForest)> forest_m forest_m$importance MeanDecreaseGiniSepal.Length 6.270904Sepal.Width 2.207310Petal...
Random Forest 매개변수 튜닝 참고글 : [데이터 분석] Random Forest 알고리즘 [R 분석] Random Forest 알고리즘 > cancer table(cancer$diagnosis) Benign Malignant # 현재 cancer data는 class별 데이터가 불균등한 상태입니다. 357 212 ### 1. train set과 test set 분리(upsampling 수행)> library(caret)> data table(data$Class) Benign Malignant # class별로 데이터가 균등하게 분배 357 357 > library(doBy)> train_up table(train_up$Class) # train data set의 선택된 row number를 추..
[R 분석] Random Forest 알고리즘 참고글 : [데이터 분석] Random Forest 알고리즘 [R 분석] Random Forest 매개변수 튜닝 randomForest(x, y = NULL, # x, y 분리해서 적용 가능, 보통 formula를 많이 사용 xtest = NULL, ytest = NULL, # test 데이터셋을 같이 적용시키면 동시에 테스트를 수행(보통 같이 적용하지 않음) ntree = 500, # 트리의 개수 mtry = n, # 각 노드 설정 시 설명변수 후보 개수(후보군) replace = TRUE) # random forest는 default로 복원추출을 허용 > install.packages('randomForest')> library(randomForest) ..
Decision Tree 매개변수 튜닝 참고글 : [데이터 분석] Decision Tree(의사결정 나무) 알고리즘 [R 분석] Decision Tree(의사결정 나무) 알고리즘 - rpart # 1. train data set과 test data set 분리 원본 데이터가 각 class별로 균등하지 않는 경우는 sampling 한 데이터도 균등하지 않기 때문에 균등하게 맞춰주는 것이 좋습니다.=> upsampling, downsampling을 통해 각 class별 데이터를 균등하게 만들어 놓고, train set과 test set으로 분리 필요 > sn train test library(party)> ctree_m ctree_m # 모델 확인 Conditional inference tree with 4..
조건부 추론 나무 조건부 추론 나무란 의사결정 나무(Decision Tree) + 통계적 유의성 확인(변수의 유의성) 가능한 수치를 제공해주는 Tree 입니다. Decision Tree(의사결정 나무) 알고리즘이란?(이동) 의사결정 나무 알고리즘에서 발생하는 두 가지 단점을 극복한 건강한(?) 나무입니다. - 통계적 유의성에 대한 판단 없이 노드를 분할하면서 생기는 과적합 문제 극복 - 다양한 값으로 분할 가능한 변수가 다른 변수에 비해 선호되는 문제 조건부 추론 나무를 통해, 통계적으로 컬럼별 중요도를 파악하고, 중요도가 큰 변수를 트리의 상위에 배치하여 인과관계를 조금 더 정확하게 판별할 수 있습니다. 1. 조건부 추론 나무 생성 및 시각화 ### 1. data sampling : train data..
원본데이터 내에 종속변수의 그룹 별 데이터 수가 균등할 경우 바로 sampleBy를 사용하여 바로 샘플링해줄 수 있지만ex) 종속변수 Group 컬럼의 A 그룹 데이터 = 100개 B 그룹 데이터 = 100개 원본데이터 내에 종속변수의 그룹 별 데이터 수가 균등하지 않다면 모델의 예측력이 떨어질 가능성이 높습니다.ex) 종속변수 Group 컬럼의 A 그룹 데이터 = 235개 B 그룹 데이터 = 100개 해결 방법으로 1. 데이터가 더 많은 그룹(A)의 데이터를 줄이거나, 2. 데이터가 더 적은 그룹(B)의 데이터를 반복(중복 사용)하여 데이터 개수를 균등하게 맞춰주어야 할 필요성이 있습니다. 보통 종속변수의 그룹(class) 별로 균등하게 분리된 데이터가 좋은 결과를 도출해준답니다 !!! #. 종속변수의..
지도학습을 위한 데이터 샘플링 지도학습과 비지도학습(이동) 1. Train data set, Test data set 으로 분리Train Data = 모델의 훈련을 위한 훈련용 데이터Test Data = 모델을 평가하기 위해 정답(결과)을 이미 알고있는 테스트용 데이터 *) caret::createDataPartition() 함수를 사용한 샘플링 가장 좋은 샘플링 방법 !!!# sampleBy 도 균등 샘플링이 가능하지만, 나머지 30%의 test data를 저장하기 위해 train data의 행 번호를 추출해야하는 번거로움이 있습니다. createDataPartition 함수는 이 모든 것을 한 번에 해결해준답니다.. Goood> library(caret)> rn train test table(trai..