728x90

RMSE, MSE : 값이 낮을 수록 정확도가 높다고 할 수 있음

 

1. RMSE, MSE, 결정 계수, 수정 결정 계수

library(ISLR)
hitters = na.omit(Hitters)
fit_model = lm(Salary ~ Atbat + Hits + CWalks + Division + PutOuts, data = hitters)
second_model = lm(Salary ~ Hits + CWalks + Division + PutOuts, data = hitters)

#MSE, RMSE
library(ModelMetrics)
rmse(fit_model)
mse(fit_model)
rmse(second_model)
mse(second_model)

#결정 계수, 수정된 결정 계수
summary(fit_model)$r.squared #fit_model의 결정 계수
summary(fit_model)$adj.r.squared #fit_model의 수정된 결정 계수
summary(second_model)$r.squared #second_model의 결정 계수
summary(second_model)$adj.r.squared #second_model의 수정된 결정 계수

 

2. 혼동행렬(confusion matrix)

library(mlbench)
data("PimaIndiansDiabetes2")

df_pima = na.omit(PimaIndiansDiabetes2)
set.seed(Sys.Date())
train.idx = sample(1:nrow(df_pima), size = nrow(df_pima) * 0.8) #테스트데이터로 사용할 행 추출
train = df_pima[train.idx,]
test = df_pima[-train.idx,]

library(randomForest) #랜덤포레스트를 사용하기 위한 라이브러리 가져오기
md.rf = randomForest(diabetes ~ .,
                     data = train,
                     ntree = 300)
pred = predict(md.rf, newdata = test) 

library(caret) #혼동행렬을 사용하기 위한 라이브러리 가져오기
caret::confusionMatrix(as.factor(pred), #caret 라이브러리의 confusionMatrix 사용을 위해 패키지명 사용
                       test$diabetes,
                       pos = "pos")

 

3. AUC(Area Under ROC; AUROC)

ROC 곡선의 x축은 FPR, y축은 TPR아랫부분의 면적인 AUC를 기준으로 모형을 평가하며, AUC 값이 1에 가까울 술록 좋은 모형으로 평가함.

library(mlbench)
data("PimaIndiansDiabetes2")

df_pima = na.omit(PimaIndiansDiabetes2)
set.seed(Sys.Date())

train.idx = sample(1:nrow(df_pima), size = nrow(df_pima) * 0.8)

trian = df_pima[train.idx,]
test = df_pima[-train.idx,]

library(randomForest)
md.rf = randomForest(diabetes ~ .,
                     data = train,
                     ntree = 300)
pred = predict(md.rf, newdata = test)

library(ModelMetrics) #auc함수 사용을 위해 라이브러리 불러오기
auc(auctual = test$diabetes,
    predicted = as.factor(pred))
    
#auc 값이 0.7129898로 Fair(보통)한 성능을 보인다

1. ROC curve는 1-특이도(FPR, 거짓 긍정률)와 민감도(TPR, 참 긍정률)을 x, y축에 나타낸 그래프임.

2. AUC 값이 1에 가까울 수록 좋은 모델로 판단.

3. ROCR 패키지의 prediction(), performance() 함수가 있음.

install.packages("ROCR")
library(ROCR)

#모델 평가
pred <- prediction(model,
                   x_test$value)

#AUC 평가
perf <- performance(pred,
                    measure = "auc")
728x90