Skip to content

Commit e8f89f3

Browse files
committed
travis?
1 parent 4e9ef43 commit e8f89f3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+174
-90
lines changed

.Rbuildignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,5 @@
66
^\.travis\.yml$
77
^.*\.Rproj$
88
^\.Rproj\.user$
9+
^\.editorconfig$
10+
^\.ignore$

.editorconfig

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# See http://editorconfig.org
2+
root = true
3+
4+
[*]
5+
charset = utf8
6+
end_of_line = lf
7+
insert_final_newline = true
8+
indent_style = space
9+
trim_trailing_whitespace = true
10+
11+
[*.{r,R,md,Rmd}]
12+
indent_size = 2
13+
14+
[*.{c,h}]
15+
indent_size = 4
16+
17+
[*.{cpp,hpp}]
18+
indent_size = 4
19+
20+
[{NEWS.md,DESCRIPTION,LICENSE}]
21+
max_line_length = 80

.ignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
man/
2+
docs/
3+
inst/doc/
4+
attic/
5+
vignettes/*.html

DESCRIPTION

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,12 @@ Imports:
3737
paradox,
3838
R6
3939
Suggests:
40+
FSelectorRcpp,
4041
knitr,
42+
mlbench,
43+
praznik,
4144
rpart,
42-
testthat,
43-
covr
45+
testthat
4446
VignetteBuilder:
4547
knitr
4648
Remotes:
@@ -53,7 +55,7 @@ LazyData: true
5355
NeedsCompilation: no
5456
Roxygen: list(markdown = TRUE)
5557
RoxygenNote: 6.1.1
56-
Collate:
58+
Collate:
5759
'Filter.R'
5860
'FilterAUC.R'
5961
'FilterCMIM.R'
@@ -70,4 +72,5 @@ Collate:
7072
'FilterSymmetricalUncertainty.R'
7173
'FilterVariance.R'
7274
'helpers.R'
75+
'reexports.R'
7376
'zzz.R'

NAMESPACE

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@ export(FilterNJMIM)
1616
export(FilterRankCorrelation)
1717
export(FilterSymmetricalUncertainty)
1818
export(FilterVariance)
19+
export(as.data.table)
1920
import(checkmate)
2021
import(data.table, except = transpose)
2122
import(mlr3)
2223
import(mlr3misc)
2324
import(paradox)
2425
importFrom(R6,R6Class)
26+
importFrom(utils,head)

R/Filter.R

Lines changed: 27 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -39,17 +39,12 @@
3939
#' * `$settings` is a list of hyperparamter settings for this [Filter].
4040
#' @name Filter
4141
#' @family Filter
42-
#' @examples
43-
#' filter = Filter$new(id = "FilterLinearCorrelation", package = "stats",
44-
#' feature_types = "numeric", task_type = "regr", settings = list())
45-
#'
4642
NULL
4743

4844
#' @export
4945
Filter = R6Class("Filter",
5046
public = list(
5147
id = NULL,
52-
task = NULL,
5348
packages = NULL,
5449
feature_types = NULL,
5550
task_type = NULL,
@@ -67,7 +62,7 @@ Filter = R6Class("Filter",
6762
calculate = function(task, settings = self$settings) {
6863
assert_task(task)
6964
assert_feature_types(task, self)
70-
assert_filter(filter, task)
65+
assert_filter(self, task)
7166
assert_list(settings, names = "unique")
7267
require_namespaces(self$packages)
7368

@@ -77,26 +72,39 @@ Filter = R6Class("Filter",
7772
self
7873
},
7974

80-
filter = function(abs, perc, threshold) {
81-
assert_numeric(self$filter_values)
82-
self$filter_values = sort(self$filter_values, decreasing = TRUE)
75+
filter_abs = function(task, abs) {
76+
assert_count(abs)
77+
assert_task(task)
78+
if (is.null(self$filter_values))
79+
stopf("Filter values have not been computed yet")
80+
filter_n(self, task, abs)
81+
},
8382

84-
if (abs) {
85-
subs = abs
86-
} else if (perc) {
87-
subs = round(length(task$feature_names) * perc)
88-
} else if (threshold) {
89-
subs = length(which(self$filter_values > threshold))
90-
}
83+
filter_perc = function(task, perc) {
84+
assert_number(perc, lower = 0, upper = 1)
85+
assert_task(task)
86+
if (is.null(self$filter_values))
87+
stopf("Filter values have not been computed yet")
88+
filter_n(self, task, round(task$nrow * perc))
89+
},
9190

92-
filtered_features = names(head(self$filter_values, subs))
93-
task$clone(deep = TRUE)$select(filtered_features)
91+
filter_thres = function(task, threshold) {
92+
assert_number(threshold)
93+
assert_task(task)
94+
if (is.null(self$filter_values))
95+
stopf("Filter values have not been computed yet")
96+
filter_n(self, task, sum(self$filter_values > threshold))
9497
}
9598
)
9699
)
97100

101+
filter_n = function(self, task, n) {
102+
filtered_features = names(head(self$filter_values, n))
103+
task$clone(deep = TRUE)$select(filtered_features)
104+
}
105+
98106
#' @export
99-
as.data.table.Filter = function(x) {
107+
as.data.table.Filter = function(x, ...) {
100108
fv = x$filter_values
101109
if (is.null(fv))
102110
stopf("No filter data available")

R/FilterAUC.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
#' @name FilterAUC
1616
#' @family Filter
1717
#' @examples
18-
#' task = mlr_tasks$get("spam")
18+
#' task = mlr3::mlr_tasks$get("sonar")
1919
#' filter = FilterAUC$new()
2020
#' filter$calculate(task)
2121
#' head(as.data.table(filter), 3)

R/FilterCMIM.R

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
#' @name FilterCMIM
1616
#' @family Filter
1717
#' @examples
18-
#' task = mlr_tasks$get("iris")
18+
#' task = mlr3::mlr_tasks$get("iris")
1919
#' filter = FilterCMIM$new()
2020
#' filter$calculate(task)
2121
NULL
@@ -31,20 +31,11 @@ FilterCMIM = R6Class("FilterCMIM", inherit = Filter,
3131
feature_types = c("numeric", "factor", "ordered"),
3232
task_type = c("classif", "regr"),
3333
settings = settings)
34-
},
35-
calculate = function(task, settings = self$settings) {
36-
37-
# check for supported features
38-
assert_feature_types(task, self)
39-
# check for supported task
40-
assert_filter(filter, task)
41-
42-
# check for Namespace
43-
require_namespaces(self$packages)
44-
45-
# assign task to class
46-
self$task = task
34+
}
35+
),
4736

37+
private = list(
38+
.calculate = function(task, settings) {
4839
X = task$data(cols = task$feature_names)
4940
Y = task$data(cols = task$target_names)[[task$target_names]]
5041
filter_values = invoke(

R/FilterDISR.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
#' @name FilterDISR
1616
#' @family Filter
1717
#' @examples
18-
#' task = mlr_tasks$get("iris")
18+
#' task = mlr3::mlr_tasks$get("iris")
1919
#' filter = FilterDISR$new()
2020
#' filter$calculate(task)
2121
#' head(as.data.table(filter), 3)

R/FilterGainRatio.R

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
#' @name FilterGainRatio
1616
#' @family Filter
1717
#' @examples
18-
#' task = mlr_tasks$get("sonar")
18+
#' task = mlr3::mlr_tasks$get("sonar")
1919
#' filter = FilterGainRatio$new()
2020
#' filter$calculate(task)
2121
#' head(as.data.table(filter), 3)
@@ -33,7 +33,7 @@ FilterGainRatio = R6Class("FilterGainRatio", inherit = Filter,
3333
task_type = c("classif", "regr"),
3434
settings = settings)
3535
}
36-
),
36+
),
3737

3838
private = list(
3939
.calculate = function(task, settings) {

0 commit comments

Comments
 (0)