Releases: ndphillips/FFTrees
FFTrees v2.0.0
FFTrees version 2.0.0 was released on CRAN [on 2023-06-06].
This version adds functionality, improves consistency, and increases robustness.
Changes since last release:
Major changes
- Enabled conversions between tree definition formats and manipulating FFT definitions:
- tree definition and conversion functions:
get_fft_df
,read_fft_df
,write_fft_df
,add_fft_df
- tree trimming functions:
add_nodes
,drop_nodes
,edit_nodes
,flip_exits
,reorder_nodes
,select_nodes
- tree definition and conversion functions:
- Growing FFTs:
- enabled
stopping.rule = "statdelta"
- fixed a bug in
fftrees_grow_fan()
that preventedifan
algorithm from stopping
when finding a perfect FFT (given the currentgoal.chase
parameter)
- enabled
- Handling missing inputs (
NA
values) in data:NA
values in categorical (i.e., character/factor/logical) predictors are treated as<NA>
factor levelsNA
values in numeric predictors are either ignored (by default) or
imputed (as the mean of the corresponding predictor) when creating and using FFTs to decide/predict (if possible)NA
values in the criterion variable are yet to be dealt with
Minor changes
-
Added utility functions (and corresponding verification functions):
get_best_tree()
retrieves the ID of the best tree in anFFTrees
object (givengoal
)get_exit_type()
converts a vector of exit descriptions into FFT exits (givenexit_types
)get_fft_df()
retrieves the tree definitions of anFFTrees
object
-
Added cost information when printing FFTs (with
print.FFTrees()
). -
Improved user feedback (by making
quiet
a list with four options). -
Increased vocabulary for interpreting verbal FFT descriptions (using
my.tree
). -
Improved documentation of included data (e.g., in
FFTrees.guide()
).
Details
- Added global constants and utility functions.
- Added progress bar of cli package (removing dependency on progress).
- Added
exit_types
as global constant. - Improved data cleaning (consistent for training and test data).
- Revised documentation, vignettes, and tests.
The current development version of FFTrees is available at https://github.com/ndphillips/FFTrees.
[FFTrees version 2.0.0 was released on CRAN on 2023-06-06.]
FFTrees v1.9.0
FFTrees version 1.9.0 was released on CRAN [on 2023-02-08].
Apart from adding functionality and fixing minor bugs, this version improves consistency, robustness, and transparency.
Changes since last release:
Major changes
- Enabled optimizing for a user-defined
my.goal
on cue and tree levels (as defined bymy.goal.fun
). - Enabled optimizing for
dprime
on cue and tree levels (by using"dprime"
asgoal.threshold
,goal.chase
, orgoal
values). - Increased vocabulary for interpreting verbal FFT descriptions (using
my.tree
). - Improved
summary.FFTrees()
function:- Included current goal and cost values (if
"cost"
occurs in goals). - Included criterion base rates (in performance statistics on train and test data).
- Included current goal and cost values (if
Minor changes
- Included
dprime
values in cue level statistics (x$cues$thresholds
andx$cues$stats
). - Included
dprime
values in competition statistics (x$competition$train
andx$competition$test
). - Improved user feedback on combinations of goal and cost values.
- Prepared for modular tree translation and editing functions (
util_gfft.R
). - Prepared for global tree notation separator (
fft_node_sep
). - Added decision outcome and cue costs to
asif_results
(infftrees_grow_fan()
).
Details
- Added verification functions (for checking integrity of objects and validity of inputs).
- Deprecated the
rounding
argument ofFFTrees()
. - Re-arranged arguments of key functions (
FFTrees()
andfftrees_create()
) by functionality. - Re-arranged and cleaned code (in main and helper functions).
- Re-defined local constants as global constants (in
util_const.R
). - Revised status badges in
README
. - Tweaked plotting parameters.
- Fixed bugs and revised vignettes.
The current development version of FFTrees is available at https://github.com/ndphillips/FFTrees.
FFTrees v1.8.0
FFTrees version 1.8.0 was released on CRAN [on 2023-01-06].
This version mostly extends and improves existing functionality.
Changes since last release:
Major changes
-
Enabled manually defining FFTs with
tree.definitions
or using FFTs ofobject
inFFTrees()
. -
Enabled setting
goal = 'dprime'
to select FFTs inFFTrees()
. -
Added and improved user feedback (when
quiet = FALSE
).
Minor changes
-
Plotting FFTs with
plot.FFTrees()
:- Show
n.per.icon
legend whenwhat = 'icontree'
. - Bug fix: Removed clipping of titles and labels.
- Tweaked spacing parameters.
- Show
-
Trimmed white space from elements in tree definitions (in
fftrees_apply.R
). -
Added check that cues occur in current data (in
verify_all_cues_in_data()
).
Details
- Removed
anova
from stats imports. - Replaced
expect_is()
by more precise testthat inheritance functions. - Replaced crayon package by cli package.
- Revised documentation and vignettes.
- Fixed bugs and revised code to increase robustness.
The current development version of FFTrees is available at https://github.com/ndphillips/FFTrees.
FFTrees v1.7.5
FFTrees version 1.7.5 was released on CRAN [on 2022-09-15].
This version contains mostly bug fixes, but also improves and revises existing functionality.
Changes since last release:
Major changes
-
Added distinctions between FFTs that "decide" vs. "predict" by using corresponding labels in plots and verbal descriptions.
-
Improved plotting and printing FFTs (with
plot.FFTrees()
andprint.FFTrees()
):- Added new plotting options (e.g.,
what = 'all'
vs.what = 'tree'
andwhat = 'icontree'
). - Added distinction in header of icon guide between FFTs that "decide" (for training data) vs. "predict" (for test data).
- Enabled applying a tree to new test data when providing a data frame as
data
. - Enabled passing some graphical parameters (e.g.,
col
,font
,adj
) to text of panel titles. - Return an invisible
FFTrees
objectx
(to allow re-assigning to globalx
when using new test data).
- Added new plotting options (e.g.,
Minor changes
-
Added
wacc
to measures computed for competing algorithms. -
Plotting with
plot.FFTrees()
:- Adjusted space for title to width of
main
argument. - Deprecated
stats
argument. - Moved utility functions to
helper_plot.R
.
- Adjusted space for title to width of
Details
- Revised documentation and vignettes.
- Renamed internal functions and variables.
The current development version of FFTrees is available at https://github.com/ndphillips/FFTrees.
FFTrees v1.7.0
FFTrees version 1.7.0 was released on CRAN [on 2022-08-31].
This version contains numerous bug fixes and improves or revises existing functionality.
Changes since last release:
Major changes
- Improved functionality of
print.FFTrees()
:- Added
data
argument to print an FFT's training performance (by default) or prediction performance (when test data is available). - Enabled setting
tree
to"best.train"
or"best.test"
(as when plotting FFTs). - Reporting
bacc
orwacc
in Accuracy section (andsens.w
, if deviating from the default of 0.50). - Improved readability of 2x2 confusion table (by right-justifying digits).
- Moved expected cost information from Accuracy to Speed, Frugality, and Cost section.
- Added
- Fixed bugs and improved functionality of
plot.FFTrees()
:- Improved plot for
what = 'ROC'
analogous towhat = 'cues'
. - Reporting
bacc
orwacc
in Accuracy section (andsens.w
value, if deviating from the default of 0.50). - Fixed bug to re-enable setting
tree
to"best.train"
or"best.test"
. - Fixed bug to show correct point labels in ROC curve panel.
- Improved plot for
- Fixed bugs and improved functionality of
showcues()
:- Using current goal of object
x
as cue ranking criterion (rather than always usingwacc
). - Subtitle now shows
sens.w
value whengoal == 'wacc'
. - Cue legend now accommodates 0 <
top
< 10. - Removed redundant
data
argument (asFFTrees
objects only contain cue training data). - Added
alt.goal
argument (to allow ranking cue accuracies by alternative goals). - Added
quiet
argument (to hide feedback messages). - Added subtitle (to signal current cue accuracy ranking criterion).
- Using current goal of object
- Improved version of
summary.FFTrees()
:- Print tree performance summary and goal information (on the console).
- Return tree
definitions
andstats
(as a list).
- Fixed a bug that forced reversals of final exits in the final node when manually creating FFTs with
my.tree
orfftrees_wordstofftrees()
.
Minor changes
- Changed tree statistics for test data from data frames to tibbles.
- Improved feedback on missing decision labels when creating FFTs from descriptions with
my.tree
orfftrees_wordstofftrees()
. - Deprecated
store.data
argument inFFTrees()
.
Details
- Changed primary package maintainer to Hansjoerg Neth, but Nathaniel Phillips is still on board.
- Revised text, examples, and links in vignettes.
- Reduced clutter by recycling code and combining files.
- Cleanup of code and documentation.
The current development version is available at https://github.com/ndphillips/FFTrees.
v1.6.6
- Fixed bug causing
plot.FFTrees()
to not display plots properly.
v1.6.5
Internal updates to get package back on CRAN
v1.6.3
1.6.3
- Additional cleanup to get package back on CRAN after failed submission on July 12, 2022
v1.6.1
plot.FFTrees
no longer saves graphic params changed inpar()
plot.FFTRrees
: Whentest = 'best.test'
and no test data are provided, the information text is no returned withmessage()
rather thanprint()
- Deprecation notes in
plot.FFTrees
are now returned as warnings, not messages