-
Notifications
You must be signed in to change notification settings - Fork 19
Expand file tree
/
Copy pathmodel.R
More file actions
73 lines (44 loc) · 1.38 KB
/
model.R
File metadata and controls
73 lines (44 loc) · 1.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
library(xgboost)
library(mlogit)
library(tidyverse)
library(data.table)
library(DT)
Iris<-iris
y1<- Iris$Species
var.levels <- levels(y1)
y = as.numeric(y1) -1
noOutcome<-Iris[,-5]
x = noOutcome[,c( 'Sepal.Length', 'Sepal.Width', 'Petal.Length', 'Petal.Width')]
var.names <- names(noOutcome)
x = as.matrix(x)
params <-list(
"objective" = "multi:softprob"
,"eval_metric" = "mlogloss"
, "num_class" = length(table(y))
, "eta" = .5
, "max_depth" = 3
, "nthread" = 8
)
cv.nround = 250
bst.cv <- xgb.cv(param = params, data = x, label = y, nfold = 5, nrounds = cv.nround
,missing = NA, prediction = TRUE)
nrounds= which.min(bst.cv$evaluation_log$test_mlogloss_mean)
bst.cv$evaluation_log[nrounds,]
SpeciesClass<- xgboost(param = params, data = x, label = y, nrounds = cv.nround
,missing = NA)
xgb.importance(var.names, model = SpeciesClass)
xgb.save(SpeciesClass, "iris.model")
SpeciesClassInfo<-list(
var.names = var.names,
var.levels = var.levels
)
save(SpeciesClassInfo, file= "SpeciesClassInfo.rda")
generatePreds<- function(Sepal_length = 5,Sepal_width = 3, Petal_length = 1, Petal_width = 1){
testDF<- as.matrix(Sepal_length,Sepal_width, Petal_length, Petal_width)
}
preds<- predict(SpeciesClass, as.matrix(Iris$Sepal.Length, Iris$Sepal.Width))
data.frame(
Species = var.levels
, preds
)%>%
arrange(desc(preds))