close_btn
:)
조회 수 3639 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print Files
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print Files
############### 데이터 분석 과제입니다. ################
# 데이터
rm(list=ls())
data("babies")
babies

# packages
if(!require(caret)) install.packages("caret"); library(caret)
if(!require(UsingR)) install.packages("UsingR"); library(UsingR)
if(!require(dplyr)) install.packages("dplyr"); library(dplyr)
if(!require(pROC)) install.packages("pROC"); library(pROC)
if(!require(glmnet)) install.packages("glmnet"); library(glmnet)
if(!require(lars)) install.packages("lars"); library(lars)
if(!require(nnet)) install.packages("nnet"); library(nnet)
if(!require(mlbench)) install.packages("mlbench"); library(mlbench)
if(!require(car)) install.packages("car"); library(car)
if(!require(devtools)) install.packages("devtools"); library(devtools)
if(!require(regbook)) install_github("regbook/regbook"); library(regbook)

##### 1.회귀분석하기 #####
# 값이 한개만 존재하는 변수 파악
check <- list()
for(i in 1:length(babies)) {
  key <- toString(names(babies)[i])
  check[[key]] <- unique(babies[,i])
  if(length(check[[key]]) == 1) {
    print(check[key])
  }
}

# pluralty,outcome,sex 제거
babies <- babies[!colnames(babies) %in% c("pluralty","outcome","sex")]

# id 제거
babies <- babies[-1]

# train(0.8), test(0.2) 파티션
# index <- sample(1:dim(babies)[1],dim(babies)*0.8,replace = FALSE)
# babies_train <- babies[index,]
# babies_test <- babies[-index,]
set.seed(1)
inTrain <- createDataPartition(y=babies$wt, p=0.8, list=FALSE)
babies_train <- babies[inTrain,]
babies_test <- babies[-inTrain,]

# 회귀분석
fit_lm <- lm(wt ~ .,data = babies_train)  # R-squared : 0.07639, Ad R-squared : 0.05927
summary(fit_lm)

# R-squared 값이 낮아 변수 확인 및 처리
# 최빈값 함수
mode <- function(x){
  return(names(sort(table(x),decreasing = T)[1]) %>% as.numeric)
}

# 범주형 변수 factor화 및 변수 설명시 unknown, not asked 등 의미없는 값 확인 및 변경
# 수치적 계산이 의미있음 = 평균으로 대체, 의미없음 = 최빈값으로 대체
# 단 의미 없는 값의 개수가 너무 많을 경우(400이상) 대체시 결정계수가 떨어짐을 확인하여 그대로 둠

sum(babies$wt == 999)
sum(babies$parity == 99)

# race 최빈값으로 대체 및 백인(0:5)을 하나로 통합
# 변수 설명에 나와 있지 않은 race = 10은 최빈값으로 대체
sum(babies$race == 10 | babies$race == 99)
babies$race[babies$race == 99 | babies$race == 10] <- mode(babies$race)
babies$race <- ifelse(babies$race %in% 0:5,1,babies$race)
sum(babies$drace == 10 | babies$drace == 99)
babies$drace[babies$drace == 99 | babies$drace == 10] <- mode(babies$drace)
babies$drace <- ifelse(babies$drace %in% 0:5,1,babies$drace)

# 산모, 부의 나이 평균으로 대체
sum(babies$age == 99)
babies$age[babies$age == 99] <- round(mean(babies$age))
sum(babies$dage == 99)
babies$dage[babies$dage == 99] <- round(mean(babies$dage))

# 산모,부의 교육수준 최빈값으로 대체 및 6&7 하나로 통합
sum(babies$ed == 9)
babies$ed[babies$ed == 9] <- mode(babies$ed)
babies$ed <- ifelse(babies$ed %in% 6:7,6,babies$ed)

sum(babies$ded == 9)
babies$ded[babies$ded == 9] <- mode(babies$ded)
babies$ded <- ifelse(babies$ded %in% 6:7,6,babies$ded)

# 산모, 부의 키 평균으로 대체
sum(babies$ht == 99)
babies$ht[babies$ht == 99] <- round(mean(babies$ht))
sum(babies$dht == 99)

# 산모, 부의 무게 평균으로 대체
sum(babies$wt1 == 999)
babies$wt1[babies$wt1 == 999] <- round(mean(babies$wt1))
sum(babies$dwt == 999)

# 가족의 연 수입 평균으로 대체
sum(babies$inc == 98)
sum(babies$inc == 99)
babies$inc[babies$inc == 98] <- round(mean(babies$inc))

# 산모의 흡연 여부 최빈값으로 대체
sum(babies$smoke == 9)
babies$smoke[babies$smoke == 9] <- mode(babies$smoke)

# 산모의 금연 기간 최빈값으로 대체
sum(babies$time == 98 | babies$time == 99)
babies$time[babies$time == 98 | babies$time == 99] <- mode(babies$time)

# 하루 흡연량 최빈값으로 대체
sum(babies$number == 98)
sum(babies$number == 99)
babies$number[babies$number == 98 | babies$number == 99] <- mode(babies$number)

babies_train <- babies[inTrain,]
babies_test <- babies[-inTrain,]

# 회귀분석
fit_lm <- lm(wt ~ .,data = babies_train)  # R-squared : 0.1325, Ad R-squared : 0.1164
summary(fit_lm)

# 팩터 지정
# babies$race <- factor(babies$race)
# babies$drace <- factor(babies$drace)
# babies$ed <- factor(babies$ed)
# babies$ded <- factor(babies$ded)
# babies$marital <- factor(babies$marital)
# babies$smoke <- factor(babies$smoke)
# babies$time <- factor(babies$time)
# babies$number <- factor(babies$number)

# 가변수 처리, 위와 동일한 결과
# white : race1 = 1, mex : race2 = 1, black : race3 = 1, asian : race4 = 1, mixed : race1~4 = 0
# 이후 나오는 모든 가변수는 변수 설명에 나오는것과 동일한 순서
for (i in 1:(length(unique(babies$race))-1)) {
  assign(paste("race",i,sep=""),ifelse(babies$race == sort(unique(babies$race))[i],1,0))
}
babies$race1 <- race1
babies$race2 <- race2
babies$race3 <- race3
babies$race4 <- race4

for (i in 1:(length(unique(babies$drace))-1)) {
  assign(paste("drace",i,sep=""),ifelse(babies$drace == sort(unique(babies$drace))[i],1,0))
}
babies$drace1 <- drace1
babies$drace2 <- drace2
babies$drace3 <- drace3
babies$drace4 <- drace4

# 횟수 파악을 위해 print(i) 삽입
for (i in 1:(length(unique(babies$ed))-1)) {
  assign(paste("ed",i,sep=""),ifelse(babies$ed == sort(unique(babies$ed))[i],1,0))
  print(i)
}
babies$ed1 <- ed1
babies$ed2 <- ed2
babies$ed3 <- ed3
babies$ed4 <- ed4
babies$ed5 <- ed5
babies$ed6 <- ed6

for (i in 1:(length(unique(babies$ded))-1)) {
  assign(paste("ded",i,sep=""),ifelse(babies$ded == sort(unique(babies$ded))[i],1,0))
  print(i)
}
babies$ded1 <- ded1
babies$ded2 <- ded2
babies$ded3 <- ded3
babies$ded4 <- ded4
babies$ded5 <- ded5
babies$ded6 <- ded6

for (i in 1:(length(unique(babies$marital))-1)) {
  assign(paste("marital",i,sep=""),ifelse(babies$marital == sort(unique(babies$marital))[i],1,0))
  print(i)
}
babies$marital1 <- marital1
babies$marital2 <- marital2
babies$marital3 <- marital3
babies$marital4 <- marital4

for (i in 1:(length(unique(babies$smoke))-1)) {
  assign(paste("smoke",i,sep=""),ifelse(babies$smoke == sort(unique(babies$smoke))[i],1,0))
  print(i)
}
babies$smoke1 <- smoke1
babies$smoke2 <- smoke2
babies$smoke3 <- smoke3

for (i in 1:(length(unique(babies$time))-1)) {
  assign(paste("time",i,sep=""),ifelse(babies$time == sort(unique(babies$time))[i],1,0))
  print(i)
}
babies$time1 <- time1
babies$time2 <- time2
babies$time3 <- time3
babies$time4 <- time4
babies$time5 <- time5
babies$time6 <- time6
babies$time7 <- time7
babies$time8 <- time8
babies$time9 <- time9

for (i in 1:(length(unique(babies$number))-1)) {
  assign(paste("number",i,sep=""),ifelse(babies$number == sort(unique(babies$number))[i],1,0))
  print(i)
}
babies$number1 <- number1
babies$number2 <- number2
babies$number3 <- number3
babies$number4 <- number4
babies$number5 <- number5
babies$number6 <- number6
babies$number7 <- number7
babies$number8 <- number8
babies$number9 <- number9

# 원래 값 제거
babies <- babies[!colnames(babies) %in% c("race","drace","ed","ded","marital","smoke","number","time")]

# 회귀분석
babies_train <- babies[inTrain,]
babies_test <- babies[-inTrain,]

fit_lm <- lm(wt ~ .,data = babies_train)  # R-squared : 0.2123, Ad R-squared : 0.1703
summary(fit_lm)

# NA가 나오는 변수 제거
babies <- babies[!colnames(babies) %in% c("time1","time2","time3","number1","number9")]

# 회귀분석
babies_train <- babies[inTrain,]
babies_test <- babies[-inTrain,]
fit_lm <- lm(wt ~ .,data = babies_train)  # R-squared : 0.2123, Ad R-squared : 0.1703
summary(fit_lm)

# 절편만 들어간 모델
fit_con <- lm(wt ~ 1, data = babies_train)

# 전진 선택법
fit_forward <- step(fit_con, list(lower=fit_con, upper = fit_lm), direction = "forward")

# 후진제거법
fit_backward <- step(fit_lm, list(lower=fit_con, upper = fit_lm), direction = "backward")

# 단계적회귀방법(stepwise)
fit_both <- step(fit_con, list(lower=fit_con, upper=fit_lm), direction = "both")

summary(fit_forward)  # R-squard : 0.197 Ad R-squared : 0.1796
summary(fit_backward) # R-squard : 0.1987 Ad R-squared : 0.1804
summary(fit_both)     # R-squard : 0.1915 Ad R-squared : 0.1782

# 적합도로 판단하면 fit_backward의 R-squared가 0.1804로 제일 높다.
# 그러나 예측이 목적인 경우 적합도보다 예측도가 높은 모형을 선택할 필요가있다.
# 회귀 분석에서 예측도를 나타내는 측도로는 예측잔차제곱합이라 불리는 PRESS가 있으며
# regbook 패키지의 press함수를 이용하여 계산 가능하다.

press(fit_lm)       # R-squared pred : 0.1150
press(fit_forward)  # R-squared pred : 0.1587
press(fit_backward) # R-squared pred : 0.1578
press(fit_both)     # R-squared pred : 0.1605

# 예측 모델로써 pred.r.squared값이 가장 높은 fit_both 선택
# 예측
fit_both.pred <- predict(fit_both,babies_test);fit_both.pred
fit_lm.pred <- predict(fit_lm,babies_test);fit_lm.pred
fit_backward.pred <- predict(fit_backward,babies_test);fit_backward.pred
fit_forward.pred <- predict(fit_forward,babies_test);fit_forward.pred

# 잔차제곱 합, 위 press결과가 높은 순서대로 잔차제곱합이 작음을 알 수 있다.
sum((babies_test$wt - fit_lm.pred)^2)       # 78167.63
sum((babies_test$wt - fit_forward.pred)^2)  # 77197.48
sum((babies_test$wt - fit_backward.pred)^2) # 76963.17
sum((babies_test$wt - fit_both.pred)^2)     # 75762.41

# interval="confidence"와 "prediction"을 사용
# 반응변수의 평균에 대한 95% 신뢰구간과 예측구간 출력
a <- predict(fit_both,babies_test, interval="confidence")
a <- data.frame(a);a
b <- predict(fit_both,babies_test, interval="prediction")
b <- data.frame(b);b

# 반응변수의 평균이 95%신뢰구간과 예측구간에 들어올 확률
acc <- vector()
bcc <- vector()
for (i in 1:length(babies_test$date)) {
  acc[i] <- babies_test$wt[i] > a$lwr[i] & babies_test$wt[i] < a$upr[i]
  bcc[i] <- babies_test$wt[i] > b$lwr[i] & babies_test$wt[i] < b$upr[i]
}
sum(acc)/length(acc) # 신뢰구간에 들어올 확률 0.1707
sum(bcc)/length(bcc) # 예측구간에 들어올 확률 0.9186

## 관측치
windows()
par(mfrow=c(2,2))
plot(fit_both)
1.png 
# 우측 아래의 잔차 대 영향력 그래프를 보니 이상치, 영향관측치를 확인할 수 있다.
# 이는 차후 Cook's distance를 통해 확인 후 제거하겠다.

# 정규성 검정
histf(rstandard(fit_both),boxplot = TRUE, rug = TRUE)
2.png

# 다중 공선성 확인, 다중공선성에 문제가 없음을 확인.
vif(fit_both)

# 이상점 검정
outlierTest(fit_both)

# cook's distance에서 특이값 4개 발견
influenceIndexPlot(fit_both, id.n=4)
3.png

# 그러나 591번을 제외하고 회귀분석을 시행할 경우 결정계수가 떨어지는것을 확인
# 60,634,1189제외 후 적합
b.out <- babies[!rownames(babies) %in% c(60,634,1189),]

# 회귀분석
b.out_train <- b.out[inTrain,]
b.out_test <- b.out[-inTrain,]
fit_lm <- lm(wt ~ .,data = b.out_train)  # R-squared : 0.2123 -> 0.2159, Ad R-squared : 0.1703 -> 0.174
summary(fit_lm)

# 절편만 들어간 모델
fit_con <- lm(wt ~ 1, data = b.out_train)

# 전진 선택법
fit_forward <- step(fit_con, list(lower=fit_con, upper = fit_lm), direction = "forward")

# 후진 제거법
fit_backward <- step(fit_lm, list(lower=fit_con, upper = fit_lm), direction = "backward")

# 단계적회귀방법(stepwise)
fit_both <- step(fit_con, list(lower=fit_con, upper=fit_lm), direction = "both")

summary(fit_forward)  # R-squard : 0.197 -> 0.2013 Ad R-squared : 0.1796 -> 0.1856
summary(fit_backward) # R-squard : 0.1987 -> 0.2087 Ad R-squared : 0.1804 -> 0.1865
summary(fit_both)     # R-squard : 0.1915 -> 0.2007 Ad R-squared : 0.1782 -> 0.1858

# 예측모델로 fit_both 선택
press(fit_forward)  # R-squared pred : 0.1587 -> 0.1649
press(fit_backward) # R-squared pred : 0.1578 -> 0.1577
press(fit_both)     # R-squared pred : 0.1605 -> 0.1655

# 예측 값
fit_both.pred <- predict(fit_both,babies_test);fit_both.pred

# 잔차 제곱합
sum((babies_test$wt - fit_both.pred)^2)     # 75762.41 -> 72727.23

##### 2.로지스틱 회귀분석하기 #####
# 데이터
rm(list=ls())
data("babies")
babies$new_wt <- ifelse(babies$wt > median(babies$wt),1,0)
babies <- babies[,-which(names(babies)=='wt')]

# 1번과 동일하게 전처리
babies <- babies[!colnames(babies) %in% c("pluralty","outcome","sex")]
babies <- babies[-1]
mode <- function(x){
  return(names(sort(table(x),decreasing = T)[1]) %>% as.numeric)
}
babies$race[babies$race == 99 | babies$race == 10] <- mode(babies$race)
babies$race <- ifelse(babies$race %in% 0:5,1,babies$race)
babies$drace[babies$drace == 99 | babies$drace == 10] <- mode(babies$drace)
babies$drace <- ifelse(babies$drace %in% 0:5,1,babies$drace)
babies$age[babies$age == 99] <- round(mean(babies$age))
babies$dage[babies$dage == 99] <- round(mean(babies$dage))
babies$ed[babies$ed == 9] <- mode(babies$ed)
babies$ed <- ifelse(babies$ed %in% 6:7,6,babies$ed)
babies$ded[babies$ded == 9] <- mode(babies$ded)
babies$ded <- ifelse(babies$ded %in% 6:7,6,babies$ded)
babies$ht[babies$ht == 99] <- round(mean(babies$ht))
babies$wt1[babies$wt1 == 999] <- round(mean(babies$wt1))
babies$inc[babies$inc == 98] <- round(mean(babies$inc))
babies$smoke[babies$smoke == 9] <- mode(babies$smoke)
babies$time[babies$time == 98 | babies$time == 99] <- mode(babies$time)
babies$number[babies$number == 98 | babies$number == 99] <- mode(babies$number)

