통계 이야기
빅데이터 분석 ; logistic regression ; 로짓분석 ; 분류분석 ; classification analysis
728x90
반응형
안녕하세요. 창이에요 !
kaggle data인 social_network_ads 데이터를 가지고 빅데이터 분석을 해보았습니다.
logistic regression으로 모형을 적합하고
어떤 방법으로 반복, 시행 했을 때 가장 높은 평균과 표준편차를 갖는지 알아보겠습니다.
데이터 탐색
head(data)
social network_ad 데이터 활용 400행에 5개 변수
User.ID(연속) Gender(이산) Age(연속) EstimatedSalary(연속) Purchased(이산형)
par(mfrow = c(1, 2))
plot 화면에 두개의 그래프가 들어갈 수 있도로 구성
hist(data$Age) ; hist(data$EstimatedSalary)
str(data)
sum(is.na(data))
[1] 0
결측치 확인
모델적합
glm.obj = glm(Purchased~Gender+Age+EstimatedSalary, data = train\_data, family = binomial)
summary(glm.obj)
Gender 변수의 p값은 0.414로 적절하지 않다고 판단되므로 제거.
제거 후 새로 logit 모형 적용.
glm.obj <- glm(Purchased ~ Age + EstimatedSalary, data = data) ; summary(glm.obj)
반복
set.seed(123)
seed를 주게 되어 random한 값을 뽑을 때 같은 것들이 뽑히도록 한다.
library(caTools)
samp<-sample.split(data$Purchased,SplitRatio = 0.75)
train\_data<-subset(data, samp== TRUE)
test\_data<-subset(data,samp == FALSE)
train데이터와 test 데이터로 분류
predicttrain = predict(glm.obj, type = 'response')
적절한 임계값 선택
table(train\_data$Purchased, predicttrain>0.5)
FALSE TRUE
0 180 13
1 29 78
table(train\_data$Purchased, predicttrain>0.7)
FALSE TRUE
0 186 7
1 47 60
table(train\_data$Purchased, predicttrain>0.3)
FALSE TRUE
0 156 37
1 12 95
test세트의 accuracy 측정.
predicttest = predict(glm.obj, type = 'response',newdata = test\_data)
table(test\_data$Purchased, predicttest>0.7)
FALSE TRUE
0 59 5
1 17 19
728x90
반응형
'통계 이야기' 카테고리의 다른 글
빅데이터 분석 ; 신경망 알고리즘 ; 뉴런 (5) | 2021.07.22 |
---|---|
빅데이터 분석 ; LDA ; logistic regression ; dicision tree ; 동시 비교 (0) | 2021.07.22 |
빅데이터 분석 ; LDA(선형판별분석) QDA(2차판별분석) (0) | 2021.07.20 |
빅데이터 분석 ; 연관성 분석(2) ; kaggle 데이터에 적용 (0) | 2021.07.19 |
빅데이터 분석 ; 연관성 분석(1) ; kaggle 데이터에 적용 (0) | 2021.07.18 |
댓글