fixed trace messages

This commit is contained in:
IGI-111
2015-04-05 19:28:57 +02:00
parent ac068094a4
commit a468e946e3

View File

@@ -3,7 +3,7 @@ module FrequentPatterns (
) where ) where
import DataModel import DataModel
import qualified Data.Set as Set import qualified Data.Set as Set
import Debug.Trace (traceShow) import Debug.Trace (trace)
import qualified Data.List as List import qualified Data.List as List
semiUnion :: ItemSet -> ItemSet -> ItemSet semiUnion :: ItemSet -> ItemSet -> ItemSet
@@ -22,7 +22,7 @@ semiUnion (ItemSet set1) (ItemSet set2) = ItemSet $
-- generate the next level in a bottom-up route -- generate the next level in a bottom-up route
generateNextLevel :: [ItemSet] -> [ItemSet] generateNextLevel :: [ItemSet] -> [ItemSet]
generateNextLevel level = traceShow ("Computing level " ++ show (isSize (head level))) $ generateNextLevel level = trace ("Computing level " ++ show (isSize (head level))) $
foldr (\value old -> generate value ++ old) [] level where foldr (\value old -> generate value ++ old) [] level where
generate value = takeWhile (/= empty) generate value = takeWhile (/= empty)
(foldr (\x old -> semiUnion value x : old) [] (tail $ List.dropWhile (/= value) level)) (foldr (\x old -> semiUnion value x : old) [] (tail $ List.dropWhile (/= value) level))
@@ -35,5 +35,6 @@ singletons table = Set.toList $ foldr union (Set.fromList []) table where
frequentPatterns :: Frequency -> [ItemSet] -> [[ItemSet]] frequentPatterns :: Frequency -> [ItemSet] -> [[ItemSet]]
frequentPatterns thresh table = until (\x -> [] == head x) frequentPatterns thresh table = until (\x -> [] == head x)
(\x -> filterByFrequency (generateNextLevel (head x)) : x) [firstLevel] where (\x -> filterByFrequency (generateNextLevel (head x)) : x) [firstLevel] where
firstLevel = filterByFrequency $ map (\x -> ItemSet $ Set.fromList [x]) (singletons table) firstLevel = filterByFrequency $ map (\x -> ItemSet $ Set.fromList [x]) $
trace "Generated Singletons" (singletons table)
filterByFrequency = filter (\x -> frequency table x >= thresh) filterByFrequency = filter (\x -> frequency table x >= thresh)