# 팩터 지정
babies$race <- factor(babies$race)
babies$drace <- factor(babies$drace)
babies$ed <- factor(babies$ed)
babies$ded <- factor(babies$ded)
babies$marital <- factor(babies$marital)
babies$smoke <- factor(babies$smoke)
babies$time <- factor(babies$time)
babies$number <- factor(babies$number)

# 파티션
set.seed(1)
inTrain <- createDataPartition(y=babies$new_wt, p=0.8, list=FALSE)
babies_train <- babies[inTrain,]
babies_test <- babies[-inTrain,]

# 로지스틱 회귀분석
Model1 <- glm(new_wt~.,data = babies_train, family = binomial(link = 'logit'))
summary(Model1)
coef(Model1)

# 예측 모델
pred_Model1 <- predict(Model1,newdata = babies_test, type = "response")
yhat <- ifelse(pred_Model1 > 0.5,1,0)
table(babies_test$new_wt,yhat)

# 예측 정확도   0.6558
(diag(table(babies_test$new_wt,yhat)) %>% sum)/(babies_test$new_wt%>%length)

Model_full <- glm(new_wt~.,data=babies_train,family = "binomial")
Model_non <- glm(new_wt ~ 1,data=babies_train,family = "binomial")

# 전진 선택법   0.6356
Model_forward <- step(Model_non,list(lower=Model_non,upper=Model_full),direction = "forward")
pred_forward <- predict(Model_forward,newdata = babies_test, type = "response")
table(babies_test$new_wt,round(pred_forward))
(diag(table(babies_test$new_wt,round(pred_forward))) %>% sum)/(babies_test$new_wt%>%length)

# 후진 제거법   0.6437
Model_backward <- step(Model_full,list(lower=Model_non,upper=Model_full),direction = "backward")
pred_backward <- predict(Model_backward,newdata = babies_test, type = "response")
table(babies_test$new_wt,round(pred_backward))
(diag(table(babies_test$new_wt,round(pred_backward))) %>% sum)/(babies_test$new_wt%>%length)

# 단계적(stepwise)    0.6356
Model_step <- step(Model_non,list(lower=Model_non,upper=Model_full),direction = "both")
pred_step <- predict(Model_step,newdata = babies_test, type = "response")
table(babies_test$new_wt,round(pred_step))
(diag(table(babies_test$new_wt,round(pred_step))) %>% sum)/(babies_test$new_wt%>%length)

# roc커브, 예측 정확도가 가장 높은 pred_Model1사용
par(mfrow = c(1,1))
curve<-roc(babies_test$new_wt, pred_Model1, direction="<")
curve$auc
plot(curve)
4.png

# 다중공선성 확인, 5이상의 값을 갖고 있는 변수 확인
vif(Model1)

# ridge_Model
ridge_Model <- cv.glmnet(x=data.matrix(babies_train[,-length(babies_train)]),y = babies_train[,length(babies_train)],
                         family = "binomial",alpha=0, nfolds=10)

# ridge 예측 모델
pred_ridge <- predict(ridge_Model,newx=data.matrix(babies_test[,-length(babies_test)]),
                      s=ridge_Model$lambda.min,type="class")
table(babies_test[,length(babies_test)],pred_ridge)

# 예측 정확도     0.6356
(diag(table(babies_test[,length(babies_test)],pred_ridge)) %>% sum)/(babies_test$new_wt%>%length)

# 그래프
par(mfrow=c(1,2))
plot(ridge_Model)
plot.glmnet(ridge_Model$glmnet.fit,xvar="lambda")
5.png

# 최적의 lambda 찾기
ridge_lambda <- list()
for (i in 1:length(ridge_Model$lambda)) {
  ridge_lambda[[i]] <- predict(ridge_Model,newx = data.matrix(babies_test[,-length(babies_test)]),
                               s = ridge_Model$lambda[i],type="class")
}

accuracy <- vector()
for (i in 1:length(ridge_Model$lambda)) {
  accuracy[i] <- (diag(table(babies_test[,length(babies_test)],ridge_lambda[[i]])) %>% sum)/(babies_test$new_wt%>%length)
}

# 최적의 lambda
# 10.063232  9.169242  7.612466  6.936196  6.320003
ridge_Model$lambda[which(accuracy == max(accuracy))]

# 최고 정확도   0.6437
accuracy %>% max

# lasso_Model
lasso_Model <- cv.glmnet(x=data.matrix(babies_train[,-length(babies_train)]),y = babies_train[,length(babies_train)],
                         family = "binomial",alpha=1, nfolds=10)

