Releases: JaredSchwartz/RuleMiner.jl
v0.7.0
RuleMiner v0.7.0
Breaking Changes
The breaking changes this release largely have to do with the pretty-printing of Txns
objects. There is also a new package dependency. There were no breaking changes to mining functions.
- Changed truncation behavior of
Txns
pretty-printing to truncate horizontally at item boundaries instead of potentially in the middle of an item name - Set default
Base.show(::IO, Txns)
method to beBase.show(::IO, MIME("text/plain"), Txns)
. This matches the behavior of DataFrames and means thatprintln(Txns)
will now display the pretty-printed output - Added
OhMyThreads
package dependency
Internal/Non-breaking changes
- Optimized Txns file-reading constructor helper functions.
- Use OhMyThreads channels for thread-local data storage to keep in line with best practices and prepare for Julia 1.12
- This affected the internal implementation of the
apriori
function - This affected the
fast_convert
helper function that underpins all of the tabular mining functions - This affected the
FPTree
constructor which underpins all of the FP mining functions - In my testing, I saw no significant performance differences between the old and new implementations.
- This affected the internal implementation of the
Other updates
New docs site made with DocumenterVitepress.jl
is now live! This means a big visual refresh, and I also took the time to reorganize and rewrite a bunch of the information as well. There's now an extensive quick start guide, as well as reference pages with a little more information about association rule and itemset mining themselves. Highly encourage you to check it out!
Merged pull requests:
- Bump codecov/codecov-action from 4 to 5 (#51) (@dependabot[bot])
- Txns enhancements (#54) (@JaredSchwartz)
- Move to DocumenterViteress.jl for docs (#55) (@JaredSchwartz)
- Add pretty printing format (MIME"text/plain") to println() output (#57) (@JaredSchwartz)
- Fix improper thread local storage (#58) (@JaredSchwartz)
- Rework readme (#59) (@JaredSchwartz)
Closed issues:
- Likely erroneous use of
Threads.nthreads
andThreads.threadid
(#56)
v0.6.3
RuleMiner v0.6.3
Optimized Txns
file-reading constructor to be ~ 2x faster and use ~50% less memory.
Merged pull requests:
- Optimize
apriori
(#50) (@JaredSchwartz) - Optimize Txns file reading (#52) (@JaredSchwartz)
v0.6.2
v0.6.1
v0.6.0
RuleMiner v0.6.0
Merged pull requests:
- Return single element when no n is specified in first and last (#45) (@Tortar)
- Add confidence filtering to apriori (#47) (@JaredSchwartz)
- Fix show() truncation and add tests (#48) (@JaredSchwartz)
Closed issues:
- Add confidence filtering to apriori (#46)
v0.5.0
RuleMiner v0.5.0
- Minimum supported version of Julia is now 1.10
- New direct dependency on PrettyTables.jl (though it was already an indirect dependency)
- Reworked
Transactions
objects- Renamed to
Txns
. TheTransactions
label is now an abstract type which will include other, future, transactions-type objects. - Moved
load_transactions
to just being a constructor for the struct - Reading files is now ~45% faster and uses ~70% less memory
- Added validation checks to the constructors with meaningful error messages
- Added pretty printing through a
Base.Show
method - Added other utility methods, including for:
Base.getindex
Base.first
Base.last
Base.length
- Renamed to
- Exposed and documented
FPTree
objects for the public APIFPTree
objects can now be created fromTxns
and assigned to variables outside of FP functions, allowing for re-use.- All FP functions (
fpgrowth
,fpclose
, andfpmax
) now acceptFPTree
objects in thedata
argument. This significantly speeds up execution time if a pre-made tree is provided - Added pretty printing through a
Base.Show
method
- Added
recover_maximal
function to recover frequent itemsets from maximal itemsets
Merged pull requests:
- Expand transactions objects (#38) (@JaredSchwartz)
- Reorganize code into folders by type (#40) (@JaredSchwartz)
- Make FPTree public (#42) (@JaredSchwartz)
- Add maximal recovery function (#43) (@JaredSchwartz)
- Polish for 5.0 (#44) (@JaredSchwartz)
Closed issues:
v0.4.1
RuleMiner v0.4.1
Patched bug with FP tree creation that was causing race conditions and Undef Ref errors.
This had the added benefit of increasing the speed of FP tree creation by 2-3x and reducing RAM usage by 98%.
v0.4.0
RuleMiner v0.4.0
Merged pull requests:
- Add FPMax algorithm (#29) (@JaredSchwartz)
- Remove LuxurySparse dependency (#30) (@JaredSchwartz)
- Add GenMax Algorithm (#31) (@JaredSchwartz)
- Overhaul Documentation (#32) (@JaredSchwartz)
- Refine Documentation (#33) (@JaredSchwartz)
Closed issues:
v0.3.1
RuleMiner v0.3.1
Patch release to fix inconsistencies in the conversion between integer and float support in the apriori algorithm
v0.3.0
RuleMiner v0.3.0
Merged pull requests:
- Add FPClose algorithm (#20) (@JaredSchwartz)
- Add CHARM algorithm (#21) (@JaredSchwartz)
- Add CARPENTER Algorithm (#22) (@JaredSchwartz)
- Add LCM Algorithm (#23) (@JaredSchwartz)
- Add levelwise algorithm and Combinatorics dependency (#25) (@JaredSchwartz)
- Clean up and reorganize for 0.3.0 (#26) (@JaredSchwartz)
Closed issues: