On Pattern-Based Programming towards the Discovery of Frequent Patterns
The problem of frequent pattern discovery is defined
as the process of searching for patterns such as sets of features or items that appear in data frequently. Finding such frequent patterns
has become an important data mining task because it reveals associations, correlations, and many other interesting relationships
hidden in a database. Most of the proposed frequent pattern mining
algorithms have been implemented with imperative programming
languages. Such paradigm is inefficient when set of patterns is large
and the frequent pattern is long. We suggest a high-level declarative
style of programming apply to the problem of frequent pattern
discovery. We consider two languages: Haskell and Prolog. Our
intuitive idea is that the problem of finding frequent patterns should
be efficiently and concisely implemented via a declarative paradigm
since pattern matching is a fundamental feature supported by most
functional languages and Prolog. Our frequent pattern mining
implementation using the Haskell and Prolog languages confirms our
hypothesis about conciseness of the program. The comparative
performance studies on line-of-code, speed and memory usage of
declarative versus imperative programming have been reported in the
paper.
[1] R. Agrawal, T. Imielinski, and A. Swami, "Mining association rules between sets of items in large databases," in Proc. ACM SIGMOD Int. Conf. Management of Data, 1993, pp. 207-216.
[2] R. Agrawal and R. Srikant, "Fast algorithm for mining association rules," in Proc. Int. Conf. Very Large Data Bases, 1994, pp. 487-499.
[3] C. Borgelt, "Frequent item sets miner for FIMI 2003," 2003.
http://www.borgelt.net/software.html
[4] I. Bratko, Prolog Programming for Artificial Intelligence (3rd ed.),
Pearson, 2001.
[5] A. Ceglar and J. Roddick, "Association mining," ACM Computing Surveys, vol. 38, no.2, 2006.
[6] J. Han and M. Kamber, Data Mining: Concepts and Techniques (2nd ed.), Morgan Kaufmann, 2006.
[7] P. Hudak, J. Fasel, and J. Peterson, "A gentle introduction to Haskell,"
Yale University, Technical Report Yale U/DCS/RR-901, 1996.
[8] P. Jones and J. Hughes (eds.), Standard Libraries for the Haskell 98 Programming Languages. Available: http://www.haskell.org/library/.
[9] P. Shenoy, J. Haritsa, S. Sudarshan, G. Bhalotia, M. Bawa, and D. Shah,
"Turbo-charging vertical mining of large databases," in Proc. ACM
SIGMOD Int. Conf. Management of Data, 2000, pp. 22-33.
[10] P. Tan, M. Steinbach, and V. Kumar, Introduction to Data Mining,
Addison Wesley, 2005.
[11] S. Thompson, Haskell: The Craft of Functional Programming (2nd ed.),
Addison Wesley, 1999.
[1] R. Agrawal, T. Imielinski, and A. Swami, "Mining association rules between sets of items in large databases," in Proc. ACM SIGMOD Int. Conf. Management of Data, 1993, pp. 207-216.
[2] R. Agrawal and R. Srikant, "Fast algorithm for mining association rules," in Proc. Int. Conf. Very Large Data Bases, 1994, pp. 487-499.
[3] C. Borgelt, "Frequent item sets miner for FIMI 2003," 2003.
http://www.borgelt.net/software.html
[4] I. Bratko, Prolog Programming for Artificial Intelligence (3rd ed.),
Pearson, 2001.
[5] A. Ceglar and J. Roddick, "Association mining," ACM Computing Surveys, vol. 38, no.2, 2006.
[6] J. Han and M. Kamber, Data Mining: Concepts and Techniques (2nd ed.), Morgan Kaufmann, 2006.
[7] P. Hudak, J. Fasel, and J. Peterson, "A gentle introduction to Haskell,"
Yale University, Technical Report Yale U/DCS/RR-901, 1996.
[8] P. Jones and J. Hughes (eds.), Standard Libraries for the Haskell 98 Programming Languages. Available: http://www.haskell.org/library/.
[9] P. Shenoy, J. Haritsa, S. Sudarshan, G. Bhalotia, M. Bawa, and D. Shah,
"Turbo-charging vertical mining of large databases," in Proc. ACM
SIGMOD Int. Conf. Management of Data, 2000, pp. 22-33.
[10] P. Tan, M. Steinbach, and V. Kumar, Introduction to Data Mining,
Addison Wesley, 2005.
[11] S. Thompson, Haskell: The Craft of Functional Programming (2nd ed.),
Addison Wesley, 1999.
@article{"International Journal of Information, Control and Computer Sciences:60699", author = "Kittisak Kerdprasop and Nittaya Kerdprasop", title = "On Pattern-Based Programming towards the Discovery of Frequent Patterns", abstract = "The problem of frequent pattern discovery is defined
as the process of searching for patterns such as sets of features or items that appear in data frequently. Finding such frequent patterns
has become an important data mining task because it reveals associations, correlations, and many other interesting relationships
hidden in a database. Most of the proposed frequent pattern mining
algorithms have been implemented with imperative programming
languages. Such paradigm is inefficient when set of patterns is large
and the frequent pattern is long. We suggest a high-level declarative
style of programming apply to the problem of frequent pattern
discovery. We consider two languages: Haskell and Prolog. Our
intuitive idea is that the problem of finding frequent patterns should
be efficiently and concisely implemented via a declarative paradigm
since pattern matching is a fundamental feature supported by most
functional languages and Prolog. Our frequent pattern mining
implementation using the Haskell and Prolog languages confirms our
hypothesis about conciseness of the program. The comparative
performance studies on line-of-code, speed and memory usage of
declarative versus imperative programming have been reported in the
paper.", keywords = "Frequent pattern mining, functional programming,pattern matching, logic programming.", volume = "1", number = "11", pages = "3614-6", }