kerschke / flacco Goto Github PK
View Code? Open in Web Editor NEWFeature-Based Landscape Analysis of Continuous and Constrained Optimization Problems
Home Page: http://kerschke.github.io/flacco/
License: Other
Feature-Based Landscape Analysis of Continuous and Constrained Optimization Problems
Home Page: http://kerschke.github.io/flacco/
License: Other
Hi,
First i really appreciate your work.
When installing as a R package as mentioned in the READ_ME, the functions for computing features are not found. In the NAMESPACE file, i checked that they are not exported.
Do we need extra packages that are not mentioned?
I would appreciate if you could tell me exactly how i can make it work
Thank you
..
Measure running time (and eventually also memory usage) for the computation of a feature group.
So far, the GCM and barrier tree functions are just a 1-to-1 translation from matlab to R.
However, the source code is difficult to read/understand and needs to be modularized.
Check, whether nn-computation within nbf-features can be improved.
We should try to include even more tests.
@Dagefoerde could you have a look at it?
In the current implementation of the levelset features, mda
was replaced by rpart
due to a bug in mda
, which resulted in frequent crashes of mda
.
Since the author(s) of mda
apparently fixed that bug (with version 0.4-7), I can re-initiate the original implementation of the levelset features.
@mllg: I know that this is not related to any of your packages, but do you have any idea, why coverall skips the majority of my tests? Actually, it appears as if it is only running test_check("flacco", filter = "^base")
although it should also run tests for other filters.
library(testthat)
# test general stuff:
test_check("flacco", filter = "^base")
# if (identical(Sys.getenv("TRAVIS"), "true") || identical(Sys.getenv("R_EXPENSIVE_TEST_OK"), "true")) {
test_check("flacco", filter = "^plot")
# }
and
library(testthat)
# test features:
# if (identical(Sys.getenv("TRAVIS"), "true") || identical(Sys.getenv("R_EXPENSIVE_TEST_OK"), "true")) {
test_check("flacco", filter = "^cm")
test_check("flacco", filter = "^ela")
test_check("flacco", filter = "^gcm")
test_check("flacco", filter = "^ic")
test_check("flacco", filter = "^misc")
test_check("flacco", filter = "calculateFeatures")
# }
I was already guessing that it might be caused by the if-check prior to these tests (although it used to work until the beginning of February) - but comments around that if
-clause do not help either :-/
Trying to run coveralls
or codecov
results in an error:
> coveralls()
Error in eval(expr, envir, enclos) : Object 'boundary' not found
> codecov()
Error in eval(expr, envir, enclos) : Object 'boundary' not found
As long as this error occurs, we can't really test anymore :-/
Check, how it is possible that L-BFGS-B wants to use infinite values:
Error in optim(as.numeric(par), fn, method = opt.algo, control = opt.algo.control, : L-BFGS-B needs finite values of "fn"
Could be useful for computation of very slow features, such as ela_level
, gcm
and (if possible) ic
.
Function names should be more intuitive and useful, e.g. calculateConvexityFeatures
instead of calculateConvexity
. I plan to do the following changes.
Cell Mapping:
(1) calculateAngle
--> calculateAngleFeatures
(2) calculateCellConvexity
--> calculateCellConvexityFeatures
(3) calculateGradientHomogeneity
--> calculateGradientHomogeneityFeatures
ELA:
(1) calculateConvexity
--> calculateConvexityFeatures
(2) calculateCurvature
--> calculateCurvatureFeatures
(3) calculateLevelset
--> calculateLevelsetFeatures
(4) calculateLocalSearch
--> calculateLocalSearchFeatures
(5) calculateMetaModel
--> calculateMetaModelFeatures
(6) calculateDistribution
--> calculateDistributionFeatures
Misc:
(1) calculateBasics
--> calculateBasicFeatures
(2) calculateDispersion
--> calculateDispersionFeatures
(3) calculateLinModCoefficients
--> calculateLinearModelFeatures
(4) calculateNearestBetter
--> calculateNearestBetterFeatures
(5) calculatePCA
--> calculatePrincipalComponentFeatures
In the required package, it should be added the packages:
When installing flacco as a package, they are not mention as required. But during the run it may crash if these packages are not installed.
Unlike ic.eps.s
and ic.eps.ratio
, ic.eps.max
is not log10
-ed. This results in poor feature scaling.
I'd suggest to add a logarithm here to make them more consistent.
Compare:
ic.eps.s
flacco/R/feature_ic_infocontent.R
Line 131 in 3d74dd1
ic.eps.ratio
aka eps05
flacco/R/feature_ic_infocontent.R
Line 141 in 3d74dd1
ic.eps.max
flacco/R/feature_ic_infocontent.R
Line 144 in 3d74dd1
As a follow up to Marios e-mail, I should re-iterate over the info content features.
We need a counter for the function evaluations of each feature group.
Need to fix the 1-to-1 translation of the barrier tree features.
Within the "ela_curv"
feature set, we make use of the numDeriv
package to compute the gradient and hessian of a function. Unfortunately, the function numDeriv:::genD
, which is called within numDeriv::hessian
, does not care about a function's constraints.
Thus, the estimation of the gradient and hessian need to be re-implemented.
I am trying to use FLACCO to characterise neural network error surfaces. I got the CRAN version of the library, and I get the following error when attempting to create an initial sample with a latin hypercube:
X = createInitialSample(n.obs = 1000, control=list(init_sample.type = "lhs", init_sample.lower = -5, init_sample.upper = 5), dim = calcDim(irisArch))
The result is:
Error in loadNamespace(name) : there is no package called โlhsโ
The issue arises only with lhs. The random option works fine. However, if I understand Mersmann's paper correctly, latin hypercube is not really optional.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.