# lasso 예측 모델
pred_lasso <- predict(lasso_Model,newx=data.matrix(babies_test[,-length(babies_test)]),
                      s=lasso_Model$lambda.min,type="class")
table(babies_test[,length(babies_test)],pred_lasso)

# 예측정확도    0.6234
(diag(table(babies_test[,length(babies_test)],pred_lasso)) %>% sum)/(babies_test$new_wt%>%length)

# 그래프
par(mfrow=c(1,2))
plot(lasso_Model)
plot.glmnet(lasso_Model$glmnet.fit,xvar="lambda")
6.png
# 최적의 lambda 찾기
lasso_lambda <- list()
for (i in 1:length(lasso_Model$lambda)) {
  lasso_lambda[[i]] <- predict(lasso_Model,newx = data.matrix(babies_test[,-length(babies_test)]),
                               s = lasso_Model$lambda[i],type="class")
}

accuracy <- vector()
for (i in 1:length(lasso_Model$lambda)) {
  accuracy[i] <- (diag(table(babies_test[,length(babies_test)],lasso_lambda[[i]])) %>% sum)/(babies_test$new_wt%>%length)
}

# 최적의 lambda
# 0.007612466 0.006936196 0.006320003 0.005758551
lasso_Model$lambda[which(accuracy == max(accuracy))]

# 최고 정확도   0.6315
accuracy %>% max

# 변수 선택한것 보다 모든 변수를 넣고 돌린 것이 정확도가 제일 높았다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 R 소스 공유 게시판 이용 관련 공지사항 1 DataMarket 2014.05.21 26877
110 투빅스 8&9기 8주차 LDA - 9기 전민규 file 전민규 2018.03.25 3105
109 투빅스 8&9기 8주차 SVM - 9기 최영제 file :) 2018.03.25 2801
108 투빅스 8&9기 8주차 과제 PCA -9기 신용재 file 신용재 2018.03.23 2767
107 투빅스 8&9기 7주차 과제 논문 요약 - 9기 배현주 file 배현주 2018.03.16 2774
106 투빅스 8&9기 7주차 과제 논문 요약 - 8기 김강열 file 김강열 2018.03.15 2898
105 투빅스 8&9기 7주차 과제 - 9기 김수지 file 김수지 2018.03.15 2811
104 투빅스 8&9기 6주차 과제 - 9기 서석현 file 스르륵 2018.03.08 2763
103 투빅스 8&9기 설 알고리즘 과제 - 9기 백광제 file 백광제 2018.02.25 3257
102 투빅스 8&9기 설 분석 과제 16' 뉴욕 택시 운행시간 예측 - 9기 최영제 :) 2018.02.24 3552
101 투빅스 8&9기 4주차 과제 Random Forest -9기 이잉걸 잉걸 2018.02.15 3168
100 투빅스 8&9기 4주차 과제 Naive Bayes Classification -9기 서석현 file 스르륵 2018.02.14 3083
99 투빅스 8&9기 3주차 과제 K-Nearest Neighbor, K-means 구현 -9기 신용재 1 신용재 2018.02.08 3602
98 투빅스 8&9기 3주차 과제 연관성 분석 - 9기 최영제 :) 2018.02.08 3372
97 투빅스 8&9기 2주차 과제 Gradient Descent, Softmax, Cross Entropy - 9기 서석현 file 스르륵 2018.02.02 3138
» 투빅스 8&9기 2주차 과제 회귀분석/로지스틱 - 9기 최영제 file :) 2018.02.02 3639
95 투빅스 8&9기 2주차 과제 Gradient Descent, Softmax, Cross Entropy - 9기 김명진 file kimji 2018.02.02 3024
94 투빅스 8&9기 1주차 과제 R 9기-신용재 file 신용재 2018.01.25 3406
93 투빅스 8&9기 1주차 과제 R 알고리즘 - 9기 서석현 file 스르륵 2018.01.25 3471
92 투빅스 7&8기 9주차 과제 Neural Network를 이용한 MNIST 분류 - 8기 김민정 민정e 2017.09.23 4824
91 투빅스 7&8기 9주차 과제 Neural Network를 이용한 MNIST 분류 - 8기 최서현 최서현 2017.09.22 4676
Board Pagination ‹ Prev 1 2 3 4 5 6 ... 7 Next ›
/ 7

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5