728x90

[마케팅] 자동차 시장 세분화

  • 자동차 회사는 새로운 전략을 수립하기 위해 4개의 시장으로 세분화했습니다.
  • 기존 고객 분류 자료를 바탕으로 신규 고객이 어떤 분류에 속할지 예측해주세요!
  • 예측할 값(y): "Segmentation" (1,2,3,4)
  • 평가: Macro f1-score
  • data: train.csv, test.csv
  • 제출 형식:
ID,Segmentation
458989,1
458994,2
459000,3
459003,4
train.df = read.csv("C:/BigDataCertificationCourses-main/4th/train.csv", header=T)
test.df = read.csv("C:/BigDataCertificationCourses-main/4th/test.csv", header=T)

summary(train.df)
summary(is.na.data.frame(train.df)) #누락치 확인

#더미변수화
train.df$Segmentation = as.factor(train.df$Segmentation)

#데이터 스케일링
preProcess(train.df)
preProcess(test.df)

library(caret)
train_idx = createDataPartition(train.df$ID,
                                times=1,
                                p=.8,
                                list=T) #테스트데이터로 사용할 인덱스 추출

train = train.df[train_idx$Resample1,]
test = train.df[-train_idx$Resample1,]

library(randomForest)
md.rf = randomForest(Segmentation ~ .,
                     data = train[,-1])
library(e1071)
md.svm = svm(Segmentation ~ .,
             data = train[,-1])
library(rpart)
md.rp = rpart(Segmentation ~ .,
              data = train[,-1])

pred.rf = predict(md.rf, newdata = test[,-1], type = "response")
pred.svm = predict(md.svm, newdata = test[,-1])
pred.rp = predict(md.rp, newdata = test[,-1], type = "class")

confusionMatrix(test$Segmentation, pred.rf)
confusionMatrix(test$Segmentation, pred.svm)
confusionMatrix(test$Segmentation, pred.rp)

pred = predict(md.svm, newdata = test.df[,-1])
pred

final = cbind(test.df[,1], pred)
colnames(final) = c("ID", "Segmentation")
head(final, 10)
728x90