credit <- read.csv("credit.csv", header=T, stringsAsFactors = T)
head(credit)
hist(credit$amount)
colSums(is.na(credit))
train
train_num <- createDataPartition(credit$default, p=0.9, list=F)
length(train_num)
train_data <- credit[ train_num, ]
test_data <- credit[ -train_num, ]
nrow(train_data)
nrow(test_data)
library(C50)
model <- C5.0( train_data[ , c(-17) ], train_data[ , 17], trials= ) #trials 값 수정
summary(model)
train_result <- predict( model, train_data[ , c(-17) ] )
sum( train_result == train_data[ , 17] ) / 900 * 100
test_result <- predict( model, test_data[ , c(-17) ] )
sum( test_result == test_data[ , 17] ) / 100 * 100
head(test_data)
test_result
head(credit)
## ★다른 성능 척도 구하기
actual_type <- test_data[ , 17] #테스트 데이터의 실제값
predict_type <- test_result #테스트 데이터의 예측값
positive_value <- 'yes' # 관심범주(yes)
negative_value <- 'no'# 관심범주(no)
#■ 정확도
g <-CrossTable( actual_type, predict_type )
x <- sum(g$prop.tbl *diag(2)) #정확도 확인하는 코드
x #0.9950739
#■ 카파통계량
#install.packages("vcd")
library(vcd)
table(actual_type,predict_type)
Kappa(table(actual_type, predict_type))
#■ 민감도
#install.packages("caret")
library(caret)
sensitivity(predict_type, actual_type, positive=positive_value)
#■ 특이도
specificity(predict_type, actual_type, negative=negative_value)
#■ 정밀도
posPredValue(predict_type, actual_type, positive=positive_value)
#■ 재현율
sensitivity( predict_type, actual_type, positive=positive_value)
#■ F1 score 구하기
#install.packages("MLmetrics")
library(MLmetrics)
F1_Score( actual_type, predict_type, positive = positive_value)