computeAttributeImportance: compute importances

Usage Examples

Usage

1
computeAttributeImportance(dbname1, user1, password1, host1, post1)

Examples

 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
##---- Should be DIRECTLY executable !! ----
##-- ==>  Define data, use random,
##--	or do  help(data=index)  for the standard data sets.

## The function is currently defined as
function () 
{
    drv <- dbDriver("PostgreSQL")
    con <- dbConnect(drv, dbname = "JLI", user = "postgres", 
        password = "postgres", host = "localhost", port = "5432")
    entities_query <- "select distinct store_number entity_id, 'store' entity_type from stores where store_number=123"
    eq <- dbSendQuery(con, entities_query)
    eq_matrix <- as.data.frame(fetch(eq, n = -1))
    dbClearResult(eq)
    truncate_query <- "truncate table eba_results"
    tq <- dbSendQuery(con, truncate_query)
    dbClearResult(tq)
    computeImportance <- function(entity) {
        tryCatch({
            entity_id <- paste("'", entity[1], "'", sep = "")
            entity_type <- paste("'", entity[2], "'", sep = "")
            tradeoff_query <- paste("select attr1, attr2, attr3, attr4, attr5, attr6, attr7, attr8 from eba_matrix where entity_id=", 
                entity_id, "and entity_type=", entity_type, "order by attrs")
            tq <- dbSendQuery(con, tradeoff_query)
            eba_matrix <- as.data.frame(fetch(tq, n = -1))
            row.names(eba_matrix) <- c("attr1", "attr2", "attr3", 
                "attr4", "attr5", "attr6", "attr7", "attr8")
            btl <- eba(eba_matrix)
            importance <- as.data.frame(uscale(btl) * 100)
            names(importance)[1] <- "importance"
            entity_ids <- c(entity[1], entity[1], entity[1], 
                entity[1], entity[1], entity[1], entity[1], entity[1])
            entity_types <- c(entity[2], entity[2], entity[2], 
                entity[2], entity[2], entity[2], entity[2], entity[2])
            attrs <- c("attr1", "attr2", "attr3", "attr4", "attr5", 
                "attr6", "attr7", "attr8")
            table_prep <- as.data.frame(cbind(entity_ids, entity_types, 
                attrs, importance))
            dbWriteTable(con, "eba_results", table_prep, row.names = F, 
                append = T)
            dbClearResult(tq)
        }, error = function(cond) {
            message("can't process")
        })
    }
    apply(eq_matrix, 1, computeImportance)
    dbDisconnect(con)
  }

tridentasf/attributeimportanceJLI documentation built on May 31, 2019, 7:53 p.m.