티스토리 뷰

공부합시다/찍먹

[R] 분류 목적 머신러닝

신규_유저 2021. 6. 14. 13:21

 

head(iris_test_scale)

naiveBayes Algorithm / 나이브 베이즈 모형 사용

 

R에서 나이브 베이즈를 적용하기 위해서는 e1071 패키지의 naiveVayes 함수를 사용함.

※ e1071 : 효율적인 SVM 구현체로 잘 알려진 libsvm을 R에서 사용할 수 있도록 한 패키지

SVM 모델을 위한 패키지 'e1071' 설치

install.packages('e1071')

 

나이브 베이즈 기법 적용하기 위한 e1071 패키지 로드

library(e1071)

 

나이브 베이즈 적합

naive_rlt=naiveBayes(iris_train,iris_train$Species,laplace = 1)

 

테스트 데이터 평가

naive_pdt=predict(naive_rlt,iris_test,type="class")

 

분류 결과 도출

table(naive_pdt,iris_test$Species)

 

혼동행렬(confusion Matrix)

분류가 Y, N 두 종류가 있다고 할 때, 모델에서 구한 분류의 예측값(Prediction)과 데이터의 실제값(Reference)의 발생 빈도를 나열한 행렬

confusionMatrix(naive_pdt,iris_test$Species)

 

 


logistic Regression Model / 로지스틱 회귀분석 기법 사용

library(nnet)

multi_rlt=multinom(Species~.,iris_train)

multi_pdt=predict(multi_rlt,iris_test)

table(multi_pdt,iris_test$Species)

confusionMatrix(multi_pdt,iris_test$Species)

 

 

 


Decision Tree Algorithm / 의사결정트리 기법 사용

library(rpart)

rpart_rlt=rpart(Species~.,iris_train)

rpart_pdt=predict(rpart_rlt,iris_test,type="class")

table(rpart_pdt,iris_test$Species)

confusionMatrix(rpart_pdt,iris_test$Species)

 


Artificial Neural Network Algorithm / 인공 신경망 모델 사용

library(nnet)

iris_train_scale=as.data.frame(sapply(iris_train[,-5],scale))

head(iris_train_scale)

iris_test_scale=as.data.frame(sapply(iris_test[,-5],scale))

iris_train_scale$Species=iris_train$Species
iris_test_scale$Species=iris_test$Species

head(iris_test_scale)

ann_rlt=nnet(Species~.,iris_train_scale,size=3)

ann_pdt=predict(ann_rlt,iris_test_scale,type="class")

table(ann_pdt,iris_test$Species)


library(caret)

class(ann_pdt)

ann_pdt=as.factor(ann_pdt)

confusionMatrix(ann_pdt,iris_test$Species)


SVM(Support Vector Machine Alorithm) / 서포트 벡터 머신 기법 사용

install.packages("kernlab")
library(kernlab)

svm_rlt=ksvm(Species~.,iris_train,kernel="rbfdot")
svm_pdt=predict(svm_rlt,iris_test,type="response")

table(svm_pdt,iris_test$Species)

 

 


randomforst Algorithm / 랜덤 포레스트

 

install.packages("randomForest")
library(randomForest)

rf_rlt=randomForest(Species~.,iris_train,ntree=500)
rf_pdt=predict(rf_rlt,iris_test,type="response")

table(rf_pdt,iris_test$Species)

confusionMatrix(rf_pdt,iris_test$Species)

error_rate=1-0.9778
error_rate

 

반응형
LIST

'공부합시다 > 찍먹' 카테고리의 다른 글

[R] K-평균 클러스터링 분석 수행  (0) 2021.06.15
[R] 수치 예측 목적의 러신머닝  (0) 2021.06.15
[R] 데이터 세트 분할하기  (0) 2021.06.14
포트 변경하기  (0) 2021.05.19
사용자 생성하기  (0) 2021.05.19
댓글
링크
공지사항
최근에 올라온 글