Data Mining Concepts And Techniques Solution Manual
solution%20manual
Data%20Mining%20_%20Concepts%20and%20Techniques%20Solution%20Manual%20(%20PDFDrive.com%20)
Data%20Mining%20_%20Concepts%20and%20Techniques%20Solution%20Manual%20(%20PDFDrive.com%20)
User Manual:
Open the PDF directly: View PDF .
Page Count: 135
Download | |
Open PDF In Browser | View PDF |
Data Mining: Concepts and Techniques 2nd Edition Solution Manual Jiawei Han and Micheline Kamber The University of Illinois at Urbana-Champaign c °Morgan Kaufmann, 2006 Note: For Instructors’ reference only. Do not copy! Do not distribute! ii Contents 1 Introduction 1.11 Exercises 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Data Preprocessing 2.8 Exercises 13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Data Warehouse and OLAP Technology: An Overview 3.7 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Data Cube Computation and Data Generalization 4.5 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Mining Frequent Patterns, Associations, and Correlations 5.7 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Classification and Prediction 6.17 Exercises 3 13 31 31 41 41 53 53 69 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 7 Cluster Analysis 79 7.13 Exercises 79 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Mining Stream, Time-Series, and Sequence Data 8.6 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Graph Mining, Social Network Analysis, and Multirelational Data Mining 9.5 Exercises 103 111 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 11 Applications and Trends in Data Mining 11.7 Exercises 91 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 10 Mining Object, Spatial, Multimedia, Text, and Web Data 10.7 Exercises 91 123 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 1 2 CONTENTS Chapter 1 Introduction 1.11 Exercises 1.1. What is data mining? In your answer, address the following: (a) Is it another hype? (b) Is it a simple transformation of technology developed from databases, statistics, and machine learning? (c) Explain how the evolution of database technology led to data mining. (d) Describe the steps involved in data mining when viewed as a process of knowledge discovery. Answer: Data mining refers to the process or method that extracts or “mines” interesting knowledge or patterns from large amounts of data. (a) Is it another hype? Data mining is not another hype. Instead, the need for data mining has arisen due to the wide availability of huge amounts of data and the imminent need for turning such data into useful information and knowledge. Thus, data mining can be viewed as the result of the natural evolution of information technology. (b) Is it a simple transformation of technology developed from databases, statistics, and machine learning? No. Data mining is more than a simple transformation of technology developed from databases, statistics, and machine learning. Instead, data mining involves an integration, rather than a simple transformation, of techniques from multiple disciplines such as database technology, statistics, machine learning, high-performance computing, pattern recognition, neural networks, data visualization, information retrieval, image and signal processing, and spatial data analysis. (c) Explain how the evolution of database technology led to data mining. Database technology began with the development of data collection and database creation mechanisms that led to the development of effective mechanisms for data management including data storage and retrieval, and query and transaction processing. The large number of database systems offering query and transaction processing eventually and naturally led to the need for data analysis and understanding. Hence, data mining began its development out of this necessity. (d) Describe the steps involved in data mining when viewed as a process of knowledge discovery. The steps involved in data mining when viewed as a process of knowledge discovery are as follows: • Data cleaning, a process that removes or transforms noise and inconsistent data • Data integration, where multiple data sources may be combined 3 4 CHAPTER 1. INTRODUCTION • Data selection, where data relevant to the analysis task are retrieved from the database • Data transformation, where data are transformed or consolidated into forms appropriate for mining • Data mining, an essential process where intelligent and efficient methods are applied in order to extract patterns • Pattern evaluation, a process that identifies the truly interesting patterns representing knowledge based on some interestingness measures • Knowledge presentation, where visualization and knowledge representation techniques are used to present the mined knowledge to the user 1.2. Present an example where data mining is crucial to the success of a business. What data mining functions does this business need? Can they be performed alternatively by data query processing or simple statistical analysis? Answer: A department store, for example, can use data mining to assist with its target marketing mail campaign. Using data mining functions such as association, the store can use the mined strong association rules to determine which products bought by one group of customers are likely to lead to the buying of certain other products. With this information, the store can then mail marketing materials only to those kinds of customers who exhibit a high likelihood of purchasing additional products. Data query processing is used for data or information retrieval and does not have the means for finding association rules. Similarly, simple statistical analysis cannot handle large amounts of data such as those of customer records in a department store. 1.3. Suppose your task as a software engineer at Big-University is to design a data mining system to examine their university course database, which contains the following information: the name, address, and status (e.g., undergraduate or graduate) of each student, the courses taken, and their cumulative grade point average (GPA). Describe the architecture you would choose. What is the purpose of each component of this architecture? Answer: A data mining architecture that can be used for this application would consist of the following major components: • A database, data warehouse, or other information repository, which consists of the set of databases, data warehouses, spreadsheets, or other kinds of information repositories containing the student and course information. • A database or data warehouse server, which fetches the relevant data based on the users’ data mining requests. • A knowledge base that contains the domain knowledge used to guide the search or to evaluate the interestingness of resulting patterns. For example, the knowledge base may contain concept hierarchies and metadata (e.g., describing data from multiple heterogeneous sources). • A data mining engine, which consists of a set of functional modules for tasks such as classification, association, classification, cluster analysis, and evolution and deviation analysis. • A pattern evaluation module that works in tandem with the data mining modules by employing interestingness measures to help focus the search towards interesting patterns. • A graphical user interface that provides the user with an interactive approach to the data mining system. 1.11. EXERCISES 5 1.4. How is a data warehouse different from a database? How are they similar? Answer: • Differences between a data warehouse and a database: A data warehouse is a repository of information collected from multiple sources, over a history of time, stored under a unified schema, and used for data analysis and decision support; whereas a database, is a collection of interrelated data that represents the current status of the stored data. There could be multiple heterogeneous databases where the schema of one database may not agree with the schema of another. A database system supports ad-hoc query and on-line transaction processing. Additional differences are detailed in Section 3.1.1 Differences between Operational Databases Systems and Data Warehouses. • Similarities between a data warehouse and a database: Both are repositories of information, storing huge amounts of persistent data. 1.5. Briefly describe the following advanced database systems and applications: object-relational databases, spatial databases, text databases, multimedia databases, the World Wide Web. Answer: • An objected-oriented database is designed based on the object-oriented programming paradigm where data are a large number of objects organized into classes and class hierarchies. Each entity in the database is considered as an object. The object contains a set of variables that describe the object, a set of messages that the object can use to communicate with other objects or with the rest of the database system, and a set of methods where each method holds the code to implement a message. • A spatial database contains spatial-related data, which may be represented in the form of raster or vector data. Raster data consists of n-dimensional bit maps or pixel maps, and vector data are represented by lines, points, polygons or other kinds of processed primitives, Some examples of spatial databases include geographical (map) databases, VLSI chip designs, and medical and satellite images databases. • A text database is a database that contains text documents or other word descriptions in the form of long sentences or paragraphs, such as product specifications, error or bug reports, warning messages, summary reports, notes, or other documents. • A multimedia database stores images, audio, and video data, and is used in applications such as picture content-based retrieval, voice-mail systems, video-on-demand systems, the World Wide Web, and speech-based user interfaces. • The World Wide Web provides rich, world-wide, on-line information services, where data objects are linked together to facilitate interactive access. Some examples of distributed information services associated with the World Wide Web include America Online, Yahoo!, AltaVista, and Prodigy. 1.6. Define each of the following data mining functionalities: characterization, discrimination, association and correlation analysis, classification, prediction, clustering, and evolution analysis. Give examples of each data mining functionality, using a real-life database that you are familiar with. Answer: • Characterization is a summarization of the general characteristics or features of a target class of data. For example, the characteristics of students can be produced, generating a profile of all the University first year computing science students, which may include such information as a high GPA and large number of courses taken. • Discrimination is a comparison of the general features of target class data objects with the general features of objects from one or a set of contrasting classes. For example, the general features of students with high GPA’s may be compared with the general features of students with low GPA’s. The resulting 6 CHAPTER 1. INTRODUCTION description could be a general comparative profile of the students such as 75% of the students with high GPA’s are fourth-year computing science students while 65% of the students with low GPA’s are not. • Association is the discovery of association rules showing attribute-value conditions that occur frequently together in a given set of data. For example, a data mining system may find association rules like major(X, “computing science””) ⇒ owns(X, “personal computer”) [support = 12%, conf idence = 98%] where X is a variable representing a student. The rule indicates that of the students under study, 12% (support) major in computing science and own a personal computer. There is a 98% probability (confidence, or certainty) that a student in this group owns a personal computer. • Classification differs from prediction in that the former constructs a set of models (or functions) that describe and distinguish data classes or concepts, whereas the latter builds a model to predict some missing or unavailable, and often numerical, data values. Their similarity is that they are both tools for prediction: Classification is used for predicting the class label of data objects and prediction is typically used for predicting missing numerical data values. • Clustering analyzes data objects without consulting a known class label. The objects are clustered or grouped based on the principle of maximizing the intraclass similarity and minimizing the interclass similarity. Each cluster that is formed can be viewed as a class of objects. Clustering can also facilitate taxonomy formation, that is, the organization of observations into a hierarchy of classes that group similar events together. • Data evolution analysis describes and models regularities or trends for objects whose behavior changes over time. Although this may include characterization, discrimination, association, classification, or clustering of time-related data, distinct features of such an analysis include time-series data analysis, sequence or periodicity pattern matching, and similarity-based data analysis. 1.7. What is the difference between discrimination and classification? Between characterization and clustering? Between classification and prediction? For each of these pairs of tasks, how are they similar? Answer: • Discrimination differs from classification in that the former refers to a comparison of the general features of target class data objects with the general features of objects from one or a set of contrasting classes, while the latter is the process of finding a set of models (or functions) that describe and distinguish data classes or concepts for the purpose of being able to use the model to predict the class of objects whose class label is unknown. Discrimination and classification are similar in that they both deal with the analysis of class data objects. • Characterization differs from clustering in that the former refers to a summarization of the general characteristics or features of a target class of data while the latter deals with the analysis of data objects without consulting a known class label. This pair of tasks is similar in that they both deal with grouping together objects or data that are related or have high similarity in comparison to one another. • Classification differs from prediction in that the former is the process of finding a set of models (or functions) that describe and distinguish data class or concepts while the latter predicts missing or unavailable, and often numerical, data values. This pair of tasks is similar in that they both are tools for prediction: Classification is used for predicting the class label of data objects and prediction is typically used for predicting missing numerical data values. 1.11. EXERCISES 7 1.8. Based on your observation, describe another possible kind of knowledge that needs to be discovered by data mining methods but has not been listed in this chapter. Does it require a mining methodology that is quite different from those outlined in this chapter? Answer: There is no standard answer for this question and one can judge the quality of an answer based on the freshness and quality of the proposal. For example, one may propose partial periodicity as a new kind of knowledge, where a pattern is partial periodic if only some offsets of a certain time period in a time series demonstrate some repeating behavior. 1.9. List and describe the five primitives for specifying a data mining task. Answer: The five primitives for specifying a data-mining task are: • Task-relevant data: This primitive specifies the data upon which mining is to be performed. It involves specifying the database and tables or data warehouse containing the relevant data, conditions for selecting the relevant data, the relevant attributes or dimensions for exploration, and instructions regarding the ordering or grouping of the data retrieved. • Knowledge type to be mined: This primitive specifies the specific data mining function to be performed, such as characterization, discrimination, association, classification, clustering, or evolution analysis. As well, the user can be more specific and provide pattern templates that all discovered patterns must match. These templates, or metapatterns (also called metarules or metaqueries), can be used to guide the discovery process. • Background knowledge: This primitive allows users to specify knowledge they have about the domain to be mined. Such knowledge can be used to guide the knowledge discovery process and evaluate the patterns that are found. Concept hierarchies and user beliefs regarding relationships in the data are forms of background knowledge. • Pattern interestingness measure: This primitive allows users to specify functions that are used to separate uninteresting patterns from knowledge and may be used to guide the mining process, as well as to evaluate the discovered patterns. This allows the user to confine the number of uninteresting patterns returned by the process, as a data mining process may generate a large number of patterns. Interestingness measures can be specified for such pattern characteristics as simplicity, certainty, utility and novelty. • Visualization of discovered patterns: This primitive refers to the form in which discovered patterns are to be displayed. In order for data mining to be effective in conveying knowledge to users, data mining systems should be able to display the discovered patterns in multiple forms such as rules, tables, cross tabs (cross-tabulations), pie or bar charts, decision trees, cubes or other visual representations. 1.10. Describe why concept hierarchies are useful in data mining. Answer: Concept hierarchies define a sequence of mappings from a set of lower-level concepts to higher-level, more general concepts and can be represented as a set of nodes organized in a tree, in the form of a lattice, or as a partial order. They are useful in data mining because they allow the discovery of knowledge at multiple levels of abstraction and provide the structure on which data can be generalized (rolled-up) or specialized (drilled-down). Together, these operations allow users to view the data from different perspectives, gaining further insight into relationships hidden in the data. Generalizing has the advantage of compressing the data set, and mining on a compressed data set will require fewer I/O operations. This will be more efficient than mining on a large, uncompressed data set. 8 CHAPTER 1. INTRODUCTION 1.11. Outliers are often discarded as noise. However, one person’s garbage could be another’s treasure. For example, exceptions in credit card transactions can help us detect the fraudulent use of credit cards. Taking fraudulence detection as an example, propose two methods that can be used to detect outliers and discuss which one is more reliable. Answer: • Using clustering techniques: After clustering, the different clusters represent the different kinds of data (transactions). The outliers are those data points that do not fall into any cluster. Among the various kinds of clustering methods, density-based clustering may be the most effective. Clustering is detailed in Chapter 8. • Using prediction (or regression) techniques: Constructed a probability (regression) model based on all of the data. If the predicted value for a data point differs greatly from the given value, then the given value may be consider an outlier. Outlier detection based on clustering techniques may be more reliable. Because clustering is unsupervised, we do not need to make any assumptions regarding the data distribution (e.g., density-based methods). In contrast, regression (prediction) methods require us to make some assumptions of the data distribution, which may be inaccurate due to insufficient data. 1.12. Recent applications pay special attention to spatiotemporal data streams. A spatiotemporal data stream contains spatial information that changes over time, and is in the form of stream data, i.e., the data flow in-and-out like possibly infinite streams. (a) Present three application examples of spatiotemporal data streams. (b) Discuss what kind of interesting knowledge can be mined from such data streams, with limited time and resources. (c) Identify and discuss the major challenges in spatiotemporal data mining. (d) Using one application example, sketch a method to mine one kind of knowledge from such stream data efficiently. Answer: (a) Present three application examples of spatiotemporal data streams. i. Sequences of sensor images of a geographical region along time. ii. The climate images from satellites. iii. Data that describe the evolution of natural phenomena, such as forest coverage, forest fire, and so on. (b) Discuss what kind of interesting knowledge can be mined from such data streams, with limited time and resources. The knowledge that can be mined from spatiotemporal data streams really depends on the application. However, one unique type of knowledge about stream data is the patterns of spatial change with respect to the time. For example, the changing of the traffic status of several highway junctions in a city, from the early morning to rush hours and back to off-peak hours, can show clearly where the traffic comes from and goes to and hence, would help the traffic officer plan effective alternative lanes in order to reduce the traffic load. As another example, a sudden appearance of a point in the spectrum space image may indicate that a new planet is being formed. The changing of humidity, temperature, and pressure in climate data may reveal patterns of how a new typhoon is created. (c) Identify and discuss the major challenges in spatiotemporal data mining. One major challenge is how to deal with the continuing large-scale data. Since the data keep flowing in and each snapshot of data is usually huge (e.g., the spectrum image of space), it is [old: almost][new: 1.11. EXERCISES 9 often] impossible to store all of the data. Some aggregation or compression techniques may have to be applied, and old raw data may have to be dropped. Mining under such aggregated (or lossy) data is challenging. In addition, some patterns may occur with respect to a long time period, but it may not be possible to keep the data for such a long duration. Thus, these patterns may not be uncovered. The spatial data sensed may not be so accurate, so the algorithms must have high tolerance with respect to noise. (d) Using one application example, sketch a method to mine one kind of knowledge from such stream data efficiently. Take mining space images as the application. We seek to observe whether any new planet is being created or any old planet is disappearing. This is a change detection problem. Since the image frames keep coming, that is, f1 , . . . , ft , ft+1 , . . ., we can simplify the overall problem to that of detecting whether any planet appears or disappears between two consecutive image frames, ft and ft+1 . The algorithm can be sketched as follows. For each incoming frame, ft+1 , compare it with the previous frame, ft . i. Match the planets in ft+1 with ft . ii. Detect whether there are any “unmatched” planets (where a planet in one of the two frames does not occur in the other). iii. If yes, report a planet appearance (if an unmatched planet appears in the new frame) or a planet disappearance (if an unmatched planet appears in the old frame). In fact, matching between two frames may not be easy because the earth is rotating and thus, the sensed data may have slight variations. Some advanced techniques from image processing may be applied. The overall skeleton of the algorithm is simple. Each new incoming image frame is only compared with the previous one, satisfying the time and resource constraint. The reported change would be useful since it is [old: almost impossible][new: infeasible] for astronomers to dig into every frame to detect whether a new planet has appeared or an old one has disappeared. 1.13. Describe the differences between the following approaches for the integration of a data mining system with a database or data warehouse system: no coupling, loose coupling, semitight coupling, and tight coupling. State which approach you think is the most popular, and why. Answer: The differences between the following architectures for the integration of a data mining system with a database or data warehouse system are as follows. • No coupling: The data mining system uses sources such as flat files to obtain the initial data set to be mined since no database system or data warehouse system functions are implemented as part of the process. Thus, this architecture represents a poor design choice. • Loose coupling: The data mining system is not integrated with the database or data warehouse system beyond their use as the source of the initial data set to be mined and possible use in storage of the results. Thus, this architecture can take advantage of the flexibility, efficiency, and features (such as indexing) that the database and data warehousing systems may provide. However, it is difficult for loose coupling to achieve high scalability and good performance with large data sets as many such systems are memory-based. • Semitight coupling: Some of the data mining primitives, such as aggregation, sorting, or precomputation of statistical functions, are efficiently implemented in the database or data warehouse system for use by the data mining system during mining-query processing. Also, some frequently used intermediate mining results can be precomputed and stored in the database or data warehouse system, thereby enhancing the performance of the data mining system. 10 CHAPTER 1. INTRODUCTION • Tight coupling: The database or data warehouse system is fully integrated as part of the data mining system and thereby provides optimized data mining query processing. Thus, the data mining subsystem is treated as one functional component of an information system. This is a highly desirable architecture as it facilitates efficient implementations of data mining functions, high system performance, and an integrated information processing environment. From the descriptions of the architectures provided above, it can be seen that tight coupling is the best alternative without respect to technical or implementation issues. However, as much of the technical infrastructure needed in a tightly coupled system is still evolving, implementation of such a system is nontrivial. Therefore, the most popular architecture is currently semitight coupling as it provides a compromise between loose and tight coupling. 1.14. Describe three challenges to data mining regarding data mining methodology and user interaction issues. Answer: Challenges to data mining regarding data mining methodology and user interaction issues include the following: mining different kinds of knowledge in databases, interactive mining of knowledge at multiple levels of abstraction, incorporation of background knowledge, data mining query languages and ad hoc data mining, presentation and visualization of data mining results, handling noisy or incomplete data, and pattern evaluation. Below are the descriptions of the first three challenges mentioned: • Mining different kinds of knowledge in databases: Different users are interested in different kinds of knowledge and will require a wide range of data analysis and knowledge discovery tasks such as data characterization, discrimination, association, classification, clustering, trend and deviation analysis, and similarity analysis. Each of these tasks will use the same database in different ways and will require different data mining techniques. • Interactive mining of knowledge at multiple levels of abstraction: Interactive mining, with the use of OLAP operations on a data cube, allows users to focus the search for patterns, providing and refining data mining requests based on returned results. The user can then interactively view the data and discover patterns at multiple granularities and from different angles. • Incorporation of background knowledge: Background knowledge, or information regarding the domain under study such as integrity constraints and deduction rules, may be used to guide the discovery process and allow discovered patterns to be expressed in concise terms and at different levels of abstraction. This helps to focus and speed up a data mining process or judge the interestingness of discovered patterns. 1.15. What are the major challenges of mining a huge amount of data (such as billions of tuples) in comparison with mining a small amount of data (such as a few hundred tuple data set)? Answer: One challenge to data mining regarding performance issues is the efficiency and scalability of data mining algorithms. Data mining algorithms must be efficient and scalable in order to effectively extract information from large amounts of data in databases within predictable and acceptable running times. Another challenge is the parallel, distributed, and incremental processing of data mining algorithms. The need for parallel and distributed data mining algorithms has been brought about by the huge size of many databases, the wide distribution of data, and the computational complexity of some data mining methods. Due to the high cost of some data mining processes, incremental data mining algorithms incorporate database updates without the need to mine the entire data again from scratch. 1.16. Outline the major research challenges of data mining in one specific application domain, such as stream/sensor data analysis, spatiotemporal data analysis, or bioinformatics. 1.11. EXERCISES 11 Answer: Students must research their answers for this question. Major data mining challenges for two applications, that of data streams and bioinformatics, are addressed here. Data Stream Data stream analysis presents multiple challenges. First, data streams are continuously flowing in and out as well as changing dynamically. The data analysis system that will successfully take care of this type of data needs to be in real time and able to adapt to changing patterns that might emerge. Another major challenge is that the size of stream data can be huge or even infinite. Because of this size, only a single or small number of scans are typically allowed. For further details on mining data stream, please consult Chapter 8. Bioinformatics The field of bioinformatics encompasses many other subfields like genomics, proteomics, molecular biology, and chemi-informatics. Each of these individual subfields has many research challenges. Some of the major challenges of data mining in the field of bioinformatics are outlined as follows. (Due to limitations of space, some of the terminology used here may not be explained.) • Data explosion: Biological data are growing at an exponential rate. It has been estimated that genomic and proteomic data are doubling every 12 months. Most of these data are scattered around in unstructured and nonstandard forms in various different databases throughout the research community. Many of the biological experiments do not yield exact results and are prone to errors because it is very difficult to model exact biological conditions and processes. For example, the structure of a protein is not rigid and is dependent on its environment. Hence, the structures determined by nuclear magnetic resonance (NMR) or crystallography experiments may not represent the exact structure of the protein. Since these experiments are performed in parallel by many institutions and scientists, they may each yield slightly different structures. The consolidation and validation of these conflicting data is a difficult challenge. Some research labs have come up with public domain repositories of data, such as the Protein Data Bank (PDB). These have become very popular in the past few years. However, due to concerns of Intellectual Property, a great deal of useful biological information is buried in proprietary databases within large pharmaceutical companies. • Text mining from research publications/repositories: Most of the data generated in the biological research community is from experiments. Most of the results are published, but they are seldom recorded in databases with the experiment details (who, when, how, etc.). Hence, a great deal of useful information is buried in published and unpublished literature. This has given rise to the need for the development of text mining systems. For example, many experimental results regarding protein interactions have been published. Mining this information may provide crucial insight into biological pathways and help predict potential interactions. The extraction and development of domain-specific ontologies is also another related research challenge. • Mining large databases of compounds/molecules: The major steps in a drug discovery phase include target identification, target validation, lead discovery, and lead optimization. The most timeconsuming step is the lead discovery phase. In this step, large databases of compounds are needed to be mined to identify potential lead candidates that will suitably interact with the potential target. Currently, due to the lack of effective data mining systems, this step involves many trial-and-error iterations of wet lab or protein assay experiments. These experiments are highly time-consuming and costly. Hence, one of the current challenges in bioinformatics includes the development of intelligent and computational data mining systems that can eliminate false positives and generate more true positives before the wet lab experimentation stage. This task is particularly challenging, because it involves the development of a mining/screening system that can identify compounds that can dock1 well with the target compound. The docking problem is an especially tricky problem, because it is governed by many physical interactions at the molecular level. Some progress has been made regarding pairwise docking, where large time-consuming Molecular Dynamics (MD) simulation-based optimization 1 Docking is a term used for computational schemes that attempt to find the best “matching” between two molecules: a receptor and a ligand. 12 CHAPTER 1. INTRODUCTION methods can predict docking to a good degree of success. The main problem is the large solution space generated by the complex interactions at the molecular level. The molecular docking problem remains a fairly unsolved problem. The major research challenges in the mining of these interactions include the development of fast and accurate algorithms for screening and ranking these compounds/molecules based on their ability to interact with a given compound/molecule. Other related research areas include protein classification systems based on structure and function. • Pattern analysis and classification of microarray data: A great deal of progress has been made in the past decade regarding the development of algorithms for the analysis of genomic data. Statistical and other methods are available. A large research community in data mining is focusing on adopting these pattern analysis and classification methods for mining microarray and gene expression data. Chapter 2 Data Preprocessing 2.8 Exercises 2.1. Data quality can be assessed in terms of accuracy, completeness, and consistency. Propose two other dimensions of data quality. Answer: Other dimensions that can be used to assess the quality of data include timeliness, believability, value added, interpretability and accessability, described as follows: • Timeliness: Data must be available within a time frame that allows it to be useful for decision making. • Believability: Data values must be within the range of possible results in order to be useful for decision making. • Value added: Data must provide additional value in terms of information that offsets the cost of collecting and accessing it. • Interpretability: Data must not be so complex that the effort to understand the information it provides exceeds the benefit of its analysis. • Accessability: Data must be accessible so that the effort to collect it does not exceed the benefit from its use. 2.2. Suppose that the values for a given set of data are grouped into intervals. The intervals and corresponding frequencies are as follows. age 1-5 5-15 15-20 20-50 50-80 80-110 frequency 200 450 300 1500 700 44 Compute an approximate median value for the data. Answer: Using Equation (2.3), we have L1 = 20, N = 3194, ( = 32.94 years. P 13 f req)l = 950, f reqmedian = 1500, width = 30, median 14 CHAPTER 2. DATA PREPROCESSING 2.3. Give three additional commonly used statistical measures (i.e., not illustrated in this chapter) for the characterization of data dispersion, and discuss how they can be computed efficiently in large databases. Answer: Data dispersion, also known as variance analysis, is the degree to which numeric data tend to spread and can be characterized by such statistical measures as mean deviation, measures of skewness, and the coefficient of variation. The mean deviation is defined as the arithmetic mean of the absolute deviations from the means and is calculated as: PN mean deviation = |x − x̄| , N i=1 (2.1) where x̄ is the arithmetic mean of the values and N is the total number of values. This value will be greater for distributions with a larger spread. A common measure of skewness is: x̄ − mode , s (2.2) which indicates how far (in standard deviations, s) the mean (x̄) is from the mode and whether it is greater or less than the mode. The coefficient of variation is the standard deviation expressed as a percentage of the arithmetic mean and is calculated as: coefficient of variation = s × 100 x̄ (2.3) The variability in groups of observations with widely differing means can be compared using this measure. Note that all of the input values used to calculate these three statistical measures are algebraic measures. Thus, the value for the entire database can be efficiently calculated by partitioning the database, computing the values for each of the separate partitions, and then merging theses values into an algebraic equation that can be used to calculate the value for the entire database. The measures of dispersion described here were obtained from: Statistical Methods in Research and Production, fourth ed., edited by Owen L. Davies and Peter L. Goldsmith, Hafner Publishing Company, NY:NY, 1972. 2.4. Suppose that the data for analysis includes the attribute age. The age values for the data tuples are (in increasing order) 13, 15, 16, 16, 19, 20, 20, 21, 22, 22, 25, 25, 25, 25, 30, 33, 33, 35, 35, 35, 35, 36, 40, 45, 46, 52, 70. (a) What is the mean of the data? What is the median? (b) What is the mode of the data? Comment on the data’s modality (i.e., bimodal, trimodal, etc.). (c) What is the midrange of the data? (d) Can you find (roughly) the first quartile (Q1) and the third quartile (Q3) of the data? (e) Give the five-number summary of the data. (f) Show a boxplot of the data. (g) How is a quantile-quantile plot different from a quantile plot? 2.8. EXERCISES 15 Answer: (a) What is the mean of the data? What is the median? N X The (arithmetic) mean of the data is: x̄ = N1 xi = 809/27 = 30 (Equation 2.1). The median (middle i=1 value of the ordered set, as the number of values in the set is odd) of the data is: 25. (b) What is the mode of the data? Comment on the data’s modality (i.e., bimodal, trimodal, etc.). This data set has two values that occur with the same highest frequency and is, therefore, bimodal. The modes (values occurring with the greatest frequency) of the data are 25 and 35. (c) What is the midrange of the data? The midrange (average of the largest and smallest values in the data set) of the data is: (70 + 13)/2 = 41.5 (d) Can you find (roughly) the first quartile (Q1) and the third quartile (Q3) of the data? The first quartile (corresponding to the 25th percentile) of the data is: 20. The third quartile (corresponding to the 75th percentile) of the data is: 35. (e) Give the five-number summary of the data. The five number summary of a distribution consists of the minimum value, first quartile, median value, third quartile, and maximum value. It provides a good summary of the shape of the distribution and for this data is: 13, 20, 25, 35, 70. (f) Show a boxplot of the data. (Omitted here. Please refer to Figure 2.3 of the textbook.) (g) How is a quantile-quantile plot different from a quantile plot? A quantile plot is a graphical method used to show the approximate percentage of values below or equal to the independent variable in a univariate distribution. Thus, it displays quantile information for all the data, where the values measured for the independent variable are plotted against their corresponding quantile. A quantile-quantile plot however, graphs the quantiles of one univariate distribution against the corresponding quantiles of another univariate distribution. Both axes display the range of values measured for their corresponding distribution, and points are plotted that correspond to the quantile values of the two distributions. A line (y = x) can be added to the graph along with points representing where the first, second and third quantiles lie to increase the graph’s informational value. Points that lie above such a line indicate a correspondingly higher value for the distribution plotted on the y-axis than for the distribution plotted on the x-axis at the same quantile. The opposite effect is true for points lying below this line. 2.5. In many applications, new data sets are incrementally added to the existing large data sets. Thus an important consideration for computing descriptive data summary is whether a measure can be computed efficiently in incremental manner. Use count, standard deviation, and median as examples to show that a distributive or algebraic measure facilitates efficient incremental computation, whereas a holistic measure does not. Answer: • Count: The current count can be stored as a value, and when x number of new values are added, we can easily update count with count + x. This is a distributive measure and is easily updated for incremental additions. • Standard deviation: If we store the sum of the squared existing values and the count of the existing values, we can easily generate the new standard deviation using the formula provided in the book. We simply need to calculate the squared sum of the new numbers, add that to the existing squared sum, update the count of the numbers, and plug that into the calculation to obtain the new standard deviation. All of this is done without looking at the whole data set and is thus easy to compute. 16 CHAPTER 2. DATA PREPROCESSING • Median: To accurately calculate the median, we have to look at every value in the dataset. When we add a new value or values, we have to sort the new set and then find the median based on that new sorted set. This is much harder and thus makes the incremental addition of new values difficult. 2.6. In real-world data, tuples with missing values for some attributes are a common occurrence. Describe various methods for handling this problem. Answer: The various methods for handling the problem of missing values in data tuples include: (a) Ignoring the tuple: This is usually done when the class label is missing (assuming the mining task involves classification or description). This method is not very effective unless the tuple contains several attributes with missing values. It is especially poor when the percentage of missing values per attribute varies considerably. (b) Manually filling in the missing value: In general, this approach is time-consuming and may not be a reasonable task for large data sets with many missing values, especially when the value to be filled in is not easily determined. (c) Using a global constant to fill in the missing value: Replace all missing attribute values by the same constant, such as a label like “Unknown,” or −∞. If missing values are replaced by, say, “Unknown,” then the mining program may mistakenly think that they form an interesting concept, since they all have a value in common — that of “Unknown.” Hence, although this method is simple, it is not recommended. (d) Using the attribute mean for quantitative (numeric) values or attribute mode for categorical (nominal) values: For example, suppose that the average income of AllElectronics customers is $28,000. Use this value to replace any missing values for income. (e) Using the attribute mean for quantitative (numeric) values or attribute mode for categorical (nominal) values, for all samples belonging to the same class as the given tuple: For example, if classifying customers according to credit risk, replace the missing value with the average income value for customers in the same credit risk category as that of the given tuple. (f) Using the most probable value to fill in the missing value: This may be determined with regression, inference-based tools using Bayesian formalism, or decision tree induction. For example, using the other customer attributes in the data set, we can construct a decision tree to predict the missing values for income. 2.7. Using the data for age given in Exercise 2.4, answer the following. (a) Use smoothing by bin means to smooth the above data, using a bin depth of 3. Illustrate your steps. Comment on the effect of this technique for the given data. (b) How might you determine outliers in the data? (c) What other methods are there for data smoothing? Answer: (a) Use smoothing by bin means to smooth the above data, using a bin depth of 3. Illustrate your steps. Comment on the effect of this technique for the given data. The following steps are required to smooth the above data using smoothing by bin means with a bin depth of 3. • Step 1: Sort the data. (This step is not required here as the data are already sorted.) • Step 2: Partition the data into equal-frequency bins of size 3. 2.8. EXERCISES 17 Bin 1: 13, 15, 16 Bin 2: 16, 19, 20 Bin 3: 20, 21, 22 Bin 4: 22, 25, 25 Bin 5: 25, 25, 30 Bin 6: 33, 33, 35 Bin 7: 35, 35, 35 Bin 8: 36, 40, 45 Bin 9: 46, 52, 70 • Step 3: Calculate the arithmetic mean of each bin. • Step 4: Replace each of the values in each bin by the arithmetic Bin 1: 142/3, 142/3, 142/3 Bin 2: 181/3, 181/3, 181/3 Bin 4: 24, 24, 24 Bin 5: 262/3, 262/3, 262/3 Bin 7: 35, 35, 35 Bin 8: 401/3, 401/3, 401/3 mean calculated for the bin. Bin 3: 21, 21, 21 Bin 6: 332/3, 332/3, 332/3 Bin 9: 56, 56, 56 (b) How might you determine outliers in the data? Outliers in the data may be detected by clustering, where similar values are organized into groups, or “clusters”. Values that fall outside of the set of clusters may be considered outliers. Alternatively, a combination of computer and human inspection can be used where a predetermined data distribution is implemented to allow the computer to identify possible outliers. These possible outliers can then be verified by human inspection with much less effort than would be required to verify the entire initial data set. (c) What other methods are there for data smoothing? Other methods that can be used for data smoothing include alternate forms of binning such as smoothing by bin medians or smoothing by bin boundaries. Alternatively, equal-width bins can be used to implement any of the forms of binning, where the interval range of values in each bin is constant. Methods other than binning include using regression techniques to smooth the data by fitting it to a function such as through linear or multiple regression. Classification techniques can be used to implement concept hierarchies that can smooth the data by rolling-up lower level concepts to higher-level concepts. 2.8. Discuss issues to consider during data integration. Answer: Data integration involves combining data from multiple sources into a coherent data store. Issues that must be considered during such integration include: • Schema integration: The metadata from the different data sources must be integrated in order to match up equivalent real-world entities. This is referred to as the entity identification problem. • Handling redundant data: Derived attributes may be redundant, and inconsistent attribute naming may also lead to redundancies in the resulting data set. Duplications at the tuple level may occur and thus need to be detected and resolved. • Detection and resolution of data value conflicts: Differences in representation, scaling, or encoding may cause the same real-world entity attribute values to differ in the data sources being integrated. 2.9. Suppose a hospital tested the age and body fat data for 18 randomly selected adults with the following result age %fat age %fat 23 9.5 52 34.6 23 26.5 54 42.5 27 7.8 54 28.8 27 17.8 56 33.4 39 31.4 57 30.2 41 25.9 58 34.1 47 27.4 58 32.9 (a) Calculate the mean, median and standard deviation of age and %fat. (b) Draw the boxplots for age and %fat. (c) Draw a scatter plot and a q-q plot based on these two variables. 49 27.2 60 41.2 50 31.2 61 35.7 18 CHAPTER 2. DATA PREPROCESSING (d) Normalize the two variables based on z-score normalization. (e) Calculate the correlation coefficient (Person’s product moment coefficient). Are these two variables positively or negatively correlated? Answer: (a) Calculate the mean, median and standard deviation of age and %fat. For the variable age the mean is 46.44, the median is 51, and the standard deviation is 12.85. For the variable %fat the mean is 28.78, the median is 30.7, and the standard deviation is 8.99. (b) Draw the boxplots for age and %fat. See Figure 2.1. 60 40 55 35 50 30 Values Values 45 40 25 20 35 15 30 10 25 1 age 1 %fat Figure 2.1: A boxplot of the variables age and %fat in Exercise 2.9. (c) Draw a scatter plot and a q-q plot based on these two variables. See Figure 2.2. scatter plot 45 40 40 35 35 30 30 fat fat qq plot 45 25 25 20 20 15 15 10 10 5 20 25 30 35 40 45 50 55 60 65 5 20 25 30 age 35 40 45 50 55 60 65 age Figure 2.2: A q-q plot and a scatter plot of the variables age and %fat in Exercise 2.9. (d) Normalize the two variables based on z-score normalization. 2.8. EXERCISES 19 age z-age %fat z-%fat age z-age %fat z-%fat 23 -1.83 9.5 -2.14 52 0.43 34.6 0.65 23 -1.83 26.5 -0.25 54 0.59 42.5 1.53 27 -1.51 7.8 -2.33 54 0.59 28.8 0.0 27 -1.51 17.8 -1.22 56 0.74 33.4 0.51 39 -0.58 31.4 0.29 57 0.82 30.2 0.16 41 -0.42 25.9 -0.32 58 0.90 34.1 0.59 47 0.04 27.4 -0.15 58 0.90 32.9 0.46 49 0.20 27.2 -0.18 60 1.06 41.2 1.38 50 0.28 31.2 0.27 61 1.13 35.7 0.77 (e) Calculate the correlation coefficient (Pearson’s product moment coefficient). Are these two variables positively or negatively correlated? The correlation coefficient is 0.82. The variables are positively correlated. 2.10. What are the value ranges of the following normalization methods? (a) min-max normalization (b) z-score normalization (c) normalization by decimal scaling Answer: (a) min-max normalization The rage is [new min, new max] (b) z-score normalization The range is [(old min−mean)/stddev, (old max−mean)/stddev]. In general the range for all possible data sets is (−∞, +∞). (c) normalization by decimal scaling The range is (−1.0, 1.0). 2.11. Use the two methods below to normalize the following group of data: 200, 300, 400, 600, 1000 (a) min-max normalization by setting min = 0 and max = 1 (b) z-score normalization Answer: (a) min-max normalization by setting min = 0 and max = 1 original data [0,1] normalized 200 0 300 0.125 400 0.25 600 0.5 1000 1 (b) z-score normalization original data z-score 200 -1.06 300 -0.7 400 -0.35 600 0.35 1000 1.78 2.12. Using the data for age given in Exercise 2.4, answer the following: (a) Use min-max normalization to transform the value 35 for age onto the range [0.0, 1.0]. 20 CHAPTER 2. DATA PREPROCESSING (b) Use z-score normalization to transform the value 35 for age, where the standard deviation of age is 12.94 years. (c) Use normalization by decimal scaling to transform the value 35 for age. (d) Comment on which method you would prefer to use for the given data, giving reasons as to why. Answer: (a) Use min-max normalization to transform the value 35 for age onto the range [0.0, 1.0]. For readability, let A be the attribute age. Using Equation (2.11) with minA = 13, maxA = 70, new minA = 0, new maxA = 1.0, then v = 35 is transformed to v 0 = 0.39. (b) Use z-score normalization to transform the value 35 for age, where the standard deviation of age is 12.94 years. Using Equation (2.12) where A = 809/27 = 29.96 and σA = 12.94, then v = 35 is transformed to v 0 = 0.39. (c) Use normalization by decimal scaling to transform the value 35 for age. Using Equation (2.13) where j = 2, v = 35 is transformed to v 0 = 0.35. (d) Comment on which method you would prefer to use for the given data, giving reasons as to why. Given the data, one may prefer decimal scaling for normalization because such a transformation would maintain the data distribution and be intuitive to interpret, while still allowing mining on specific age groups. Min-max normalization has the undesired effect of not permitting any future values to fall outside of the current minimum and maximum values without encountering an “out of bounds error”. As such values may be present in future data, this method is less appropriate. [new Both min-max and Z-score normalization change the original data quite a bit.] Z-score normalization transforms values into measures that represent their distance from the mean, in terms of standard deviations. This type of transformation may not be as intuitive to the user in comparison with decimal scaling. 2.13. Use a flow chart to summarize the following procedures for attribute subset selection: (a) stepwise forward selection (b) stepwise backward elimination (c) a combination of forward selection and backward elimination Answer: (a) Stepwise forward selection See Figure 2.3. (b) Stepwise backward elimination See Figure 2.4. (c) A combination of forward selection and backward elimination See Figure 2.5. 2.14. Suppose a group of 12 sales price records has been sorted as follows: 5, 10, 11, 13, 15, 35, 50, 55, 72, 92, 204, 215. Partition them into three bins by each of the following methods. (a) equal-frequency partitioning (b) equal-width partitioning 2.8. EXERCISES 21 Figure 2.3: Stepwise forward selection. (c) clustering Answer: (a) equal-frequency partitioning bin 1 bin 2 bin 3 5,10,11,13 15,35,50,55 72,92,204,215 (b) equal-width partitioning The width of each interval is (215 − 5)/3 = 70. bin 1 bin 2 bin 3 5,10,11,13,15,35,50,55,72 92 204,215 (c) clustering We will use a simple clustering technique: partition the data along the 2 biggest gaps in the data. bin 1 bin 2 bin 3 5,10,11,13,15 35,50,55,72,92 204,215 2.15. Using the data for age given in Exercise 2.4, (a) Plot an equal-width histogram of width 10. (b) Sketch examples of each of the following sampling techniques: SRSWOR, SRSWR, cluster sampling, stratified sampling. Use samples of size 5 and the strata “youth”, “middle-aged”, and “senior”. Answer: 22 CHAPTER 2. DATA PREPROCESSING Figure 2.4: Stepwise backward elimination. (a) Plot an equiwidth histogram of width 10. See Figure 2.6. (b) Sketch examples of each of the following sampling techniques: SRSWOR, SRSWR, cluster sampling, stratified sampling. Use samples of size 5 and the strata “young”, “middle-aged”, and “senior”. See Figure 2.7. 2.16. [Contributed by Chen Chen] The median is one of the most important holistic measures in data analysis. Propose several methods for median approximation. Analyze their respective complexity under different parameter settings and decide to what extent the real value can be approximated. Moreover, suggest a heuristic strategy to balance between accuracy and complexity and then apply it to all methods you have given. Answer: This question can be dealt with either theoretically or empirically, but doing some experiments to get the result is perhaps more interesting. Given are some data sets sampled from different distributions, e.g., uniform, Gaussian, exponential, and gamma. (The former two distributions are symmetric, whereas the latter two are skewed). For example, if using Equation (2.3) to do approximation as proposed in the chapter, the most straightforward approach is to partition all of the data into k equal-length intervals. median = L1 + ( P N/2 − ( f req)l )width, f reqmedian (2.3) where P L1 is the lower boundary of the median interval, N is the number of values in the entire data set, ( f req)l is the sum of the frequencies of all of the intervals that are lower than the median interval, f reqmedian is the frequency of the median interval, and width is the width of the median interval. Obviously, the error incurred will be decreased as k becomes larger; however, the time used in the whole procedure will also increase. The product of error made and time used are good optimality measures. From this point, we can perform many tests for each type of distributions (so that the result won’t be dominated 2.8. EXERCISES 23 Figure 2.5: A combination of forward selection and backward elimination. by randomness) and find the k giving the best trade-off. In practice, this parameter value can be chosen to improve system performance. There are also other approaches for median approximation. The student may suggest a few, analyze the best trade-off point, and compare the results from the different approaches. A possible such approach is as follows: Hierarchically divide the whole data set into intervals: first, divide it into k regions and find the region in which the median resides; second, divide this particular region into k subregions, find the subregion in which the median resides; . . . . This iterates until the width of the subregion reaches a predefined threshold, and then the median approximation formula as above stated is applied. In this way, we can confine the median to a smaller area without globally partitioning all of data into shorter intervals, which would be expensive. (The cost is proportional to the number of intervals.) 2.17. [Contributed by Deng Cai] It is important to define or select similarity measures in data analysis. However, there is no commonly accepted subjective similarity measure. Using different similarity measures may deduce different results. Nonetheless, some apparently different similarity measures may be equivalent after some transformation. Suppose we have the following two-dimensional data set: x1 x2 x3 x4 x5 A1 1.5 2 1.6 1.2 1.5 A2 1.7 1.9 1.8 1.5 1.0 (a) Consider the data as two-dimensional data points. Given a new data point, x = (1.4, 1.6) as a query, rank the database points based on similarity with the query using (1) Euclidean distance (Equation 7.5), and (2) cosine similarity (Equation 7.16). (b) Normalize the data set to make the norm of each data point equal to 1. Use Euclidean distance on the transformed data to rank the data points. Answer: 24 CHAPTER 2. DATA PREPROCESSING Figure 2.6: An equiwidth histogram of width 10 for age. (a) Consider the data as two-dimensional data points. Given a new data point, x = (1.4, 1.6) as a query, rank the database points based on similarity with the query using (1) Euclidean distance (Equation 7.5), and (2) cosine similarity (Equation 7.16). pPn 2 The Euclidean distance of two n-dimensional vectors, x and y, is defined as: 2 i=1 (xi − yi ) . The t x ·y cosine similarity of x and y is defined as: , where xt is a transposition of vector x, ||x|| is ||x||||y|| the Euclidean norm of vector x,1 and ||y|| is the Euclidean norm of vector y. Using these definitions we obtain the distance from each point to the query point. x1 0.14 0.9999 Euclidean distance Cosine similarity x2 0.67 0.9957 x3 0.28 0.9999 x4 0.22 0.9990 x5 0.61 0.9653 Based on the Euclidean distance, the ranked order is x1 , x4 , x3 , x5 , x2 . Based on the cosine similarity, the order is x1 , x3 , x4 , x2 , x5 . (b) Normalize the data set to make the norm of each data point equal to 1. Use Euclidean distance on the transformed data to rank the data points. After normalizing the data we have: x 0.6585 0.7526 x1 0.6616 0.7498 x2 0.7250 0.6887 x3 0.6644 0.7474 x4 0.6247 0.7809 x5 0.8321 0.5547 The new Euclidean distance is: Euclidean distance 1 The vector. x1 0.0041 x2 0.0922 q Euclidean normal of vector x = (x1 , x2 , . . . , xn ) is defined as x3 0.0078 x4 0.0441 x5 0.2632 x21 + x22 + . . . + x2n . Conceptually, it is the length of the 2.8. EXERCISES 25 T1 T2 T3 T4 T5 T6 T7 T8 T9 Tuples T10 22 T11 25 T12 25 T13 25 T14 25 T15 30 T16 33 T17 33 T18 33 13 15 16 16 19 20 20 21 22 T19 T20 T21 T22 T23 T24 T25 T26 T27 33 35 35 36 40 45 46 52 70 SRSWOR vs. SRSWR SRSWOR T4 T6 T10 T11 T26 T1 T2 T3 T4 T5 13 15 16 16 19 T6 T7 T8 T9 T10 20 20 21 22 22 (n = 5) 16 20 22 25 32 SRSWR T7 T7 T20 T21 T25 (n = 5) 20 20 35 35 46 Clustering sampling: Initial clusters T11 25 T16 33 T12 25 T17 33 T13 25 T18 33 T14 25 T19 33 T15 30 T20 35 T21 T22 T23 T24 T25 Cluster sampling T6 20 T7 20 T8 21 T9 22 T10 22 T1 T2 T3 T4 T5 T6 T7 T8 T9 13 15 16 16 19 20 20 21 22 young young young young young young young young young T10 T11 T12 T13 T14 T15 T16 T17 T18 35 36 40 45 46 T26 T27 52 70 (m = 2) T21 35 T22 36 T23 40 T24 45 T25 46 Stratified Sampling 22 young 25 young 25 young 25 young 25 young 30 middle age 33 middle age 33 middle age 33 middle age T19 T20 T21 T22 T23 T24 T25 T26 T27 33 35 35 36 40 45 46 52 70 middle age middle age middle age middle age middle age middle age middle age middle age senior Stratified Sampling (according to age) T4 16 young T12 25 young T17 33 middle age T25 46 middle age T27 70 senior Figure 2.7: Examples of sampling: SRSWOR, SRSWR, cluster sampling, stratified sampling. Based on the Euclidean distance of the normalized points, the order is x1 , x3 , x4 , x2 , x5 , which is the same as the cosine similarity order. 2.18. ChiMerge [Ker92] is a supervised, bottom-up (i.e., merge-based) data discretization method. It relies on χ2 analysis: adjacent intervals with the least χ2 values are merged together till the chosen stopping criterion satisfies. (a) Briefly describe how ChiMerge works. (b) Take the IRIS data set, obtained from http://www.ics.uci.edu/∼mlearn/MLRepository.html (UC-Irvine Machine Learning Data Repository), as a data set to be discretized. Perform data discretization for each of the four numerical attributes using the ChiMerge method. (Let the stopping criteria be: maxinterval = 6). You need to write a small program to do this to avoid clumsy numerical computation. Submit your simple analysis and your test results: split points, final intervals, and your documented source program. Answer: (a) Briefly describe how ChiMerge works. The basic algorithm of chiMerge is: begin sort values in ascending order 26 CHAPTER 2. DATA PREPROCESSING assign a separate interval to each distinct value while stopping criteria not met begin compute χ2 of every pair of adjacent intervals merge the two intervals with smallest χ2 value end end (b) Take the IRIS data set, obtained from http://www.ics.uci.edu/∼mlearn/MLRepository.html (UC-Irvine Machine Learning Data Repository), as a data set to be discretized. Perform data discretization for each of the four numerical attributes using the ChiMerge method. (Let the stopping criteria be: maxinterval = 6). You need to write a small program to do this to avoid clumsy numerical computation. Submit your simple analysis and your test results: split points, final intervals, and your documented source program. The final intervals are: Sepal length: [4.3 - 4.8],[4.9 - 4.9], [5.0 - 5.4], [5.5 - 5.7], [5.8 - 7.0], [7.1 - 7.9]. Sepal width: [2.0 - 2.2], [2.3 - 2.4], [2.5 - 2.8], [2.9 - 2.9], [3.0 - 3.3], [3.4 - 4.4]. Petal length: [1.0 - 1.9], [3.0 - 4.4], [4.5 - 4.7], [4.8 - 4.9], [5.0 - 5.1], [5.2 - 6.9]. Petal width: [0.1 - 0.6], [1.0 - 1.3], [1.4 - 1.6], [1.7 - 1.7], [1.8 - 1.8], [1.9 - 2.5]. The split points are: Sepal length: 4.3, 4.9, 5.0, 5.5, 5.8, 7.1 Sepal width: 2.0, 2.3, 2.5, 2.9, 3.0, 3.4 Petal length: 1.0, 3.0, 4.5, 4.8, 5.0, 5.2 Petal width: 0.1, 1.0, 1.4, 1.7, 1.8, 1.9 2.19. Propose an algorithm, in pseudocode or in your favorite programming language, for the following: (a) The automatic generation of a concept hierarchy for categorical data based on the number of distinct values of attributes in the given schema (b) The automatic generation of a concept hierarchy for numerical data based on the equal-width partitioning rule (c) The automatic generation of a concept hierarchy for numerical data based on the equal-frequency partitioning rule Answer: (a) The automatic generation of a concept hierarchy for categorical data based on the number of distinct values of attributes in the given schema Pseudocode for the automatic generation of a concept hierarchy for categorical data based on the number of distinct values of attributes in the given schema: begin // array to hold name and distinct value count of attributes // used to generate concept hierarchy array count ary[]; string count ary[].name; // attribute name int count ary[].count; // distinct value count // array to represent concept hierarchy (as an ordered list of values) array concept hierarchy[]; 2.8. EXERCISES 27 for each attribute ’A’ in schema { distinct count = count distinct ’A’; insert (’A’, ’distinct count’) into count ary[]; } sort count ary[] ascending by count; for (i = 0; i < count ary[].length; i++) { // generate concept hierarchy nodes concept hierarchy[i] = count ary[i].name; } end To indicate a minimal count threshold necessary for generating another level in the concept hierarchy, the user could specify an additional parameter. (b) The automatic generation of a concept hierarchy for numeric data based on the equal-width partitioning rule begin // numerical attribute to be used to generate concept hierarchy string concept attb; // array to represent concept hierarchy (as an ordered list of values) array concept hierarchy[]; string concept hierarchy[].name; // attribute name int concept hierarchy[].max; // max value of bin int concept hierarchy[].min; // min value of bin int concept hierarchy[].mean; // mean value of bin int concept hierarchy[].sum; // sum of bin int concept hierarchy[].count; // tuple count of bin int int int int range min; // min data value − user specified range max; // max data value − user specified step; // width of bins − user specified j=0; // initialize concept hierarchy array for (i=0; i < range max; i+=step) { concept hierarchy[j].name = ’level ’ + j; concept hierarchy[j].min = i; concept hierarchy[j].max = i + step − 1; j++; } // initialize final max value if necessary if (i >=range max) { concept hierarchy[j].max = i + step − 1; } // assign each value to a bin by incrementing the appropriate sum and count values for each tuple T in task relevant data set { int k=0; while (T.concept attb > concept hierarchy[k].max) { k++; } concept hierarchy[k].sum += T.concept attb; 28 CHAPTER 2. DATA PREPROCESSING concept hierarchy[k].count++; } // calculate the bin metric used to represent the value of each level // in the concept hierarchy for i=0; i < concept hierarchy[].length; i++) { concept hierarchy[i].mean = concept hierarchy[i].sum / concept hierarchy[i].count; } end The user can specify more meaningful names for the concept hierarchy levels generated by reviewing the maximum and minimum values of the bins, with respect to background knowledge about the data (i.e., assigning the labels young, middle-aged and old to a three level hierarchy generated for age.) Also, an alternative binning method could be implemented, such as smoothing by bin modes. (c) The automatic generation of a concept hierarchy for numeric data based on the equal-frequency partitioning rule Pseudocode for the automatic generation of a concept hierarchy for numeric data based on the equalfrequency partitioning rule: begin // numerical attribute to be used to generate concept hierarchy string concept attb; // array to represent concept hierarchy (as an ordered list of values) array concept hierarchy[]; string concept hierarchy[].name; // attribute name int concept hierarchy[].max; // max value of bin int concept hierarchy[].min; // min value of bin int concept hierarchy[].mean; // mean value of bin int concept hierarchy[].sum; // sum of bin int concept hierarchy[].count; // tuple count of bin int bin depth; // depth of bins to be used − user specified int range min; // min data value − user specified int range max; // max data value − user specified // initialize concept hierarchy array for (i=0; i < (range max/bin depth(; i++) { concept hierarchy[i].name = ’level ’ + i; concept hierarchy[i].min = 0; concept hierarchy[i].max = 0; } // sort the task-relevant data set sort data set ascending by concept attb; int j=1; int k=0; // assign each value to a bin by incrementing the appropriate sum, // min and max values as necessary for each tuple T in task relevant data set { concept hierarchy[k].sum += T.concept attb; concept hierarchy[k].count++; if (T.concept attb <= concept hierarchy[k].min) { concept hierarchy[k].min = T.concept attb; } 30 CHAPTER 2. DATA PREPROCESSING if (T.concept attb >= concept hierarchy[k].max) { concept hierarchy[k].max = T.concept attb; }; j++; if (j > bin depth) { k++; j=1; } } // calculate the bin metric used to represent the value of each level // in the concept hierarchy for i=0; i < concept hierarchy[].length; i++) { concept hierarchy[i].mean = concept hierarchy[i].sum / concept hierarchy[i].count; } end This algorithm does not attempt to distribute data values across multiple bins in order to smooth out any difference between the actual depth of the final bin and the desired depth to be implemented. The user can again specify more meaningful names for the concept hierarchy levels generated by reviewing the maximum and minimum values of the bins with respect to background knowledge about the data. 2.20. Robust data loading poses a challenge in database systems because the input data are often dirty. In many cases, an input record may have several missing values and some records could be contaminated (i.e., with some data values out of range or of a different data type than expected). Work out an automated data cleaning and loading algorithm so that the erroneous data will be marked and contaminated data will not be mistakenly inserted into the database during data loading. Answer: begin for each record r begin check r for missing values If possible, fill in missing values according to domain knowledge (e.g. mean, mode, most likely value, etc.). check r for out of range values If possible, correct out of range values according to domain knowledge (e.g. min or max value for the attribute). check r for erroneous data types If possible, correct data type using domain knowledge If r could not be corrected, mark it as bad and output it to a log, otherwise load r into the database. end end The domain knowledge can be a combination of manual and automatic work. We can, for example, use the data in the database to construct a decision tree to induce missing values for a given attribute, and at the same time have human-entered rules on how to correct wrong data types. Chapter 3 Data Warehouse and OLAP Technology: An Overview 3.7 Exercises 3.1. State why, for the integration of multiple heterogeneous information sources, many companies in industry prefer the update-driven approach (which constructs and uses data warehouses), rather than the query-driven approach (which applies wrappers and integrators). Describe situations where the query-driven approach is preferable over the update-driven approach. Answer: For decision-making queries and frequently-asked queries, the update-driven approach is more preferable. This is because expensive data integration and aggregate computation are done before query processing time. For the data collected in multiple heterogeneous databases to be used in decision-making processes, any semantic heterogeneity problems among multiple databases must be analyzed and solved so that the data can be integrated and summarized. If the query-driven approach is employed, these queries will be translated into multiple (often complex) queries for each individual database. The translated queries will compete for resources with the activities at the local sites, thus degrading their performance. In addition, these queries will generate a complex answer set, which will require further filtering and integration. Thus, the query-driven approach is, in general, inefficient and expensive. The update-driven approach employed in data warehousing is faster and more efficient since most of the queries needed could be done off-line. For queries that either are used rarely, reference the most current data, and/or do not require aggregations, the query-driven approach is preferable over the update-driven approach. In this case, it may not be justifiable for an organization to pay the heavy expenses of building and maintaining a data warehouse if only a small number and/or relatively small-sized databases are used. This is also the case if the queries rely on the current data because data warehouses do not contain the most current information. 3.2. Briefly compare the following concepts. You may use an example to explain your point(s). (a) Snowflake schema, fact constellation, starnet query model (b) Data cleaning, data transformation, refresh (c) Enterprise warehouse, data mart, virtual warehouse Answer: (a) Snowflake schema, fact constellation, starnet query model 31 32 CHAPTER 3. DATA WAREHOUSE AND OLAP TECHNOLOGY: AN OVERVIEW The snowflake schema and fact constellation are both variants of the star schema model, which consists of a fact table and a set of dimension tables; the snowflake schema contains some normalized dimension tables, whereas the fact constellation contains a set of fact tables that share some common dimension tables. A starnet query model is a query model (not a schema model), which consists of a set of radial lines emanating from a central point. Each radial line represents one dimension and each point (called a “footprint”) along the line represents a level of the dimension. Each step away from the center represents the stepping down of a concept hierarchy of the dimension. The starnet query model, as suggested by its name, is used for querying and provides users with a global view of OLAP operations. (b) Data cleaning, data transformation, refresh Data cleaning is the process of detecting errors in the data and rectifying them when possible. Data transformation is the process of converting the data from heterogeneous sources to a unified data warehouse format or semantics. Refresh is the function propagating the updates from the data sources to the warehouse. (c) Enterprise warehouse, data mart, virtual warehouse An enterprise warehouse collects all of the information about subjects spanning the entire organization, whereas a data mart contains a subset of corporate-wide data that is of value to a specific group of users. An enterprise warehouse provides corporate-wide data integration, usually from one or more operational systems or external information providers, and is cross-functional in scope, whereas the data mart is confined to specific selected subjects (such as customer, item, and sales for a marketing data mart). An enterprise warehouse typically contains detailed data as well as summarized data, whereas the data in a data mart tend to be summarized. An enterprise data warehouse may be implemented on traditional mainframes, computer superservers, or parallel architecture platforms, while data marts are usually implemented on low-cost departmental servers that are UNIX/LINUX- or Windows-based. The implementation cycle of an enterprise warehouse may take months or years, whereas that of a data mart is more likely to be measured in weeks. A virtual warehouse is a set of views over operational databases. For efficient query processing, only some of the possible summary views may be materialized. A virtual warehouse is easy to build but requires excess capacity on operational database servers. 3.3. Suppose that a data warehouse consists of the three dimensions time, doctor, and patient, and the two measures count and charge, where charge is the fee that a doctor charges a patient for a visit. (a) Enumerate three classes of schemas that are popularly used for modeling data warehouses. (b) Draw a schema diagram for the above data warehouse using one of the schema classes listed in (a). (c) Starting with the base cuboid [day, doctor, patient], what specific OLAP operations should be performed in order to list the total fee collected by each doctor in 2004? (d) To obtain the same list, write an SQL query assuming the data is stored in a relational database with the schema fee (day, month, year, doctor, hospital, patient, count, charge). Answer: (a) Enumerate three classes of schemas that are popularly used for modeling data warehouses. Three classes of schemas popularly used for modeling data warehouses are the star schema, the snowflake schema, and the fact constellations schema. (b) Draw a schema diagram for the above data warehouse using one of the schema classes listed in (a). A star schema is shown in Figure 3.1. (c) Starting with the base cuboid [day, doctor, patient], what specific OLAP operations should be performed in order to list the total fee collected by each doctor in 2004? The operations to be performed are: • Roll-up on time from day to year. 3.7. EXERCISES 33 time dimension table time_key day day_of_week month quarter year patient dimension table fact table time_key doctor_id patient_id charge count doctor dimension table dooctor_id doctor_name phone# address sex patient_id patient_name phone_# sex description address Figure 3.1: A star schema for data warehouse of Exercise 3.3. • Slice for time=2004. • Roll-up on patient from individual patient to all. (d) To obtain the same list, write an SQL query assuming the data is stored in a relational database with the schema f ee(day, month, year, doctor, hospital, patient, count, charge). select doctor, SUM(charge) from fee where year=2004 group by doctor 3.4. Suppose that a data warehouse for Big University consists of the following four dimensions: student, course, semester, and instructor, and two measures count and avg grade. When at the lowest conceptual level (e.g., for a given student, course, semester, and instructor combination), the avg grade measure stores the actual course grade of the student. At higher conceptual levels, avg grade stores the average grade for the given combination. (a) Draw a snowflake schema diagram for the data warehouse. (b) Starting with the base cuboid [student, course, semester, instructor], what specific OLAP operations (e.g., roll-up from semester to year ) should one perform in order to list the average grade of CS courses for each Big University student. (c) If each dimension has five levels (including all), such as “student < major < status < university < all”, how many cuboids will this cube contain (including the base and apex cuboids)? Answer: (a) Draw a snowflake schema diagram for the data warehouse. A snowflake schema is shown in Figure 3.2. 34 CHAPTER 3. DATA WAREHOUSE AND OLAP TECHNOLOGY: AN OVERVIEW course dimension table course_id course_name department semester dimension table univ fact table student_id course_id semester_id instructor_id count avg_grade semester_id semester year student dimension table student_id student_name area_id major status university area dimension table area_id city province country instructor dimension table instructor_id dept rank Figure 3.2: A snowflake schema for data warehouse of Exercise 3.4. (b) Starting with the base cuboid [student, course, semester, instructor], what specific OLAP operations (e.g., roll-up from semester to year) should one perform in order to list the average grade of CS courses for each Big University student. The specific OLAP operations to be performed are: • • • • Roll-up on course from course id to department. Roll-up on student from student id to university. Dice on course, student with department=“CS” and university = “Big University”. Drill-down on student from university to student name. (c) If each dimension has five levels (including all), such as student < major < status < university < all, how many cuboids will this cube contain (including the base and apex cuboids)? This cube will contain 54 = 625 cuboids. 3.5. Suppose that a data warehouse consists of the four dimensions, date, spectator, location, and game, and the two measures, count and charge, where charge is the fare that a spectator pays when watching a game on a given date. Spectators may be students, adults, or seniors, with each category having its own charge rate. (a) Draw a star schema diagram for the data warehouse. (b) Starting with the base cuboid [date, spectator, location, game], what specific OLAP operations should one perform in order to list the total charge paid by student spectators at GM Place in 2004? (c) Bitmap indexing is useful in data warehousing. Taking this cube as an example, briefly discuss advantages and problems of using a bitmap index structure. Answer: (a) Draw a star schema diagram for the data warehouse. A star schema is shown in Figure 3.3. (b) Starting with the base cuboid [date, spectator, location, game], what specific OLAP operations should one perform in order to list the total charge paid by student spectators at GM Place in 2004? The specific OLAP operations to be performed are: 3.7. EXERCISES 35 date dimension table date_id day month quarter year game dimension table game_id game_name description producer sales fact table date_id spectator_id game_id location_id count charge spectator dimension table spectator_id spectator_name status phone address location dimension table location_id location_name phone# street city province country Figure 3.3: A star schema for data warehouse of Exercise 3.5. • • • • • Roll-up on date from date id to year. Roll-up on game from game id to all. Roll-up on location from location id to location name. Roll-up on spectator from spectator id to status. Dice with status=“students”, location name=“GM Place”, and year=2004. (c) Bitmap indexing is useful in data warehousing. Taking this cube as an example, briefly discuss advantages and problems of using a bitmap index structure. Bitmap indexing is advantageous for low-cardinality domains. For example, in this cube, if dimension location is bitmap indexed, then comparison, join, and aggregation operations over location are then reduced to bit arithmetic, which substantially reduces the processing time. Furthermore, strings of long location names can be represented by a single bit, which leads to significant reduction in space and I/O. For dimensions with high cardinality, such as date in this example, the vector used to represent the bitmap index could be very long. For example, a 10-year collection of data could result in 3650 date records, meaning that every tuple in the fact table would require 3650 bits (or approximately 456 bytes) to hold the bitmap index. 3.6. [Contributed by Tao Cheng] A data warehouse can be modeled by either a star schema or a snowflake schema. Briefly describe the similarities and the differences of the two models, and then analyze their advantages and disadvantages with regard to one another. Give your opinion of which might be more empirically useful and state the reasons behind your answer. Answer: They are similar in the sense that they all have a fact table, as well as some dimensional tables. The major difference is that some dimension tables in the snowflake schema are normalized, thereby further splitting the data into additional tables. The advantage of the star schema is its simplicity, which will enable efficiency, but it requires more space. For the snowflake schema, it reduces some redundancy by sharing common tables: the tables are easy to maintain and save some space. However, it is less efficient and the saving of space is negligible in comparison with the typical magnitude of the fact table. Therefore, empirically, the star schema is better simply because efficiency typically has higher priority over space as long as the space requirement is not too huge. In industry, sometimes the data from a snowflake schema may be denormalized 36 CHAPTER 3. DATA WAREHOUSE AND OLAP TECHNOLOGY: AN OVERVIEW into a star schema to speed up processing [1]. Another option is to use a snowflake schema to maintain dimensions, and then present users with the same data collapsed into a star [2]. References for the answer to this question include: [1] Oracle Tip: Understand the difference between star and snowflake schemas in OLAP. http://builder.com.com/5100-6388-5221690.html. [2] Star vs. Snowflake Schemas. http://blogs.msdn.com/bi systems/articles/164525.aspx. 3.7. Design a data warehouse for a regional weather bureau. The weather bureau has about 1,000 probes, which are scattered throughout various land and ocean locations in the region to collect basic weather data, including air pressure, temperature, and precipitation at each hour. All data are sent to the central station, which has collected such data for over 10 years. Your design should facilitate efficient querying and on-line analytical processing, and derive general weather patterns in multidimensional space. Answer: Since the weather bureau has about 1,000 probes scattered throughout various land and ocean locations, we need to construct a spatial data warehouse so that a user can view weather patterns on a map by month, by region, and by different combinations of temperature and precipitation, and can dynamically drill down or roll up along any dimension to explore desired patterns. The star schema of this weather spatial data warehouse can be constructed as shown in Figure 3.4. date dimension table time day month quarter year temperature dimension table temperature temp_range temp_description weather fact table time region temperature precipitation region_map area region dimension table location_id probe_location district city county region_name province precipitation dimension table precipitation prec_range prec_description Figure 3.4: A star schema for a weather spatial data warehouse of Exercise 3.7. To construct this spatial data warehouse, we may need to integrate spatial data from heterogeneous sources and systems. Fast and flexible on-line analytical processing in spatial data warehouses is an important factor. There are three types of dimensions in a spatial data cube: nonspatial dimensions, spatial-tononspatial dimensions, and spatial-to-spatial dimensions. We distinguish two types of measures in a spatial data cube: numerical measures and spatial measures. A nonspatial data cube contains only nonspatial dimensions and numerical measures. If a spatial data cube contains spatial dimensions but no spatial measures, then its OLAP operations (such as drilling or pivoting) can be implemented in a manner similar to that of nonspatial data cubes. If a user needs to use spatial measures in a spatial data cube, we can selectively precompute some spatial measures in the spatial data cube. Which portion of the cube should be selected for materialization depends on the utility (such as access frequency or access priority), sharability of merged regions, and the balanced overall cost of space and on-line computation. 3.7. EXERCISES 37 3.8. A popular data warehouse implementation is to construct a multidimensional database, known as a data cube. Unfortunately, this may often generate a huge, yet very sparse multidimensional matrix. Present an example illustrating such a huge and sparse data cube. Answer: Present an example illustrating such a huge and sparse data cube. An example of a huge and sparse data cube is one that is generated from a telephone company billing database that keeps records on each customer’s billing information, such as contact information, payment methods, date of payment, and detailed call records. For the telephone company, it would be very expensive to keep detailed call records for every customer for longer than three months. Therefore, it would be beneficial to remove that information from the database, keeping only the total number of calls made, the total minutes billed, and the amount billed, for example. The resulting computed data cube for the billing database would have large amounts of missing or removed data, resulting in a huge and sparse data cube. 3.9. Regarding the computation of measures in a data cube: (a) Enumerate three categories of measures, based on the kind of aggregate functions used in computing a data cube. (b) For a data cube with the three dimensions time, location, and item, which category does the function variance belong to? Describe how to compute it if the cube is partitioned into many chunks. PN Hint: The formula for computing variance is N1 i=1 (xi − x̄i )2 , where x̄i is the average of N xi s. (c) Suppose the function is “top 10 sales.” Discuss how to efficiently compute this measure in a data cube. Answer: (a) Enumerate three categories of measures, based on the kind of aggregate functions used in computing a data cube. The three categories of measures are distributive, algebraic, and holistic. (b) For a data cube with three dimensions: time, location, and product, which category does the function variance belong to? Describe how to compute it if the cube is partitioned into many chunks. Pn Hint: The formula for computing variance is n1 i=1 (xi )2 − x̄i 2 , where x̄i is the average of N xi ’s. The variance function is algebraic. If the cube is partitioned into many chunks, the variance can be computed as follows: Read in the chunks one by one, keeping track of the accumulated (1) number of tuples, (2) sum of (xi )2 , and (3) sum of xi . After reading all of the chunks, compute the average of xi ’s as the sum of xi divided by the total number of tuples. Use the formula as shown in the hint to obtain the variance. (c) Suppose the function is “top 10 sales.” Discuss how to efficiently compute this measure in a data cube. For each cuboid, use 10 units to register the top 10 sales found so far. Read the data in each cubiod once. If the sales amount in a tuple is greater than an existing one in the top-10 list, insert the new sales amount from the new tuple into the list, and discard the smallest one in the list. The computation of a higher level cuboid can be performed similarly by propagation of the top-10 cells of its corresponding lower level cuboids. 3.10. Suppose that we need to record three measures in a data cube: min, average, and median. Design an efficient computation and storage method for each measure given that the cube allows data to be deleted incrementally (i.e., in small portions at a time) from the cube. Answer: For min, keep the hmin val, counti pair for each cuboid to register the smallest value and its count. For each deleted tuple, if its value is greater than min val, do nothing. Otherwise, decrement the count of the corresponding node. If a count goes down to zero, recalculate the structure. 38 CHAPTER 3. DATA WAREHOUSE AND OLAP TECHNOLOGY: AN OVERVIEW For average, keep a pair hsum, counti for each cuboid. For each deleted node N , decrement the count and subtract value N from the sum. Compute average = sum/count. For median, keep a small number, p, of centered values (e.g., p = 10) and two counts: up count and down count. Each removal may change the count or remove a centered value. If the median no longer falls among these centered values, recalculate the set. Otherwise, the median can easily be calculated from the above set. 3.11. In data warehouse technology, a multiple dimensional view can be implemented by a relational database technique (ROLAP ), or by a multidimensional database technique (MOLAP ), or by a hybrid database technique (HOLAP ). (a) Briefly describe each implementation technique. (b) For each technique, explain how each of the following functions may be implemented: i. The generation of a data warehouse (including aggregation) ii. Roll-up iii. Drill-down iv. Incremental updating Which implementation techniques do you prefer, and why? Answer: (a) Briefly describe each implementation technique. A ROLAP technique for implementing a multiple dimensional view consists of intermediate servers that stand in between a relational back-end server and client front-end tools, thereby using a relational or extended-relational DBMS to store and manage warehouse data, and OLAP middleware to support missing pieces. A MOLAP implementation technique consists of servers, which support multidimensional views of data through array-based multidimensional storage engines that map multidimensional views directly to data cube array structures. A HOLAP implementation approach combines ROLAP and MOLAP technology, which means that large volumes of detailed data and some very low level aggregations can be stored in a relational database, while some high level aggregations are kept in a separate MOLAP store. (b) For each technique, explain how each of the following functions may be implemented: i. The generation of a data warehouse (including aggregation) ROLAP: Using a ROLAP server, the generation of a data warehouse can be implemented by a relational or extended-relational DBMS using summary fact tables. The fact tables can store aggregated data and the data at the abstraction levels indicated by the join keys in the schema for the given data cube. MOLAP: In generating a data warehouse, the MOLAP technique uses multidimensional array structures to store data and multiway array aggregation to compute the data cubes. HOLAP: The HOLAP technique typically uses a relational database to store the data and some low level aggregations, and then uses a MOLAP to store higher-level aggregations. ii. Roll-up ROLAP: To roll-up on a dimension using the summary fact table, we look for the record in the table that contains a generalization on the desired dimension. For example, to roll-up the date dimension from day to month, select the record for which the day field contains the special value all. The value of the measure field, dollars sold, for example, given in this record will contain the subtotal for the desired roll-up. MOLAP: To perform a roll-up in a data cube, simply climb up the concept hierarchy for the desired dimension. For example, one could roll-up on the location dimension from city to country, which is more general. HOLAP: The roll-up using the HOLAP technique will be similar to either ROLAP or MOLAP, depending on the techniques used in the implementation of the corresponding dimensions. 3.7. EXERCISES 39 iii. Drill-down ROLAP: To drill-down on a dimension using the summary fact table, we look for the record in the table that contains a generalization on the desired dimension. For example, to drill-down on the location dimension from country to province or state, select the record for which only the next lowest field in the concept hierarchy for location contains the special value all. In this case, the city field should contain the value all. The value of the measure field, dollars sold, for example, given in this record will contain the subtotal for the desired drill-down. MOLAP: To perform a drill-down in a data cube, simply step down the concept hierarchy for the desired dimension. For example, one could drill-down on the date dimension from month to day in order to group the data by day rather than by month. HOLAP: The drill-down using the HOLAP technique is similar either to ROLAP or MOLAP depending on the techniques used in the implementation of the corresponding dimensions. iv. Incremental updating OLAP: To perform incremental updating, check whether the corresponding tuple is in the summary fact table. If not, insert it into the summary table and propagate the result up. Otherwise, update the value and propagate the result up. MOLAP: To perform incremental updating, check whether the corresponding cell is in the MOLAP cuboid. If not, insert it into the cuboid and propagate the result up. Otherwise, update the value and propagate the result up. HOLAP: similar either to ROLAP or MOLAP depending on the techniques used in the implementation of the corresponding dimensions. (c) Which implementation techniques do you prefer, and why? HOLAP is often preferred since it integrates the strength of both ROLAP and MOLAP methods and avoids their shortcomings. If the cube is quite dense, MOLAP is often preferred. If the data are sparse and the dimensionality is high, there will be too many cells (due to exponential growth) and, in this case, it is often desirable to compute iceberg cubes instead of materializing the complete cubes. 3.12. Suppose that a data warehouse contains 20 dimensions, each with about five levels of granularity. (a) Users are mainly interested in four particular dimensions, each having three frequently accessed levels for rolling up and drilling down. How would you design a data cube structure to efficiently support this preference? (b) At times, a user may want to drill through the cube, down to the raw data for one or two particular dimensions. How would you support this feature? Answer: (a) Users are mainly interested in four particular dimensions, each having three frequently accessed levels for rolling up and drilling down. How would you design a data cube structure to efficiently support this preference? An efficient data cube structure to support this preference would be to use partial materialization, or selected computation of cuboids. By computing only the proper subset of the whole set of possible cuboids, the total amount of storage space required would be minimized while maintaining a fast response time and avoiding redundant computation. (b) At times, a user may want to drill through the cube, down to the raw data for one or two particular dimensions. How would you support this feature? Since the user may want to drill through the cube for only one or two dimensions, this feature could be supported by computing the required cuboids on the fly. Since the user may only need this feature infrequently, the time required for computing aggregates on those one or two dimensions on the fly should be acceptable. 40 CHAPTER 3. DATA WAREHOUSE AND OLAP TECHNOLOGY: AN OVERVIEW 3.13. A data cube, C, has n dimensions, and each dimension has exactly p distinct values in the base cuboid. Assume that there are no concept hierarchies associated with the dimensions. (a) What is the maximum number of cells possible in the base cuboid? (b) What is the minimum number of cells possible in the base cuboid? (c) What is the maximum number of cells possible (including both base cells and aggregate cells) in the data cube, C? (d) What is the minimum number of cells possible in the data cube, C? Answer: (a) What is the maximum number of cells possible in the base cuboid? pn . This is the maximum number of distinct tuples that you can form with p distinct values per dimensions. (b) What is the minimum number of cells possible in the base cuboid? p. You need at least p tuples to contain p distinct values per dimension. In this case no tuple shares any value on any dimension. (c) What is the maximum number of cells possible (including both base cells and aggregate cells) in the data cube, C? (p + 1)n . The argument is similar to that of part (a), but now we have p + 1 because in addition to the p distinct values of each dimension we can also choose ∗. (d) What is the minimum number of cells possible in the data cube, C? (2n − 1) × p + 1. The minimum number of cells is when each cuboid contains only p cells, except for the apex, which contains a single cell. 3.14. What are the differences between the three main types of data warehouse usage: information processing, analytical processing, and data mining? Discuss the motivation behind OLAP mining (OLAM). Answer: Information processing involves using queries to find and report useful information using crosstabs, tables, charts, or graphs. Analytical processing uses basic OLAP operations such as slice-and-dice, drill-down, roll-up, and pivoting on historical data in order to provide multidimensional analysis of data warehouse data. Data mining uses knowledge discovery to find hidden patterns and associations, constructing analytical models, performing classification and prediction, and presenting the mining results using visualization tools. The motivations behind OLAP mining are the following: The high quality of data (i.e., integrated, consistent, and cleaned data) in data warehouses serves as a valuable source for OLAP as well as for data mining. The available information processing infrastructure surrounding data warehouses means that comprehensive information processing and data analysis infrastructures will not need to be constructed from scratch. OLAP-based exploratory data analysis can be realized by coupling on-line analytical mining with data/knowledge visualization tools to allow users to traverse through a database, select portions of relevant data, analyze them at different granularities, and present knowledge/results in different forms. On-line selection of data mining functions allows users who may not know what kinds of knowledge they would like to mine the flexibility to select desired data mining functions and dynamically swap data mining tasks. Chapter 4 Data Cube Computation and Data Generalization 4.5 Exercises 4.1. Assume a base cuboid of 10 dimensions contains only three base cells: (1) (a1 , d2 , d3 , d4 , . . . , d9 , d10 ), (2) (d1 , b2 , d3 , d4 , . . . , d9 , d10 ), and (3) (d1 , d2 , c3 , d4 , . . . , d9 , d10 ), where a1 6= d1 , b2 6= d2 , and c3 6= d3 . The measure of the cube is count. (a) How many nonempty cuboids will a full data cube contain? (b) How many nonempty aggregate (i.e., nonbase) cells will a full cube contain? (c) How many nonempty aggregate cells will an iceberg cube contain if the condition of the iceberg cube is “count ≥ 2”? (d) A cell, c, is a closed cell if there exists no cell, d, such that d is a specialization of cell c (i.e., d is obtained by replacing a ∗ in c by a non-∗ value) and d has the same measure value as c. A closed cube is a data cube consisting of only closed cells. How many closed cells are in the full cube? Answer: (a) How many nonempty cuboids will a complete data cube contain? 210 . (b) How many nonempty aggregated (i.e., nonbase) cells a complete cube will contain? (1) Each cell generates 210 − 1 nonempty aggregated cells, thus in total we should have 3 × 210 − 3 cells with overlaps removed. (2) We have 3 × 27 cells overlapped once (thus count 2) and 1 × 27 (which is (∗, ∗, ∗, d4 , ..., d10 )) overlapped twice (thus count 3). Thus we should remove in total 5 × 27 overlapped cells. (3) Thus we have: 3 × 8 × 27 − 5 × 27 − 3 = 19 × 27 − 3. (c) How many nonempty aggregated cells will an iceberg cube contain if the condition of the iceberg cube is “count ≥ 2”? Analysis: (1) (∗, ∗, d3 , d4 , . . . , d9 , d10 ) has count 2 since it is generated by both cell 1 and cell 2; similarly, we have (2) (∗, d2 , ∗, d4 , . . . , d9 , d10 ):2, (3) (∗, ∗, d3 , d4 , . . . , d9 , d10 ):2; and (4) (∗, ∗, ∗, d4 , . . . , d9 , d10 ):3. Therefore we have, 4 × 27 = 29 . (d) A cell, c, is a closed cell if there exists no cell, d, such that d is a specialization of cell c (i.e., d is obtained by replacing a ∗ in c by a non-∗ value) and d has the same measure value as c. A closed cube is a data cube consisting of only closed cells. How many closed cells are in the full cube? 41 42 CHAPTER 4. DATA CUBE COMPUTATION AND DATA GENERALIZATION There are seven cells, as follows (1) (a1 , d2 , d3 , d4 , . . . , d9 , d10 ) : 1, (2) (d1 , b2 , d3 , d4 , . . . , d9 , d10 ) : 1, (3) (d1 , d2 , c3 , d4 , . . . , d9 , d10 ) : 1, (4) (∗, ∗, d3 , d4 , . . . , d9 , d10 ) : 2, (5) (∗, d2 , ∗, d4 , . . . , d9 , d10 ) : 2, (6) (d1 , ∗, ∗, d4 , . . . , d9 , d10 ) : 2, and (7) (∗, ∗, ∗, d4 , . . . , d9 , d10 ) : 3. 4.2. There are several typical cube computation methods, such as multiway array computation (MultiWay) [ZDN97], BUC (Bottom-Up Computation) [BR99], and Star-Cubing [XHLW03]. Briefly describe these three methods (i.e., use one or two lines to outline the key points), and compare their feasibility and performance under the following conditions: (a) Computing a dense full cube of low dimensionality (e.g., less than 8 dimensions) (b) Computing an iceberg cube of around 10 dimensions with a highly skewed data distribution (c) Computing a sparse iceberg cube of high dimensionality (e.g., over 100 dimensions) Answer: Note that the textbook adopts the application worldview of a data cube as a lattice of cuboids, where a drill-down moves from the apex (all) cuboid, downward in the lattice. Multiway: bottom-up, simultaneous array aggregation, sharing precomputed results, and minimizing memory requirement. BUC: top-down (see above note), recursive partition and conquer, shared sorting Star-Cubing: top-down and bottom-up integration using star-tree, enables simultaneous computation while allows Apriori pruning. (a) Computing dense full cube of low dimensionality (e.g., less than 8 dimensions) Both MultiWay and Star-Cubing work fine and better than BUC. (b) Computing an iceberg cube of around 10 dimensions with a highly skewed data distribution MultiWay does work for iceberg cubes. Star-Cubing works better than BUC for highly skewed data sets. (c) Computing a sparse iceberg cube of high dimensionality (e.g., over 100 dimensions) MultiWay does work for iceberg cubes. Neither BUC nor Star-Cubing work efficiently for highdimensional data. The closed-cube and shell-fragment approaches should be explored. 4.3. [Contributed by Chen Chen] Suppose a data cube has D dimensions, and the base cuboid contains k distinct tuples. (a) Present a formula to calculate the minimum number of cells that the cube, C, may contain. (b) Present a formula to calculate the maximum number of cells that C may contain. (c) Answer parts (a) and (b) above as if the count in each cube cell must be no less than a threshold, v. (d) Answer parts (a) and (b) above as if only closed cells are considered (with the minimum count threshold, v). Answer: 4.5. EXERCISES 43 (a) Present a formula to calculate the minimum number of cells that the cube, C, may contain. To achieve the minimum case, we need to “merge” k distinct tuples as soon as possible so that, on higher levels, there will be fewer cells (there are always k cells in the base cuboid ). Here, we have two cases, which represent two possible extremes, 1. If we drop one specific dimension, say A, then k tuples are immediately “merged” into one. The k tuples are organized like the following: t1 = (a1 , t0 ), t2 = (a2 , t0 ), · · · , tk = (ak , t0 ), where t0 is a (D − 1)-dimensional tuple. However, this scheme is not effective if we keep dimension A and instead drop B, because obviously there would still be k tuples remaining, which is not desirable. 2. Case 1 describes an extreme, where the specified “quantity reduction” only occurs when one particular dimension, A, is rolled-up to all. We can imagine another situation in which the “reduction” occurs in an distributive and “average” manner. Let’s look at an example that illustrates these two processes. Suppose that we have an 8(A) × 8(B) × 8(C) three-dimensional cube, and k = 8. If we follow case 1, then there will be 8 base cells, 1(roll up to all on A)+8+8=17 2-D cells, 1+1+8(roll up to all on two dimensions other than A)=10 1-D cells, and 1 0-D cell. However, if we try case 2, that is building a 2 × 2 × 2 3-dimensional subcube on one “corner” of the full cube and then fill it with 8 tuples, we will get 8 base cells, 4+4+4=12 2-D cells (a roll up in either dimension results in 4 cells), 2+2+2 = 6 1-D cells (likewise), and 1 0-D cell. Since 36 = 8 + 17 + 10 + 1 > 8 + 12 + 6 + 1 = 27, case 2 is better than case 1. It seems that case 2 is always better. Say k = 4, then for case 1 we have 4 base cells, 1+4+4=9 2-D cells, 1+1+4=6 1-D cells, and 1 0-D cell, that is, 4+9+6+1=20 cells in total. For case 2, 22 = 4, then we can only build a 2(B) × 2(C) 2-dimensional subcube: 4 base cells, 2+2+4(roll up to all on A)=8 2-D cells, 1(roll up to all on B and C)+2+2=5 1-D cells, and 1 0-D cell, that is, 4+8+5+1=18 cells in total. A heuristic way to think this over is as follows: we want to put k distinct √ √tuples√in an a × b × c subcube. Case 1 does this in a 1 × 1 × k manner, whereas that of case 2 is 3 k × 3 k × 3 k. Obviously, a + b + c is the number of 1-D cells, and we all know how a + b + c can reach its minimum given the condition that abc = k. To summarize, in order to have the minimum case occur, we shall put all k tuples in an x1 ×x2 ×· · ·×xD subcube satisfying x1 x2 · · · xD = k (if the equality is not possible, we can change it to ≥ and make the objective that of minimizing x1 x2 · · · xD , which means that the subcube should be as small as possible). We choose the vector (x1 , x2 · · · , xD ) such that the xi s are as “close” as possible, which is also the condition that makes x1 + x2 + · · · + xD (see above paragraph) as small as possible. PD Q The total number of cells is 1 + d=1 ( total # of xj s is d xj ). (b) Present a formula to calculate the maximum number of cells that C may contain. The maximum circumstance occurs when k tuples are placed in a completely “irrelevant” or “random” way, where any two tuples, (t11 , t12 , · · · , t1D ) and (t21 , t22 , · · · , t2D ), cannot be “merged” into one unless all D dimensions are rolled-up to all, i.e. t1i 6= t2i , i = 1, 2, · · · , D. Obviously, this can generate the most number of cells: no matter how we choose those dimensions to be dropped, after we do so, there are still k distinct tuples, unless all D dimensions are discarded. This D−1 D 1 0 will result in k(CD + CD + · · · + CD ) + CD = k(2D − 1) + 1 cells. We assume that we can always do placement as proposed, disregarding the fact that dimensionality D and the cardinality ci of each dimension i may place some constraints. (The same assumption is kept throughout for this question). Suppose that there is an 8 × 8 2-dimensional cube. We can place at most 8 tuples in the “irrelevant” manner mentioned above. If we fail to do so (e.g. k = 20), cases will be much more complex and thus are beyond consideration here. The question does not mention how cardinalities of dimensions are set. It can be assumed that we can always increase the cardinalities so that k tuples can be placed in an “irrelevant” style. (c) Answer parts (a) and (b) above as if the count in each cube cell must be no less than a threshold, v. To answer this question, we have a core observation: if all base cells contain at least c tuples, then all aggregate cells will also satisfy the condition. 44 CHAPTER 4. DATA CUBE COMPUTATION AND DATA GENERALIZATION 1. Minimum case: The distinct condition no longer holds here, since c tuples have to be in one identical base cell now. Thus, we can put all k tuples in one base cell, which results in 2D cells in all. 2. Maximum case: We will replace k with b kc c and follow the procedure in part (b), since we can get at most that many base cells in all. (d) Answer parts (a) and (b) above as if only closed cells are considered (with the minimum count threshold, v). From the analysis in part (c), we will not consider the threshold, c, as long as k can be replaced by a new value. 1. Minimum case: We still don’t have the distinct condition here. Considering the number of closed cells, 1 is the minimum if we put all k tuples together in one base cell. 2. Maximum case: Given a fixed tuple composition, say p tuples, {t1 , t2 , · · · , tp }, we can obviously have at most one closed cell. In this way we can get an upper bound of Ck1 + Ck2 + · · · + Ckk = 2k − 1 closed cells. How can we reach this bound? Make a 2 × 2 × · · · × 2 k-dimensional cube, where k tuples are distributed according to the following coordinates: t1 = (1, 0, · · · , 0), t2 = (0, 1, · · · , 0), tk = (0, 0, · · · , 1). Taking (∗1 , ∗2 , · · · , ∗p , 0, · · · , 0) as an instance for t1 , t2 , · · · , tp will make them into one closed cuboid cell, because changing any * to 0 or 1 results in a smaller count, p − 1 or 1. This finishes our construction, because all 2k − 1 closed cells can be formed likewise. The above statements, however, require k ≤ D. We assume that this is the case. We also assume that cardinalities cannot be increased (as in part (b)) to satisfy the condition. 4.4. Suppose that a base cuboid has three dimensions A, B, C, with the following number of cells: |A| = 1, 000, 000, |B| = 100, and |C| = 1000. Suppose that each dimension is evenly partitioned into 10 portions for chunking. (a) Assuming each dimension has only one level, draw the complete lattice of the cube. (b) If each cube cell stores one measure with 4 bytes, what is the total size of the computed cube if the cube is dense? (c) State the order for computing the chunks in the cube that requires the least amount of space, and compute the total amount of main memory space required for computing the 2-D planes. Answer: (a) Assuming each dimension has only one level, draw the complete lattice of the cube. The complete lattice is shown in Figure 4.1. Figure 4.1: A complete lattice for the cube of Exercise 4.4. (b) If each cube cell stores one measure with 4 bytes, what is the total size of the computed cube if the cube is dense? The total size of the computed cube is as follows. 4.5. EXERCISES • • • • • 45 all: 1 A: 1,000,000; B: 100; C: 1, 000; subtotal: 1,001,100 AB: 100,000,000; BC: 100,000; AC: 1,000,000,000; subtotal: 1,100,100,000 ABC:100,000,000,000 Total: 101,101,101,101 cells × 4 bytes = 404,404,404,404 bytes (c) State the order for computing the chunks in the cube that requires the least amount of space, and compute the total amount of main memory space required for computing the 2-D planes. The order of computation that requires the least amount of space is B-C-A. as show in Figure 4.2. Figure 4.2: The order of computation in Exercise 4.4 that requires the least amount of space. The total amount of main memory space required for computing the 2-D planes is: Total space = (100 × 1,000) + (1,000,000 × 10) + (100 × 10,000) = 20,100,000 cells = 80,400,000 bytes. 4.5. Often, the aggregate measure value of many cells in a large data cuboid is zero, resulting in a huge, yet sparse, multidimensional matrix. (a) Design an implementation method that can elegantly overcome this sparse matrix problem. Note that you need to explain your data structures in detail and discuss the space needed, as well as how to retrieve data from your structures. (b) Modify your design in (a) to handle incremental data updates. Give the reasoning behind your new design. Answer: (a) Design an implementation method that can elegantly overcome this sparse matrix problem. Note that you need to explain your data structures in detail and discuss the space needed, as well as how to retrieve data from your structures. A way to overcome the sparse matrix problem is to use multiway array aggregation. (Note: this answer is based on the paper by Zhao, Deshpande, and Naughton entitled “An array-based algorithm for simultaneous multidimensional aggregates” in Proc. 1997 ACM-SIGMOD Int. Conf. Management of Data, pages 159–170, Tucson, Arizona, May 1997 [ZDN97]). The first step consists of partitioning the array-based cube into chunks or subcubes that are small enough to fit into the memory available for cube computation. Each of these chunks is first compressed to remove cells that do not contain any valid data, and is then stored as an object on disk. For storage and retrieval purposes, the “chunkID + offset” can be used as the cell address. The second step involves computing the aggregates by visiting cube cells in an order that minimizes the number of times that each cell must be revisited, thereby reducing memory access and storage costs. By first sorting and computing the planes of the data cube according to their size in ascending order, a smaller plane can be kept in main memory while fetching and computing only one chunk at a time for a larger plane. 46 CHAPTER 4. DATA CUBE COMPUTATION AND DATA GENERALIZATION (b) Modify your design in (a) to handle incremental data updates. Give the reasoning behind your new design. In order to handle incremental data updates, the data cube is first computed as described in (a). Subsequently, only the chunk that contains the cells with the new data is recomputed, without needing to recompute the entire cube. This is because, with incremental updates, only one chunk at a time can be affected. The recomputed value needs to be propagated to its corresponding higher-level cuboids. Thus, incremental data updates can be performed efficiently. 4.6. When computing a cube of high dimensionality, we encounter the inherent curse of dimensionality problem: there exists a huge number of subsets of combinations of dimensions. (a) Suppose that there are only two base cells, {(a1 , a2 , a3 , . . . , a100 ), (a1 , a2 , b3 , . . . , b100 )}, in a 100dimensional base cuboid. Compute the number of nonempty aggregate cells. Comment on the storage space and time required to compute these cells. (b) Suppose we are to compute an iceberg cube from the above. If the minimum support count in the iceberg condition is two, how many aggregate cells will there be in the iceberg cube? Show the cells. (c) Introducing iceberg cubes will lessen the burden of computing trivial aggregate cells in a data cube. However, even with iceberg cubes, we could still end up having to compute a large number of trivial uninteresting cells (i.e., with small counts). Suppose that a database has 20 tuples that map to (or cover) the two following base cells in a 100-dimensional base cuboid, each with a cell count of 10: {(a1 , a2 , a3 , . . . , a100 ) : 10, (a1 , a2 , b3 , . . . , b100 ) : 10}. i. Let the minimum support be 10. How many distinct aggregate cells will there be like the following: {(a1 , a2 , a3 , a4 , . . . , a99 , ∗) : 10, . . . , (a1 , a2 , ∗, a4 , . . . , a99 , a100 ) : 10, . . . , (a1 , a2 , a3 , ∗, . . . , ∗, ∗) : 10}? ii. If we ignore all the aggregate cells that can be obtained by replacing some constants by ∗’s while keeping the same measure value, how many distinct cells are left? What are the cells? Answer: (a) Suppose that there are only two base cells, {(a1 , a2 , a3 , . . . , a100 ), (a1 , a2 , b3 , . . . , b100 )}, in a 100dimensional base cuboid. Compute the number of nonempty aggregate cells. Comment on the storage space and time required to compute these cells. Each base cell generates 2100 −1 aggregate cells. (We subtract 1 because, for example, (a1 , a2 , a3 , . . . , a100 ) is not an aggregate cell.) Thus, the two base cells generate 2×(2100 −1) = 2101 −2 aggregate cells, however, four of these cells are counted twice. These four cells are: (a1 , a2 , ∗, . . . , ∗), (a1 , ∗, . . . , ∗), (∗, a2 , ∗, . . . , ∗), and (∗, ∗, . . . , ∗). Therefore, the total number of cells generated is 2101 − 6. (b) Suppose we are to compute an iceberg cube from the above. If the minimum support count in the iceberg condition is two, how many aggregate cells will there be in the iceberg cube? Show the cells. They are 4: {(a1 , a2 , ∗, . . . , ∗), (a1 , ∗, ∗, . . . , ∗), (∗, a2 , ∗, . . . , ∗), (∗, ∗, ∗, . . . , ∗)}. (c) Introducing iceberg cubes will lessen the burden of computing trivial aggregate cells in a data cube. However, even with iceberg cubes, we could still end up having to compute a large number of trivial uninteresting cells (i.e., with small counts). Suppose that a database has 20 tuples that map to (or cover) the two following base cells in a 100-dimensional base cuboid, each with a cell count of 10: {(a1 , a2 , a3 , . . . , a100 ) : 10, (a1 , a2 , b3 , . . . , b100 ) : 10}. i. Let the minimum support be 10. How many distinct aggregate cells will there be like the following: {(a1 , a2 , a3 , a4 , . . . , a99 , ∗) : 10, . . . , (a1 , a2 , ∗, a4 , . . . , a99 , a100 ) : 10, . . . , (a1 , a2 , a3 , ∗, . . . , ∗, ∗) : 10}? There will be 2101 − 6, as shown above. ii. If we ignore all the aggregate cells that can be obtained by replacing some constants by ∗’s while keeping the same measure value, how many distinct cells are left? What are the cells? There are only three distinct cells left: {(a1 , a2 , a3 , . . . , a100 ) : 10, (a1 , a2 , b3 , . . . , b100 ) : 10, (a1 , a2 , ∗, . . . , ∗) : 20}. 4.5. EXERCISES 47 4.7. Propose an algorithm that computes closed iceberg cubes efficiently. Answer: We base our answer on the algorithm presented in the paper: “Quotient Cube: How to summarize the semantics of a data cube” by Lakshamanan, Pei, and Han. VLDB 2002 [LPH02]. Let the cover of a cell be the set of base tuples that are aggregated in the cell. For example, if we have three base tuples, (a1 , b1 , c1 ), (a1 , b2 , c1 ), (a1 , b1 , c3 ), then the cover of (a1 , b1 , ∗) = {(a1 , b1 , c1 ), (a1 , b1 , c3 )}. Cells with the same cover can be grouped in the same class if they share the same measure. Each class will have an upper bound, which consists of the most specific cells in the class, and a lower bound, which consists of the most general cells in the class. The set of closed cells correspond to the upper bounds of all of the distinct classes that compose the cube. We can compute the classes by following a depth-first search strategy: First look for the upper bound of the cell (∗, ∗, ..., ∗). Let the cells making up this bound be u1 , u2 , ..., uk . We then specialize each ui (assign a value to a ∗ dimension) and recursively find its upper bounds. Finding the upper bounds would depend on the measure. For example, if the measure is count, we can find the upper bound by just instantiating the ∗ to a value v if all base cells share the same value in the dimension. For the above example, the upper bound of (∗, b1 , ∗) is (a1 , b1 , ∗). Incorporating iceberg conditions is not difficult. For example, if we have an antimonotonic condition such as count(∗) > k, we can stop the recursion when we reach an upper bound that does not satisfy the condition. 4.8. Suppose that we would like to compute an iceberg cube for the dimensions, A, B, C, D, where we wish to materialize all cells that satisfy a minimum support count of at least v, and where cardinality(A) < cardinality(B) < cardinality(C)500. Use an iceberg cubing algorithm, such as BUC. Since avg f are > 500 is not antimonotonic, it should be converted into a top-k-avg, i.e., avg 10 (f are) > 500. Use binning plus min sup to prune the computation of the cube. 4.11. (Implementation project) There are four typical data cube computation methods: MultiWay [ZDN97], BUC [BR99], H-cubing [HPDW01], and Star-cubing [XHLW03]. (a) Implement any one of these cube computation algorithms and describe your implementation, experimentation, and performance. Find another student who has implemented a different algorithm on the same platform (e.g., C++ on Linux) and compare your algorithm performance with his/hers. Input: 4.5. EXERCISES 49 i. An n-dimensional base cuboid table (for n < 20), which is essentially a relational table with n attributes; ii. An iceberg condition: count(C) ≥ k where k is a positive integer as a parameter. Output i. The set of computed cuboids that satisfy the iceberg condition, in the order of your output generation; ii. Summary of the set of cuboids in the form of“cuboid ID: the number of nonempty cells”, sorted in alphabetical order of cuboids, e.g., A:155, AB : 120, ABC : 22, ABCD: 4, ABCE : 6, ABD: 36, where the number after “:” represents the number of nonempty cells. (This is used to quickly check the correctness of your results.) (b) Based on your implementation, discuss the following: i. What challenging computation problems are encountered as the number of dimensions grows large? ii. How can iceberg cubing solve the problems of part (a) for some data sets (and characterize such data sets)? iii. Give one simple example to show that sometimes iceberg cubes cannot provide a good solution. (c) Instead of computing a data cube of high dimensionality, we may choose to materialize the cuboids having only a small number of dimension combinations. For example, for a 30-dimensional data cube, we may only compute the 5-dimensional cuboids for every possible 5-dimensional combination. The resulting cuboids form a shell cube. Discuss how easy or hard it is to modify your cube computation algorithm to facilitate such computation. Answer: (a) There is no standard answer for an implementation project. This is to be evaluated on an individual basis. (b) i. What challenging computation problems are encountered as the number of dimensions grows large? The number of cuboids for a cube grows exponentially with the number of dimensions. If the number of dimension grows large, then huge amounts of memory and time are required to compute all of the cuboids. ii. How can iceberg cubing solve the problems of part (a) for some data sets (and characterize such data sets)? Iceberg cubes, by eliminating statistically insignificant aggregated cells, can substantially reduce the number of aggregate cells and therefore greatly reduce the computation. Benefits from iceberg cubing can be maximized if the data sets are sparse but not skewed. This is because in these data sets, there is a relatively low chance that cells will collapse into the same aggregated cell, except for cuboids consisting of a small number of dimensions. Thus, many cells may have values that are less than the threshold and therefore will be pruned. iii. Give one simple example to show that sometimes iceberg cubes cannot provide a good solution. Consider, for example, an OLAP database consisting of 100 dimensions. Let ai,j be the jth value of dimension i. Assume that there are 10 cells in the base cuboid, all of which aggregate to the cell (a1,1 , a2,1 , ..., a99,1 , ∗). Let the support threshold be 10. Then, all 299 descendent cells of this cell satisfy the threshold. In this case, iceberg cubing cannot benefit from the pruning effect. (c) Instead of computing a data cube of high dimensionality, we may choose to materialize the cuboids having only a small number of dimension combinations. For example, for a 30-dimensional data cube, we may only compute the 5-dimensional cuboids for every possible 5-dimensional combination. The resulting cuboids form a shell cube. Discuss how easy or hard it is to modify your cube computation algorithm to facilitate such computation. It is easy to modify the algorithms if they adopt a top-down approach. Consider BUC as an example. We can modify the algorithm to generate a shell cube of a specific number of dimension combinations because it proceeds from the apex (all) cuboid, downward. The process can be stopped when it reaches the maximum number of dimensions. H-cubing and Star-Cubing can be modified in a similar manner. 50 CHAPTER 4. DATA CUBE COMPUTATION AND DATA GENERALIZATION However, multiway array aggregation (MultiWay) is difficult to modify because it computes every cuboid at the same time. 4.12. Consider the following multifeature cube query: Grouping by all subsets of {item, region, month}, find the minimum shelf life in 2004 for each group, and the fraction of the total sales due to tuples whose price is less than $100, and whose shelf life is between 1.25 and 1.5 of the minimum shelf life. (a) Draw the multifeature cube graph for the query. (b) Express the query in extended SQL. (c) Is this a distributive multifeature cube? Why or why not? Answer: (a) Draw the multifeature cube graph for the query. R0 → R1(>= 1.25 ∗ min(shelf ) and <= 1.5 ∗ min(shelf )) (b) Express the query in extended SQL. select from where cube by such that item, region, month, MIN(shelf), SUM(R1) Purchases year = 2004 item, region, month: R1 R1.Shelf >= 1.25*MIN(Shelf) and (R1.Shelf <= 1.5*MIN(Shelf) and R1.Price < 100 (c) Is this a distributive multifeature cube? Why or why not? No, this is not a distributive multifeature cube because of the ≤ conditions in the such that clause. 4.13. For class characterization, what are the major differences between a data cube-based implementation and a relational implementation such as attribute-oriented induction? Discuss which method is most efficient and under what conditions this is so. Answer: For class characterization, the major differences between a data cube-based implementation and a relational based implementation such as attribute-oriented induction include the following: • Process control: Under a data cube-based approach, the process is user-controlled at every step. This includes the selection of the relevant dimensions to be used as well as the application of OLAP operations such as roll-up, roll-down, slicing and dicing. A relational approach does not require user interaction at every step, however, as attribute relevance and ranking is performed automatically. • Supported data types and measures: The relational approach supports complex data types and measures, which restrictions in current OLAP technology do not allow. Thus, OLAP implementations are limited to a more simplified model for data analysis. • Precomputation: An OLAP-based implementation allows for the precomputation of measures at different levels of aggregation (materialization of subdata cubes), which is not supported under a relational approach. 4.5. EXERCISES 51 Based upon these differences, it is clear that a relational approach is more efficient when there are complex data types and measures being used, as well as when there are a very large number of attributes to be considered. This is due to the advantage that automation provides over the efforts that would be required by a user to perform the same tasks. However, when the data set being mined consists of regular data types and measures that are well supported by OLAP technology, then the OLAP-based implementation provides an advantage in efficiency. This results from the time saved by using precomputed measures, as well as the flexibility in investigating mining results provided by OLAP functions. 4.14. Suppose that the following table is derived by attribute-oriented induction. class Programmer DBA birth place USA others USA others count 180 120 20 80 (a) Transform the table into a crosstab showing the associated t-weights and d-weights. (b) Map the class P rogrammer into a (bidirectional) quantitative descriptive rule, for example, ∀X, P rogrammer(X) ⇔ (birth place(X) = “U SA” ∧ . . .)[t : x%, d : y%] . . . Θ(. . .)[t : w%, d : z%]. Answer: (a) Transform the table into a crosstab showing the associated t-weights and d-weights. See Table 4.1. location \ item Programmer DBA both classes count 180 20 200 Canada t-weight d-weight 60% 90% 20% 10% 50% 100% count 120 80 200 Other t-weight d-weight 40% 60% 80% 40% 50% 100% count 300 100 400 both locations t-weight d-weight 100% 75% 100% 25% 100% 100% Table 4.1: A crosstab for birth place of Programmers and DBAs. (b) Map the class P rogrammer into a (bidirectional) quantitative descriptive rule, for example, ∀X, P rogrammer(X) ⇔ (birth place(X) = “U SA” ∧ . . .)[t : x%, d : y%] . . . Θ(. . .)[t : w%, d : z%]. ∀X, class(X) = “P rogrammer” ⇔ (birth place(X) = “Canada”) [t : 60%, d : 90%] Θ (birth place(X) = “Other”) [t : 40%, d : 60%]. 4.15. Discuss why relevance analysis is beneficial and how it can be performed and integrated into the characterization process. Compare the result of two induction methods: (1) with relevance analysis and (2) without relevance analysis. Answer: In characterization, specifying the set of relevant attributes may be difficult for the user if he/she is not familiar with the underlying distribution of values for an attribute or the possible inter-attribute dependencies. For example, he/she may specify attributes for which there is no good generalization operator or that are irrelevant to the characterization process. The benefit of doing characterization with relevance analysis 52 CHAPTER 4. DATA CUBE COMPUTATION AND DATA GENERALIZATION Algorithm: Incremental class comparison. Data-cube-based incremental algorithm for mining class comparisons with dimension relevance analysis. Input: • • • • • DB, a relational database (or other data source such as a flat file); a data mining query; a list of attributes; a set of concept hierarchies or generalization operators on the attributes; attribute generalization thresholds. Output: P , a Prime generalized relation used to build the data cube. Method: The method is outlined as follows. To build the initial data cube for mining: (a) Data Collection: The incremental part of the data is identified to produce a target class and contrasting class(es) from the set of task relevant data to generate the initial working relations. (b) Incremental dimension relevance analysis: This is performed on the initial working relation for the target class in order to determine which attributes should be retained (attribute relevance). An attribute will have to be added that indicates the class of the data entry. (c) Incremental synchronous generalization: The desired level of generalization is determined to form prime target class and prime contrasting class cuboid(s). This generalization will be synchronous between all of the classes, as the contrasting class relation(s) will be generalized to the same level. To process revisions to the relevant data set and thus make the algorithm incremental, perform the following. (Note: we do not want to completely rebuild the data cube for all relevant data as this would be time consuming and inefficient. Instead, only the changes to the relevant data will be processed and added to the prime relation as held in the data cube.) (a) Generalize the changed data to the same level of abstraction, with the same attributes as held in the data cube, and add the attribute required to indicate the class of each tuple. (b) Calculate count and other required aggregate values as done for the initial relations, and then merge the statistical information from this changed data with those results as currently held in the data cube. Figure 4.4: A data-cube-based algorithm for incremental class comparison. versus without is that the former can uncover patterns that may be hidden by irrelevant attributes present in the latter. 4.16. Given a generalized relation, R, derived from a database, DB, suppose that a set, ∆DB, of tuples needs to be deleted from DB. Outline an incremental updating procedure for applying the necessary deletions to R. Answer: An incremental updating procedure for applying the necessary deletions to R to reflect the changes in ∆DB is as follows: • Generalize the tuples to be deleted (∆DB) to the same level of abstraction as those in the generalized relation, R. • Include in the tuples to be deleted, the attribute required to indicate the class of each tuple as it relates to the generalized relation, R. • Calculate count and other required aggregate values for the tuples in ∆DB, as reflected by the values held in R. • Update the affected tuples in R to reflect the difference in count between their current value and the value in the relation to be deleted (∆DB) and recalculate aggregate values using the difference in measures between R and ∆DB. 4.17. Outline a data cube-based incremental algorithm for mining class comparisons. Answer: A data-cube-based algorithm for incremental class comparison is given in Figure 4.4. Chapter 5 Mining Frequent Patterns, Associations, and Correlations 5.7 Exercises 5.1. The Apriori algorithm uses prior knowledge of subset support properties. (a) Prove that all nonempty subsets of a frequent itemset must also be frequent. (b) Prove that the support of any nonempty subset s0 of itemset s must be at least as great as the support of s. (c) Given frequent itemset l and subset s of l, prove that the confidence of the rule “s0 ⇒ (l − s0 )” cannot be more than the confidence of “s ⇒ (l − s)”, where s0 is a subset of s. (d) A partitioning variation of Apriori subdivides the transactions of a database D into n nonoverlapping partitions. Prove that any itemset that is frequent in D must be frequent in at least one partition of D. Answer: (a) Prove that all nonempty subsets of a frequent itemset must also be frequent. Let s be a frequent itemset. Let min sup be the minimum support. Let D be the task-relevant data, a set of database transactions. Let |D| be the number of transactions in D. Since s is a frequent itemset, support count(s) = min sup × |D|. Let s0 be any nonempty subset of s. Any transaction containing itemset s will also contain itemset s0 . Therefore, support count(s’) ≥ support count(s) = min sup × |D|. Thus, s0 is also a frequent itemset. (b) Prove that the support of any nonempty subset s0 of itemset s must be as great as the support of s. Let D be the task-relevant data, a set of database transactions. Let |D| be the number of transactions in D. By definition, support count(s) . support(s) = |D| Let s0 be any nonempty subset of s. By definition, support(s’) = support count(s’) |D| . 0 From part (a) we know that support(s ) ≥ support(s). This proves that the support of any nonempty subset s0 of itemset s must be as great as the support of s. (c) Given frequent itemset l and subset s of l, prove that the confidence of the rule “s0 ⇒ (l − s0 )” cannot be more than the confidence of “s ⇒ (l − s)”, where s0 is a subset of s. Let s be a subset of l. Then confidence(s⇒(l − s)) = support(l) support(s) . Let s0 be any nonempty subset of s. Then confidence(s0 ⇒(l − s0 )) = 53 support(l) support(s0 ) . 54 CHAPTER 5. MINING FREQUENT PATTERNS, ASSOCIATIONS, AND CORRELATIONS From Part (b) we know that support(s0 ) ≥ support(s), therefore, confidence(s0 ⇒(l−s0 )) ≤ confidence(s⇒(l− s)). That is, the confidence of the rule “s0 ⇒(l − s0 )” cannot be more than the confidence of the rule “s⇒(l − s)”. (d) A partitioning variation of Apriori subdivides the transactions of a database D into n nonoverlapping partitions. Prove that any itemset that is frequent in D must be frequent in at least one partition of D. Any itemset that is frequent in D must be frequent in at least one partition of D. Proof by Contradiction: Assume that the itemset is not frequent in any of the partitions of D. Let F be any frequent itemset. Let D be the task-relevant data, a set of database transactions. Let C be the total number of transactions in D. Let A be the total number of transactions in D containing the itemset F . Let min sup be the minimum support. F is a frequent itemset, which means that A = C × min sup. Let us partition D into n nonoverlapping partitions, d1 , d2 , d3 , . . . , dn . Thus, D = d1 d2 d3 . . . dn . Let c1 , c2 , c3 , . . . , cn be the total number of transactions in partitions d1 , d2 , d3 , . . . , dn , respectively. Then C = c1 + c2 + c3 + . . . + cn . Let a1 , a2 , a3 , . . . , an be the total number of transactions in partitions d1 , d2 , d3 , . . . , dn containing the itemset F, respectively. Thus, A = a1 + a2 + a3 + . . . + an . We can rewrite A = C × min sup as (a1 + a2 + a3 + ... + an ) = (c1 + c2 + c3 + . . . + cn ) × min sup. Because of the assumption at the start of the proof, we know that F is not frequent in any of the partitions d1 , d2 , d3 , . . . , dn of D. This means that a1 < c1 × min sup; a2 < c2 × min sup; a3 < c3 ×min sup; . . . ; an < cn ×min sup. Adding up all of these inequalities we get (a1 +a2 +a3 +. . .+an ) < (c1 + c2 + c3 + . . . + cn ) × s or simply A < C × min sup, meaning that F is not a frequent itemset. But this is a contradiction since F was defined as a frequent itemset at the beginning of the proof. This proves that any itemset that is frequent in D must be frequent in at least one partition of D. 5.2. Section 5.2.2 describes a method for generating association rules from frequent itemsets. Propose a more efficient method. Explain why it is more efficient than the one proposed in Section 5.2.2. (Hint: Consider incorporating the properties of Exercise 5.1(b) and 5.1(c) into your design.) Answer: An algorithm for generating strong rules from frequent itemsets is given in Figure 5.1. It is more efficient than the method proposed in Section 5.2.2 because it generates and tests only necessary subsets. If a subset x of length k does not meet the minimum confidence, then there is no point in generating any of its nonempty subsets because their respective confidences will never be greater than the confidence of x (see Exercise 5.1(b) and 5.1(c)). However, if x meets the minimum confidence then we generate and test its (k − 1)-subsets. Using this criteria, we start with the (n − 1)-subsets of an n-itemset and progressively work our way down to the 1-subsets. The method in Section 5.2.2, on the other hand, is a brute-force method that generates all of the nonempty subsets of a frequent itemset l and then tests all of them for potential rules. This is inefficient because it may generate and test many unnecessary subsets (i.e., subsets whose superset did not meet the minimum confidence). Consider the following worst-case scenario: We have a k-itemset (let’s call it b) where k is very large (e.g., k = 1000). Imagine that none of b’s (k−1)-subsets meet the minimum confidence. The method of Section 5.2.2 would still unnecessarily generate all of b’s nonempty subsets and then test all of them for potential rules. The new method, on the other hand, would only generate b’s (k − 1)-subsets. Upon determining that none of the rules from b’s (k − 1)-subsets meet the minimum confidence, it would avoid generating and testing any more subsets, thereby saving a great deal of unnecessary computation. 5.3. A database has five transactions. Let min sup = 60% and min conf = 80%. 5.7. EXERCISES 55 Algorithm: Rule Generator. Given a set of frequent itemsets, output all of its strong rules. Input: • l, set of frequent itemsets; • min conf, the minimum confidence threshold. Output: Strong rules of itemsets in l. Method: The method is outlined as follows. 1) 2) for each frequent itemset, l rule generator helper(l, l, min conf); procedure rule generator helper(s: current subset of l; l: original frequent itemset; min conf) (1) k = length(s); (2) if (k > 1) then { (3) Generate all the (k − 1)-subsets of s; (4) for each (k − 1)-subset x of s (5) if (support count(l) / support count(x) = min conf) then { (6) output the rule “x⇒(l − x)”; (7) rule generator helper(x, l, min conf); (8) } (9) // else do nothing because each of x’s subsets will have at least as much // support as x, and hence can never have greater confidence than x (10)} Figure 5.1: An algorithm for generating strong rules from frequent itemsets. TID T100 T200 T300 T400 T500 items bought {M, O, N, K, E, Y} {D, O, N, K, E, Y } {M, A, K, E} {M, U, C, K, Y} {C, O, O, K, I ,E} (a) Find all frequent itemsets using Apriori and FP-growth, respectively. Compare the efficiency of the two mining processes. (b) List all of the strong association rules (with support s and confidence c) matching the following metarule, where X is a variable representing customers, and itemi denotes variables representing items (e.g., “A”, “B”, etc.): ∀x ∈ transaction, buys(X, item1 ) ∧ buys(X, item2 ) ⇒ buys(X, item3 ) [s, c] Answer: (a) Find all frequent itemsets two mining processes. Apriori: m 3 o 3 n 2 k 5 m e 4 o C1 = y 3 L1 = k d 1 e a 1 y u 1 c 2 i 1 using Apriori and FP-growth, respectively. Compare the efficiency of the mo mk me 3 my 3 ok 5 C2 = oe 4 oy 3 ke ky ey 1 3 2 mk 2 ok 3 L2 = oe 3 ke 2 ky 4 3 2 3 3 oke 3 C3= key 4 3 3 L3= oke 2 3 56 CHAPTER 5. MINING FREQUENT PATTERNS, ASSOCIATIONS, AND CORRELATIONS FP-growth: See Figure 5.2 for the FP-tree. Root K:5 E:4 M:2 O:1 M:1 Y:1 O:2 Y:1 Y:1 Figure 5.2: FP-tree for Exercise 5.3. item y o m e conditional pattern base { {k,e,m,o:1}, {k,e,o:1}, {k,m:1} } { {k,e,m:1}, {k,e:2} { {k,e:2}, {k:1} } { {k:4} } conditional tree k:3 k:3,e:3 k:3 k:4 frequent pattern {k,y:3} {k,o:3}, {e,o:3}, {k,e,o:3} {k,m: 3} { k,e:4 } Efficiency comparison: Apriori has to do multiple scans of the database while FP-growth builds the FP-Tree with a single scan. Candidate generation in Apriori is expensive (owing to the self-join), while FP-growth does not generate any candidates. (b) List all of the strong association rules (with support s and confidence c) matching the following metarule, where X is a variable representing customers, and itemi denotes variables representing items (e.g., “A”, “B”, etc.): ∀x ∈ transaction, buys(X, item1 ) ∧ buys(X, item2 ) ⇒ buys(X, item3 ) [s, c] k,o → e [0.6,1] e,o → k [0.6,1] 5.4. (Implementation project) Implement three frequent itemset mining algorithms introduced in this chapter: (1) Apriori [AS94], (2) FP-growth [HPY00], and (3) ECLAT [Zak00] (mining using vertical data format), using a programming language that you are familiar with, such as C++ or Java. Compare the performance of each algorithm with various kinds of large data sets. Write a report to analyze the situations (such as data size, data distribution, minimal support threshold setting, and pattern density) where one algorithm may perform better than the others, and state why. Answer: This is to be evaluated on an individual basis as there is no standard answer. 5.5. A database has four transactions. Let min sup = 60% and min conf = 80%. 5.7. EXERCISES cust ID 01 02 01 03 57 TID T100 T200 T300 T400 items bought (in the form of brand-item category) {King’s-Crab, Sunset-Milk, Dairyland-Cheese, Best-Bread} {Best-Cheese, Dairyland-Milk, Goldenfarm-Apple, Tasty-Pie, Wonder-Bread} {Westcoast-Apple, Dairyland-Milk, Wonder-Bread, Tasty-Pie} {Wonder-Bread, Sunset-Milk, Dairyland-Cheese} (a) At the granularity of item category (e.g., itemi could be “Milk”), for the following rule template, ∀X ∈ transaction, buys(X, item1 ) ∧ buys(X, item2 ) ⇒ buys(X, item3 ) [s, c] list the frequent k-itemset for the largest k, and all of the strong association rules (with their support s and confidence c) containing the frequent k-itemset for the largest k. (b) At the granularity of brand-item category (e.g., itemi could be “Sunset-Milk”), for the following rule template, ∀X ∈ customer, buys(X, item1 ) ∧ buys(X, item2 ) ⇒ buys(X, item3 ) list the frequent k-itemset for the largest k (but do not print any rules). Answer: (a) At the granularity of item category (e.g., itemi could be “Milk”), for the following rule template, ∀X ∈ transaction, buys(X, item1 ) ∧ buys(X, item2 )⇒buys(X, item3 ) [s, c] list the frequent k-itemset for the largest k and all of the strong association rules (with their support s and confidence c) containing the frequent k-itemset for the largest k. k = 3 and the frequent 3-itemset is {Bread, Milk, Cheese}. The rules are Bread ∧ Cheese ⇒ M ilk, Chees ∧ M ilk ⇒ Bread, Chees⇒M ilk ∧ Bread, [75%, 100%] [75%, 100%] [75%, 100%] (b) At the granularity of brand-item category (e.g., itemi could be “Sunset-Milk”), for the following rule template, ∀X ∈ customer, buys(X, item1 ) ∧ buys(X, item2 )⇒buys(X, item3 ) list the frequent k-itemset for the largest k. Note: do not print any rules. k = 3 and the frequent 3-itemset is {(Wonder-Bread, Dairyland-Milk, Tasty-Pie), (Wonder-Bread, Sunset-Milk, Dairyland-Cheese)}. 5.6. Suppose that a large store has a transaction database that is distributed among four locations. Transactions in each component database have the same format, namely Tj : {i1 , . . . , im }, where Tj is a transaction identifier, and ik (1 ≤ k ≤ m) is the identifier of an item purchased in the transaction. Propose an efficient algorithm to mine global association rules (without considering multilevel associations). You may present your algorithm in the form of an outline. Your algorithm should not require shipping all of the data to one site and should not cause excessive network communication overhead. Answer: An algorithm to mine global association rules is as follows: • Find the local frequent itemsets in each store. Let CF be the union of all of the local frequent itemsets in the four stores. 58 CHAPTER 5. MINING FREQUENT PATTERNS, ASSOCIATIONS, AND CORRELATIONS • In each store, find the local (absolute) support for each itemset in CF . • Now we must determine the global (absolute) support for each itemset in CF . This can be done by summing up, for each itemset, the local support of that itemset in the four stores. Doing this for each itemset in CF will give us their global supports. Itemsets whose global supports pass the support threshold are global frequent itemsets. • Derive strong association rules from the global frequent itemsets. 5.7. Suppose that frequent itemsets are saved for a large transaction database, DB. Discuss how to efficiently mine the (global) association rules under the same minimum support threshold if a set of new transactions, denoted as ∆DB, is (incrementally) added in? Answer: We can treat ∆DB and DB as two partitions. • For itemsets that are frequent in DB, scan ∆DB once and add their counts to see if they are still frequent in the updated database. • For itemsets that are frequent in ∆DB but not in DB, scan DB once to add their counts to see if they are frequent in the updated DB. 5.8. [Contributed by T ao Cheng] Most frequent pattern mining algorithms consider only distinct items in a transaction. However, multiple occurrences of an item in the same shopping basket, such as four cakes and three jugs of milk, can be important in transaction data analysis. How can one mine frequent itemsets efficiently considering multiple occurrences of items? Propose modifications to the well-known algorithms, such as Apriori and FP-growth, to adapt to such a situation. Answer: Consider an item and its occurrence count as a combined item in a transaction. For example, we can consider (jug, 3) as one item. In the first scan for finding single frequent item i, register i’s highest count if it reaches the frequency threshold. For instance, (jug, 3) may be a frequent item. For (i, max count), try to find k-itemsets for count from 1 to max count. This can be done either by Apriori or FP-growth. In FP-growth, one can create a node for each (i, count) combination, however, for efficient implementation, such nodes can be combined into one using combined counters (i.e., by storing more information). 5.9. (Implementation project) Implement three closed frequent itemset mining methods (1) A-Close [PBTL99] (based on an extension of Apriori [AS94]), (2) CLOSET+ [WHP03] (based on an extension of FP-growth [HPY00]), and (3) CHARM [ZH02] (based on an extension of ECLAT [Zak00]). Compare their performance with various kinds of large data sets. Write a report to answer the following questions: (a) Why is mining the set of closed frequent itemsets often more desirable than mining the complete set of frequent itemsets (based on your experiments on the same data set as Exercise 5.4)? (b) Analyze in which situations (such as data size, data distribution, minimal support threshold setting, and pattern density) and why that one algorithm performs better than the others. Answer: (a) Why is mining the set of closed frequent itemsets often more desirable than mining the complete set of frequent itemsets (based on your experiments on the same data set as Exercise 5.4)? Mining closed frequent itemsets leads to a much more compact answer set but has the same expressive power as mining the complete set of frequent itemsets. Moreover, it leads to more efficient mining algorithms if one explores optimization methods as discussed in the above research papers. 5.7. EXERCISES 59 (b) Analyze in which situations (such as data size, data distribution, minimal support threshold setting, and pattern density) and why that one algorithm performs better than the others. Please check IlliMine (http://illimine.cs.uiuc.edu) for some implementation code. The discussion of these algorithms are in the three papers listed above. Since different implementations may lead to different performance results, we will not provide a “standard answer” here. 5.10. Suppose that a data relation describing students at Big University has been generalized to the generalized relation R in Table 5.1. Table 5.1: Generalized relation for Exercise 5.9. major French cs physics engineering philosophy French chemistry cs philosophy French philosophy philosophy French math cs philosophy philosophy French engineering math chemistry engineering French philosophy math status M.A junior M.S Ph.D Ph.D senior junior senior M.S junior junior M.S junior senior junior Ph.D senior Ph.D junior Ph.D junior junior M.S junior junior age over 30 16...20 26...30 26...30 26...30 16...20 21...25 16...20 over 30 16...20 26...30 26...30 16...20 16...20 16...20 26...30 26...30 over 30 21...25 26...30 16...20 21...25 over 30 21...25 16...20 nationality Canada Europe Latin America Asia Europe Canada USA Canada Canada USA Canada Asia Canada USA Canada Canada Canada Canada Europe Latin America USA Canada Latin America USA Canada gpa 2.8 3.2 3.2 3.6 3.2 3.6 3.6 4.0 3.2 3.6 3.2 3.6 3.6 4.0 3.2 3.6 3.6 4.0 2.8 3.2 2.8 3.2 3.2 3.6 3.2 3.6 3.6 4.0 3.2 3.6 3.6 4.0 2.8 3.2 2.8 3.2 3.2 3.6 3.2 3.6 3.6 4.0 3.2 3.6 3.2 3.6 2.8 3.2 3.6 4.0 Let the concept hierarchies be as follows: status : major : age : nationality : {f reshman, sophomore, junior, senior} ∈ undergraduate. {M.Sc., M.A., P h.D.} ∈ graduate. {physics, chemistry, math} ∈ science. {cs, engineering} ∈ appl. sciences. {F rench, philosophy} ∈ arts. {16...20, 21...25} ∈ young. {26...30, over 30} ∈ old. {Asia, Europe, Latin America} ∈ f oreign. {U.S.A., Canada} ∈ N orth America. count 3 29 18 78 5 40 25 70 15 8 9 9 52 32 76 14 19 1 71 7 46 96 4 8 59 60 CHAPTER 5. MINING FREQUENT PATTERNS, ASSOCIATIONS, AND CORRELATIONS Let the minimum support threshold be 20% and the minimum confidence threshold be 50% (at each of the levels). (a) Draw the concept hierarchies for status, major, age, and nationality. (b) Write a program to find the set of strong multilevel association rules in R using uniform support for all levels, for the following rule template, ∀S ∈ R, P (S, x) ∧ Q(S, y) ⇒ gpa(S, z) [s, c] where P, Q ∈ {status, major, age, nationality}. (c) Use the program to find the set of strong multilevel association rules in R using level-cross filtering by single items. In this strategy, an item at the ith level is examined if and only if its parent node at the (i − 1)th level in the concept hierarchy is frequent. That is, if a node is frequent, its children will be examined; otherwise, its descendants are pruned from the search. Use a reduced support of 10% for the lowest abstraction level, for the preceding rule template. Answer: (a) Draw the concept hierarchies for status, major, age, and nationality. Students can easily sketch the corresponding concept hierarchies. (b) Find the set of strong multilevel association rules in R using uniform support for all levels. status(X, “undergraduate”) ∧ major(X, “science”) ⇒ gpa(X, “3.6...4.0”) [20% 100%] status(X, “undergraduate”) ∧ major(X, “appl sciences”) ⇒ gpa(X, “3.2...3.6”) [43%, 100%] status(X, “undergraduate”) ∧ age(X, “young”) ⇒ gpa(X, “3.2...3.6”) [55%, 71%] status(X, “undergraduate”) ∧ nationality(X, “North America”) ⇒ gpa(X, “3.2...3.6”) [42%, 62%] major(X, “science”) ∧ nationality(X, “North America”) ⇒ gpa(X, “3.6...4.0”) [20%, 100%] major(X, “appl sciences”) ∧ nationality(X, “North America”) ⇒ gpa(X, “3.2...3.6”) [31%, 100%] major(X, “science”) ∧ age(X, “young”) ⇒ gpa(X, “3.6...4.0”) [20%, 100%] major(X, “appl sciences”) ∧ age(X, “young”) ⇒ gpa(X, “3.2...3.6”) [43%, 100%] age(X, “young”) ∧ nationality(X, “North America”) ⇒ gpa(X, “3.2...3.6”) [42%, 65%] status(X, “junior”) ⇒ major(X, “engineering”) ⇒ gpa(X, “3.2...3.6”) [21% 100%] status(X, “junior”) ∧ age(X, 21...25) ⇒ gpa(X, “3.2...3.6”) [21%, 83.5%] status(X, “junior”) ∧ nationality(X, “Canada”) ⇒ gpa(X, “3.2...3.6”) [28%, 77%] major(X, “engineering”) ∧ age(X, 21...25) ⇒ gpa(X, “3.2...3.6”) [21%, 100%] age(X, 16...20) ∧ nationality(X, “Canada”) ⇒ gpa(X, “3.2...3.6”) [30%, 80%] (c) Find the set of strong multilevel association rules in R using level-cross filtering by single items, where a reduced support of 1% is used for the lowest abstraction level. Note: The following set of rules is mined in addition to those mined above. status(X, “junior”) ∧ age(X, “16...20”)⇒gpa(X, “3.2...3.6”) [20%, 58%] status(X, “senior”) ∧ age(X, “16...20”)⇒gpa(X, “3.6...4.0”) [14%, 77%] status(X, “P hD”)age(X, “26...30”) ∧ ⇒gpa(X, “3.6...4.0”) [12%, 100%] status(X, “junior”) ∧ nationality(X, “Europe”)⇒gpa(X, “3.2...3.6”) [13%, 100%] status(X, “senior”) ∧ nationality(X, “Canada”)⇒gpa(X, “3.2...3.6”) [14%, 85%] major(X, “math”) ∧ age(X, 16...20)⇒gpa(X, “3.6...4.0”) [11%, 100%] major(X, “F rench”) ∧ age(X, 16...20)⇒gpa(X, “3.2...3.6”) [12%, 92%] major(X, “cs”) ∧ nationality(X, “Canada”)⇒gpa(X, “3.2...3.6”) [18%, 100%] major(X, “engineering”) ∧ nationality(X, “Canada”)⇒gpa(X, “3.2...3.6”) [12%, 100%] major(X, “F rench”) ∧ nationality(X, “Canada”)⇒gpa(X, “3.2...3.6”) [12%, 96%] age(X, 21...25) ∧ nationality(X, “Canada”)⇒gpa(X, “3.2...3.6”) [12%, 100%] 5.7. EXERCISES 61 5.11. Propose and outline a level-shared mining approach to mining multilevel association rules in which each item is encoded by its level position, and an initial scan of the database collects the count for each item at each concept level, identifying frequent and subfrequent items. Comment on the processing cost of mining multilevel associations with this method in comparison to mining single-level associations. Answer: A level-shared mining approach is presented here, using the taxonomy of Figure 5.3 for illustration. food bread milk 2% Foremost white chocolate Dairy_land Foremost Dairy_land Wonder Wonder wheat Old Mills Wonder Figure 5.3: A taxonomy of data items. • Step 1: Scan the original transactional database. During the scan, create a hierarchy-informationencoded transaction table T of the database by encoding each item by its level position. For the above example, the item “2% Foremost Milk” would be encoded as ‘112’. The first digit, ‘1’, represents “milk” at level 1; the second digit, ‘1’, represents “2%” at level 2; and the third digit, ‘2’, represents “Foremost” at level 3. The item “Wonder White Bread” would be encoded as ‘212’. During the scan, accumulate the support counts of each item at each concept level by examining the encoded representation of each item. By doing so, we will discover the frequent items (1-itemsets) at all levels. Note that each level has its own minimum support threshold. These frequent itemsets are frequent with respect to their level’s minimum support. • Step 2: The initial database scan in Step 1 finds the frequent 1-itemsets, L1 , at all levels. Join these frequent 1-itemsets to generate the candidate 2-itemsets at all levels. Scan T once to determine which of the candidate 2-itemsets are frequent. Join the frequent 2-itemsets to generate the candidate 3-itemsets at all levels. Scan T once to determine which of the candidate 3-itemsets are frequent. Continue in this manner until none of the levels generate any new candidate itemsets. As we can see, this is basically the Apriori algorithm. • Step 3: Once we have found all of the frequent itemsets of all the levels, generate the corresponding strong multilevel association rules. Let’s compare the processing cost of mining multilevel associations with this method versus mining singlelevel associations. A similarity is that the cost of database scans for this method is equal to the cost of database scans for single-level associations. This is because, with one scan of the encoded transaction table T , we collect the support counts for the current iteration’s candidate itemsets, at all levels. Therefore, to determine the largest frequent k-itemsets at all levels, we only need to scan the encoded transaction table k times. However, this method must generate all of the current iteration’s candidate itemsets, for all levels, in order to collect all of their support counts in one scan of T . This is inefficient because some of these itemsets 62 CHAPTER 5. MINING FREQUENT PATTERNS, ASSOCIATIONS, AND CORRELATIONS probably do not need to be generated (i.e., when an itemset’s corresponding ancestor candidate itemset is not frequent or subfrequent). Mining single-level associations, on the other hand, only involves generating candidate sets for one level. Therefore, the cost of generating candidates for this method is much greater than the cost of generating candidates for single-level associations. 5.12. (Implementation project) Many techniques have been proposed to further improve the performance of frequent-itemset mining algorithms. Taking FP-tree-based frequent pattern-growth algorithms, such as FP-growth, as an example, implement one of the following optimization techniques, and compare the performance of your new implementation with the one that does not incorporate such optimization. (a) The previously proposed frequent pattern mining with FP-tree generates conditional pattern bases using a bottom-up projection technique (i.e., project on the prefix path of an item p). However, one can develop a top-down projection technique (i.e., project on the suffix path of an item p in the generation of a conditional pattern-base). Design and implement such a top-down FP-tree mining method and compare your performance with the bottom-up projection method. (b) Nodes and pointers are used uniformly in FP-trees in the design of the FP-growth algorithm. However, such a structure may consume a lot of space when the data are sparse. One possible alternative design is to explore an array- and pointer-based hybrid implementation, where a node may store multiple items when it contains no splitting point to multiple subbranches. Develop such an implementation and compare it with the original one. (c) It is time- and space- consuming to generate numerous conditional pattern bases during pattern-growth mining. One interesting alternative is to push right the branches that have been mined for a particular item p, that is, to push them to the remaining branch(es) of the FP-tree. This is done so that fewer conditional pattern bases have to be generated and additional sharing can be explored when mining the remaining branches of the FP-tree. Design and implement such a method and conduct a performance study on it. Answer: There is no standard answer for an implementation project. However, several papers discuss such implementations in depth and can serve as good references. (a) For a top-down projection technique, one can refer to the CLOSET+ paper: Wang, Han, and Pei, CLOSET+: Searching for the best strategies for mining frequent closed itemsets, Proc. 2003 ACM SIGKDD Int. Conf. Knowledge Discovery and Data Mining (KDD’03), Washington, DC, pp. 236-245, Aug. 2003 [WHP03]. (b) For an array- and pointer-based hybrid implementation, one can refer to the paper by Grahne and Zhu entitled Efficiently using prefix-trees in mining frequent itemsets, Proc. ICDM’03 Int. Workshop on Frequent Itemset Mining Implementations (FIMI’03), Melbourne, FL, Nov. 2003 [GZ03]. (c) The push right technique can be found in the paper by Liu, Lu, Lou, and Yu entitledOn computing, storing and querying frequent patterns, Proc. 2003 ACM SIGKDD Int. Conf. Knowledge Discovery and Data Mining (KDD’03), Washington, DC, pp. 607-612, Aug. 2003 [LLLY03]. 5.13. Give a short example to show that items in a strong association rule may actually be negatively correlated. Answer: Consider the following table: B B Σcol A 65 40 105 A 35 10 35 Σrow 100 50 150 5.7. EXERCISES 63 Let the minimum support be 40%. Let the minimum confidence be 60%. A⇒B is a strong rule because it satisfies minimum support and minimum confidence with a support of 65/150 = 43.3% and a confidence of 0.433 65/100 = 61.9%. However, the correlation between A and B is corrA,B = 0.700×0.667 = 0.928, which is less than 1, meaning that the occurrence of A is negatively correlated with the occurrence of B. 5.14. The following contingency table summarizes supermarket transaction data, where hot dogs refers to the transactions containing hot dogs, hotdogs refers to the transactions that do not contain hot dogs, hamburgers refers to the transactions containing hamburgers, and hamburgers refers to the transactions that do not contain hamburgers. hamburgers hamburgers Σcol hot dogs 2,000 1,000 3,000 hotdogs 500 1,500 2,000 Σrow 2,500 2,500 5,000 (a) Suppose that the association rule “hot dogs ⇒ hamburgers” is mined. Given a minimum support threshold of 25% and a minimum confidence threshold of 50%, is this association rule strong? (b) Based on the given data, is the purchase of hot dogs independent of the purchase of hamburgers? If not, what kind of correlation relationship exists between the two? Answer: (a) Suppose that the association rule “hotdogs ⇒ hamburgers” is mined. Given a minimum support threshold of 25% and a minimum confidence threshold of 50%, is this association rule strong? For the rule, support = 2000/5000 = 40%, and confidence = 2000/3000 = 66.7%. Therefore, the association rule is strong. (b) Based on the given data, is the purchase of hotdogs independent of the purchase of hamburgers? If not, what kind of correlation relationship exists between the two? corr{hotdog,hamburger} = P({hot dog, hamburger})/(P({hot dog}) P({hamburger}))=0.4/(0.5 × 0.6) = 1.33 > 1. So, the purchase of hotdogs is not independent of the purchase of hamburgers. There exists a positive correlation between the two. 5.15. In multidimensional data analysis, it is interesting to extract pairs of similar cell characteristics associated with substantial changes in measure in a data cube, where cells are considered similar if they are related by roll-up (i.e, ancestors), drill-down (i.e, descendants), or one-dimensional mutation (i.e, siblings) operations. Such an analysis is called cube gradient analysis. Suppose the cube measure is average. A user poses a set of probe cells and would like to find their corresponding sets of gradient cells, each of which satisfies a certain gradient threshold. For example, find the set of corresponding gradient cells whose average sale price is greater than 20% of that of the given probe cells. Develop an algorithm than mines the set of constrained gradient cells efficiently in a large data cube. Answer: This answer is based on the “All-Significant-Pairs” algorithm presented by Dong, Han, Lam, et al. in the paper Mining multi-dimensional constrained gradients in data cubes, Proc. 2001 Int. Conf. on Very Large Data Bases (VLDB’01), Rome, Italy pp. 321-330, Sept. 2001 [DHL+ 01]. For a more efficient algorithm, see the “LiveSet-Driven” algorithm in the same paper. Assume that we are given a set of probe cells P , a significant constraint Csig (e.g. count > 100), and a gradient constraint Cgrad (e.g. count(probe cell) / count(gradient cell) > 1.2). (a) Compute an iceberg cube with iceberg condition Csig . 64 CHAPTER 5. MINING FREQUENT PATTERNS, ASSOCIATIONS, AND CORRELATIONS (b) For each probe cell cp retrieve the gradient cells cg that are ancestors of cp , and if Cgrad is satisfied output (cp , cg ). If the gradient constraint is antimonotonic, use this property to prune the search (i.e., if the measure m of a cell c is no greater than t, none of c’s descendants can have the measure greater than t). (c) In a similar manner, check for the descendants of cp . Use the antimonotonic property to prune. (d) Check the siblings of cp and output the pairs that satisfy the gradient constraint. 5.16. Association rule mining often generates a large number of rules. Discuss effective methods that can be used to reduce the number of rules generated while still preserving most of the interesting rules. Answer: There are several approaches to reduce the number of rules. Here we list a few: • Mine only closed frequent patterns to reduce the number of redundant rules. • Use multilevel rule mining and generate lower-level rules only when they are nonredundant given the high-level rules. For example, we may find rules at the product category level first. If we find that milk → cheese [support=0.1, conf =0.9] and at the lower level we get milk 2% → provolone [support=0.01, conf =0.92], this may be redundant, i.e., this would be the expected support and confidence given the high-level rule. • Use domain knowledge to define templates for the rules to be mined and define minimum support, confidence, and correlation measures. 5.17. Sequential patterns can be mined in methods similar to the mining of association rules. Design an efficient algorithm to mine multilevel sequential patterns from a transaction database. An example of such a pattern is the following: “A customer who buys a PC will buy Microsoft software within three months”, on which one may drill down to find a more refined version of the pattern, such as “A customer who buys a Pentium PC will buy Microsoft Office within three months”. Answer: The following is taken from Mining Sequential Patterns by Agrawal and Srikant from Proc. 1995 Int. Conf. Data Engineering (ICDE’95), Taipei, Taiwan, pp. 3-14, March 1995 [AS95]. Mining single-level sequential patterns: • Step 1: Sort the transaction database D into terms of customer id as the primary key and transaction time as the secondary key, which will implicitly convert D into a database of customer sequences (each customer’s ordered list of transactions). • Step 2: Using Apriori, find the set of all frequent itemsets. Let us call this set L = {L1 , L2 , . . . , Ln }. From this set, find the set of all frequent 1-sequences where each sequence of the set is defined as {hli|lL}. Support counts for finding frequent sequential patterns is slightly different than for finding frequent itemsets. The latter defines support as the occurrence frequency of that itemset in the database, while the former defines it as the fraction of customers that purchased the itemset. Therefore, even though a customer may buy an itemset multiple times, only one is added to the support count. • Step 3: The database D is then transformed into a database DT , which consists of transformed customer sequences, one for each customer. To do so, each transaction in D is replaced by the set of all frequent itemsets contained in that transaction. Using the frequent itemsets found in Step 2, replace each transaction in D accordingly. If a transaction does not contain any frequent itemsets, then it will not appear in the transformed customer sequence. If an implicit customer sequence (that customer’s ordered list of transactions) does not contain any frequent itemsets, then that customer will not appear in the transformed database. 5.7. EXERCISES 65 • Step 4: Perform the Apriori algorithm on DT with the following minor modifications: Replace any instances of the word “itemset” with “sequence”. In particular, the first step of Apriori is replaced with “L1 = find frequent 1 sequences(D),” which is basically what was stated in Step 2. • Step 5: From the set of all frequent sequences, S, found in Step 4, determine the maximal sequences. A maximal sequence is one that is not contained in any other sequence. Let n denote the length of the longest sequence. Here is the algorithm that filters out the maximal sequences. for (k = n; k > 1; k − −) do for each k-sequence sk do delete from S all subsequences of sk • Step 6: To go from mining single-level sequential patterns to mining multilevel sequential patterns is trivial. We can employ the same techniques used to mine multilevel association rules. The general idea is to find frequent sequences at the top level. For those that are not frequent, we avoid checking their corresponding descendant sequences at the next level since it would be impossible for any of them to be frequent. For the sequences that are frequent, we find their corresponding frequent descendant sequences at the next level. Proceed in this manner until we reach the bottom level or until we cannot find any new frequent sequences, whichever comes first. This method assumes uniform minimum support for all levels. If we are using reduced minimum supports at lower levels, then we can modify this method to allow subfrequent (relatively frequent) sequences to be “passed down” to lower levels. 5.18. Prove that each entry in the following table correctly characterizes its corresponding rule constraint for frequent itemset mining. a) b) c) d) Rule constraint v∈S S⊆V min(S) ≤ v range(S) ≤ v Antimonotonic no yes no yes Monotonic yes no yes no Succinct yes yes yes no Answer: (a) v ∈ S: not antimonotonic, but monotonic, succinct. Answer: • Antimonotone Counter-example: Let v = 5 and S = {1, 2, 3}. Now v ∈ S is false. By adding 5 to S, v ∈ S is true. Thus, v ∈ S is not an antimonotonic constraint. • Monotone Proof: Let v ∈ S. Let S 0 be a superset of S, that is, every element of S must be an element in S 0 . If we assume that v ∈ S 0 , then S 0 cannot be a superset of S because it does not contain every element of S. But S 0 is a superset of S. This is a contradiction. Thus, v ∈ S 0 . Therefore, v ∈ S is a monotonic constraint. • Succinct Proof: To show that it is succinct we need to show that there is a precise formula to generate all of the sets that satisfy the constraint. In this case, the formula is S = S1 ∪ S2 where S1 = {v}. (b) S ⊆ V : antimonotonic, not monotonic, succinct. Answer: • Antimonotone Proof: Let S ⊆ V . There must exist an element e ∈ S such that e ∈ V . Let S 0 be a superset of S. Then that same element e is contained in every superset S 0 of S. Thus, S 0 ⊆ V . Therefore, S ⊆ V is an antimonotonic constraint. • Monotone Counter-example: Let S = {1, 2, 3} and V = {1, 2, 3, 4, 5} so that S ⊆ V is true. However, if we add more elements to S, such as adding 8, then S ⊆ V is false. Thus, S ⊆ V is not a monotonic constraint. 66 CHAPTER 5. MINING FREQUENT PATTERNS, ASSOCIATIONS, AND CORRELATIONS • Succinct Proof: We can enumerate the sets that satisfy the constraint, which are the powerset of V , so the formula is S ∈ P(V ). (c) min(S) ≤ v: not antimonotonic, monotonic, succinct. Answer: • Antimonotone Counter-example: Let S = {v1 } and v1 > v where S violates the constraint. If we add s2 to S, and s2 < v < s1 then S 0 = {s1 , s2 } satisfies the constraint. • Monotone Proof: Let min(S) = v. There must exist an element e ∈ S such that e ∈ v. Let S 0 be a superset of S, then that same element e is contained in every superset S 0 of S. Thus, min(S 0 ) = e = v. Therefore, min(S) ≤ v is a monotone constraint. • Succinct Proof: Let A = {v 0 such that v 0 < v}. We can get a formula for the sets that satisfy the constraint: S = S1 ∪ S2 , S1 ⊆ A, S1 6= φ. (d) range(S) ≤ v: antimonotonic, not monotonic, not succinct. Answer: • Antimonotone Proof: Assume S violates the constraint, so max(S) − min(S) > v. Now assume that we add a new element to v 0 to V . There are three cases to consider: (1) v 0 < min(S) and clearly, range(S) > v; (2) v 0 > max(S) and clearly, range(S) > v; (3) min(S) ≤ v 0 ≤ max(S), where the range is unchanged so we still have range(S) > v. • Monotone Counter-example: Assume it is monotonic. Let S = {v1 , ..., vn } satisfy the constraint, so max(S) − min(S) ≤ v. Let t = v − range(S). Add an element v 0 (such that v 0 < min(S) − t) to S. The new set violates the constraint, which contradicts our assumption of monotonicity. • Succinct Counter-example: range(S) ≤ v is not a succinct constraint because we cannot explicitly and precisely generate all of the sets of items satisfying the constraint. It depends on the maximum and the minimum of the set. For example: range(5, 6, 7) = 2 but range(4, 5, 6, 7, 8) 6= 2. We cannot prune 4 or 8 from the original set of items because they may satisfy the constraint too, e.g., range(4, 5, 6) = 2 and range(6, 7, 8) = 2. Thus, we must use the “generate-and-test” approach at each iteration. Therefore, range(S) ≤ v is not a succinct constraint. 5.19. The price of each item in a store is nonnegative. The store manager is only interested in rules of the form: “one free item may trigger $200 total purchases in the same transaction.” State how to mine such rules efficiently. Answer: To efficiently mine rules of the form “one free item may trigger $200 total purchases in the same transaction”, we need to: • Find the set of frequent “free” 1-itemsets. Let us call this set S1. • Generate the set of frequent itemsets whose price is no less than $200, using FP-growth. Let us call this set S2. This is a monotonic constraint so we do not have to use the “generate-and-test” approach at each iteration, which will save us some unnecessary computation. If we have a frequent itemset whose price is at least $200, then we do not need to check the constraint for any superset of that itemset. This is because any additional items added to the itemset will only increase the price total, which is already at least $200. All that needs to be checked is if that superset is frequent. The reason that we use FP-growth and not Apriori is because Apriori discards frequent itemsets whose price is less than $200, and therefore is not be able to discover supersets of these itemsets that satisfy 5.7. EXERCISES 67 the constraint. FP-growth does not suffer from this problem because it keeps all of the information about the database in a tree structure. • Find the frequent itemsets from the set S1S2, where S1 is the set of frequent “free” 1-itemsets and S2 is the set of frequent itemsets whose price is no less than $200. • Generate rules of the form S1⇒S2 from the frequent itemsets found above that meet the minimum confidence threshold. 5.20. The price of each item in a store is nonnegative. For each of the following cases, identify the kinds of constraint they represent and briefly discuss how to mine such association rules efficiently. (a) (b) (c) (d) Containing at least one Nintendo game Containing items the sum of whose prices is less than $150 Containing one free item and other items the sum of whose prices is at least $200 Where the average price of all the items is between $100 and $500 Answer: (a) Containing at least one Nintendo game The constraint is succinct and monotonic. This constraint can be mined efficiently using FP-growth as follows. • All frequent Nintendo games are listed at the end of the list of frequent items L. • Only those conditional pattern bases and FP-trees for frequent Nintendo games need to be derived from the global FP-tree and mined recursively. (b) Containing items the sum of whose prices is less than $150 The constraint is antimonotonic. This constraint can be mined efficiently using Apriori as follows. Only candidates the sum of whose prices is less than $150 need to be checked. (c) Containing one free item and other items the sum of whose prices is at least $200 The constraint is monotonic. (Or, subconstraints “containing one free item” and “the sum of whose prices is less than $150” are succinct and monotonic, respectively.) This constraint can be mined efficiently using FP-growth as follows. • Put all frequent free items at the end of the list of frequent items L. • Only conditional pattern bases and FP-trees for frequent free items need to be derived from the global FP-tree and mined recursively. Other free items should be excluded from these conditional pattern bases and FP-trees. • Once a pattern with items the sum of whose prices is at least $200, no further constraint checking for total price is needed in recursive mining. • A pattern as well as its conditional pattern base can be pruned if the sum of the price of items in the pattern and the frequent ones in the pattern base is less than $200. (d) Where the average price of all the items is between $100 and $150 The constraint is nonconvertible. (Or, the subconstraints “the average price is at least $100” and “the average price is at most $500” are convertible.) This constraint can be mined efficiently using FP-growth as follows. • All frequent items are listed in price descending order. (If you use ascending order, you must rewrite the following two steps.) • A pattern as well as its conditional pattern base can be pruned if the average price of items in the pattern and those frequent ones in pattern base with prices greater than $100 is less than $100. • A pattern as well as its conditional pattern base can also be pruned if the average price of items in the pattern is greater than $500. 68 CHAPTER 5. MINING FREQUENT PATTERNS, ASSOCIATIONS, AND CORRELATIONS Chapter 6 Classification and Prediction 6.17 Exercises 6.1. Briefly outline the major steps of decision tree classification. Answer: The major steps are as follows: • The tree starts as a single root node containing all of the training tuples. • If the tuples are all from the same class, then the node becomes a leaf, labeled with that class. • Else, an attribute selection method is called to determine the splitting criterion. Such a method may using a heuristic or statistical measure (e.g., information gain or gini index) to select the “best” way to separate the tuples into individual classes. The splitting criterion consists of a splitting attribute and may also indicate either a split-point or a splitting subset, as described below. • Next, the node is labeled with the splitting criterion, which serves as a test at the node. A branch is grown from the node to each of the outcomes of the splitting criterion and the tuples are partitioned accordingly. There are three possible scenarios for such partitioning. (1) If the splitting attribute is discrete-valued, then a branch is grown for each possible value of the attribute. (2) If the splitting attribute, A, is continuous-valued, then two branches are grown, corresponding to the conditions A ≤ split point and A > split point. (3) If the splitting attribute is discrete-valued and a binary tree must be produced (e.g., if the gini index was used as a selection measure), then the test at the node is “A ∈ SA ?” where SA is the splitting subset for A. It is a subset of the known values of A. If a given tuple has value aj of A and if aj ∈ SA , then the test at the node is satisfied. • The algorithm recurses to create a decision tree for the tuples at each partition. The stopping conditions are: • If all tuples at a given node belong to the same class, then transform that node into a leaf, labeled with that class. • If there are no more attributes left to create more partitions, then majority voting can be used to convert the given node into a leaf, labeled with the most common class among the tuples. • If there are no tuples for a given branch, a leaf is created with the majority class from the parent node. 6.2. Why is tree pruning useful in decision tree induction? What is a drawback of using a separate set of tuples to evaluate pruning? Answer: 69 70 CHAPTER 6. CLASSIFICATION AND PREDICTION The decision tree built may overfit the training data. There could be too many branches, some of which may reflect anomalies in the training data due to noise or outliers. Tree pruning addresses this issue of overfitting the data by removing the least reliable branches (using statistical measures). This generally results in a more compact and reliable decision tree that is faster and more accurate in its classification of data. The drawback of using a separate set of tuples to evaluate pruning is that it may not be representative of the training tuples used to create the original decision tree. If the separate set of tuples are skewed, then using them to evaluate the pruned tree would not be a good indicator of the pruned tree’s classification accuracy. Furthermore, using a separate set of tuples to evaluate pruning means there are less tuples to use for creation and testing of the tree. While this is considered a drawback in machine learning, it may not be so in data mining due to the availability of larger data sets. 6.3. Given a decision tree, you have the option of (a) converting the decision tree to rules and then pruning the resulting rules, or (b) pruning the decision tree and then converting the pruned tree to rules. What advantage does (a) have over (b)? Answer: If pruning a subtree, we would remove the subtree completely with method (b). However, with method (a), if pruning a rule, we may remove any precondition of it. The latter is less restrictive. 6.4. It is important to calculate the worst-case computational complexity of the decision tree algorithm. Given data set D, the number of attributes n, and the number of training tuples |D|, show that the computational cost of growing a tree is at most n × |D| × log(|D|). Answer: The worst-case scenario occurs when we have to use as many attributes as possible before being able to classify each group of tuples. The maximum depth of the tree is log(|D|). At each level we will have to compute the attribute selection measure O(n) times (one per attribute). The total number of tuples on each level is |D| (adding over all the partitions). Thus, the computation per level of the tree is O(n × |D|). Summing over all of the levels we obtain O(n × |D| × log(|D|)). 6.5. Why is naı̈ve Bayesian classification called “naı̈ve”? Briefly outline the major ideas of naı̈ve Bayesian classification. Answer: Naı̈ve Bayesian classification is called naı̈ve because it assumes class conditional independence. That is, the effect of an attribute value on a given class is independent of the values of the other attributes. This assumption is made to reduce computational costs, and hence is considered “naı̈ve”. The major idea behind naı̈ve Bayesian classification is to try and classify data by maximizing P (X|Ci )P (Ci ) (where i is an index of the class) using the Bayes’ theorem of posterior probability. In general: • We are given a set of unknown data tuples, where each tuple is represented by an n-dimensional vector, X = (x1 , x2 , . . . , xn ) depicting n measurements made on the tuple from n attributes, respectively A1 , A2 , .., An . We are also given a set of m classes, C1 , C2 , . . . Cm . • Using Bayes theorem, the naı̈ve Bayesian classifier calculates the posterior probability of each class conditioned on X. X is assigned the class label of the class with the maximum posterior probability conditioned on X. Therefore, we try to maximize P (Ci |X) = P (X|Ci )P (Ci )/P (X). However, since P (X) is constant for all classes, only P (X|Ci )P (Ci ) need be maximized. If the class prior probabilities are not known, then it is commonly assumed that the classes are equally likely, i.e. P (C1 ) = P (C2 ) = · · · = P (Cm ), and we would therefore maximize P (X|Ci ). Otherwise, we maximize P (X|Ci )P (Ci ). The class prior probabilities may be estimated by P (Ci ) = ssi , where si is the number of training tuples of class Ci , and s is the total number of training tuples. 6.17. EXERCISES 71 • In order to reduce computation in evaluating P (X|Ci ), the naı̈ve assumption of class conditional independence is made. This presumes that the values of the attributes are conditionally independent of one another, given the class label of the tuple, i.e., that there are no dependence relationships among the attributes. – If Ak is a categorical attribute then P (xk |Ci ) is equal to the number of training tuples in Ci that have xk as the value for that attribute, divided by the total number of training tuples in Ci . – If Ak is a continuous attribute then P (xk |Ci ) can be calculated using a Gaussian density function. 6.6. Given a 5 GB data set with 50 attributes (each containing 100 distinct values) and 512 MB of main memory in your laptop, outline an efficient method that constructs decision trees in such large data sets. Justify your answer by rough calculation of your main memory usage. Answer: We will use the RainForest algorithm for this problem. Assume there are C class labels. The most memory required will be for AVC-set for the root of the tree. To compute the AVC-set for the root node, we scan the database once and construct the AVC-list for each of the 50 attributes. The size of each AVC-list is 100 × C. The total size of the AVC-set is then 100 × C × 50, which will easily fit into 512MB of memory for a reasonable C. The computation of other AVC-sets is done in a similar way but they will be smaller because there will be less attributes available. To reduce the number of scans we can compute the AVC-set for nodes at the same level of the tree in parallel. With such small AVC-sets per node, we can probably fit the level in memory. 6.7. RainForest is an interesting scalable algorithm for decision-tree induction. Develop a scalable naı̈ve Bayesian classification algorithm that requires just a single scan of the entire data set for most databases. Discuss whether such an algorithm can be refined to incorporate boosting to further enhance its classification accuracy. Answer: On a single scan of the database, for each attribute value we collect the following table of counts: attribute A value 1 ... value k class1 count1,1 class2 count1,2 ... ... classc count1,c countk,1 countk,2 ... countk,c Note that counti,j is the number of times that a tuple has value i of attribute A and belongs to classj . With these tables we can compute any probability of the form P (classi |tuplej ). The size of these tables is, in general, much smaller than the database size because it only depends on the number of attributes, their distinct values, and the number of classes. If we want to incorporate boosting we can train a few naı̈ve Bayesian classifiers using a sample of the training data. For each new classifier we use the tuples we misclassified with increased weight; at test time we will collect the decisions of each classifier and weight them by the classifier’s accuracy. In this case, we maintain separate count tables for each classifier. 6.8. Compare the advantages and disadvantages of eager classification (e.g., decision tree, Bayesian, neural network) versus lazy classification (e.g., k-nearest neighbor, case-based reasoning). Answer: Eager classification is faster at classification than lazy classification because it constructs a generalization model before receiving any new tuples to classify. Weights can be assigned to attributes, which can improve 72 CHAPTER 6. CLASSIFICATION AND PREDICTION classification accuracy. Disadvantages of eager classification are that it must commit to a single hypothesis that covers the entire instance space, which can decrease classification, and more time is needed for training. Lazy classification uses a richer hypothesis space, which can improve classification accuracy. It requires less time for training than eager classification. A disadvantages of lazy classification is that all training tuples need to be stored, which leads to expensive storage costs and requires efficient indexing techniques. Another disadvantage is that it is slower at classification because classifiers are not built until new tuples need to be classified. Furthermore, attributes are all equally weighted, which can decrease classification accuracy. (Problems may arise due to irrelevant attributes in the data.) 6.9. Design an efficient method that performs effective naı̈ve Bayesian classification over an infinite data stream (i.e., you can scan the data stream only once). If we wanted to discover the evolution of such classification schemes (e.g., comparing the classification scheme at this moment with earlier schemes, such as one from a week ago), what modified design would you suggest? Answer: The design is very similar to that presented in Exercise 6.7. We collect a set of attribute-value count tables, and update the counts as each new example streams in. To discover the evolution of the classification scheme, we can maintain counts for a few classifiers in parallel. For instance, we can keep one classifier based on the entire history of data, another based on the previous week of data, and another based on only the previous day of data. For the weekly classifier, we maintain separate counts for the previous seven days. At the end of each day, we discard the oldest day’s counts and replace them with the counts of the previous day. For the daily classifier, we maintain separate counts for each hour, and similarly, each hour replace the oldest counts with the ones for the previous hour. 6.10. What is association-based classification? Why is association-based classification able to achieve higher classification accuracy than a classical decision-tree method? Explain how association-based classification can be used for text document classification. Answer: Association-based classification is a method where association rules are generated and analyzed for use in classification. We first search for strong associations between frequent patterns (conjunctions of attributevalue pairs) and class labels. Using such strong associations we classify new examples. Association-based classification can achieve higher accuracy than a classical decision tree because it overcomes the constraint of decision trees, which consider only one attribute at a time, and uses very high confidence rules that combine multiple attributes. For text document classification, we can model each document as a transaction containing items that correspond to terms. (We can preprocess the data to do stemming and remove stop words.) We also add the document class to the transaction. We then find frequent patterns and output rules of the form term1 , term2 , ..., termk → classi [sup=0.1, conf =0.9]. When a new document arrives for classification, we can apply the rule with highest support and confidence that matches the document, or apply a combination of rules as in CMAR. 6.11. The following table consists of training data from an employee database. The data have been generalized. For example, “31 . . . 35” for age represents the age range of 31 to 35. For a given row entry, count represents the number of data tuples having the values for department, status, age, and salary given in that row. 6.17. EXERCISES 73 department sales sales sales systems systems systems systems marketing marketing secretary secretary status senior junior junior junior senior junior senior senior junior senior junior age 31. . . 35 26. . . 30 31. . . 35 21. . . 25 31. . . 35 26. . . 30 41. . . 45 36. . . 40 31. . . 35 46. . . 50 26. . . 30 salary 46K. . . 50K 26K. . . 30K 31K. . . 35K 46K. . . 50K 66K. . . 70K 46K. . . 50K 66K. . . 70K 46K. . . 50K 41K. . . 45K 36K. . . 40K 26K. . . 30K count 30 40 40 20 5 3 3 10 4 4 6 Let status be the class label attribute. (a) How would you modify the basic decision tree algorithm to take into consideration the count of each generalized data tuple (i.e., of each row entry)? (b) Use your algorithm to construct a decision tree from the given data. (c) Given a data tuple having the values “systems”, “26. . . 30”, and “46–50K” for the attributes department, age, and salary, respectively, what would a naı̈ve Bayesian classification of the status for the tuple be? (d) Design a multilayer feed-forward neural network for the given data. Label the nodes in the input and output layers. (e) Using the multilayer feed-forward neural network obtained above, show the weight values after one iteration of the backpropagation algorithm, given the training instance “(sales, senior, 31. . . 35, 46K. . . 50K)”. Indicate your initial weight values and biases, and the learning rate used. Answer: (a) How would you modify the basic decision tree algorithm to take into consideration the count of each generalized data tuple (i.e., of each row entry)? The basic decision tree algorithm should be modified as follows to take into consideration the count of each generalized data tuple. • The count of each tuple must be integrated into the calculation of the attribute selection measure (such as information gain). • Take the count into consideration to determine the most common class among the tuples. (b) Use your algorithm to construct a decision tree from the given data. The resulting tree is: (salary = 26K...30K: junior = 31K...35K: junior = 36K...40K: senior = 41K...45K: junior = 46K...50K (department = secretary: junior = sales: senior = systems: junior 74 CHAPTER 6. CLASSIFICATION AND PREDICTION = marketing: senior) = 66K...70K: senior) (c) Given a data tuple with the values “systems”, “junior”, and “26...30” for the attributes department, status, and age, respectively, what would a naı̈ve Bayesian classification of the salary for the tuple be? P (X|senior) = 0; P (X|junior) = 0.018. Thus, a naı̈ve Bayesian classification predicts “junior”. (d) Design a multilayer feed-forward neural network for the given data. Label the nodes in the input and output layers. No standard answer. Every feasible solution is correct. As stated in the book, discrete-valued attributes may be encoded such that there is one input unit per domain value. For hidden layer units, the number should be smaller than that of input units, but larger than that of output units. (e) Using the multilayer feed-forward neural network obtained above, show the weight values after one iteration of the backpropagation algorithm, given the training instance “(sales, senior, 31...35, 46K...50K)”. Indicate your initial weight values and biases and the learning rate used. No standard answer. Every feasible solution is correct. 6.12. The support vector machine (SVM) is a highly accurate classification method. However, SVM classifiers suffer from slow processing when training with a large set of data tuples. Discuss how to overcome this difficulty and develop a scalable SVM algorithm for efficient SVM classification in large datasets. Answer: We can use the micro-clustering technique in “Classifying large data sets using SVM with hierarchical clusters” by Yu, Yang, and Han, in Proc. 2003 ACM SIGKDD Int. Conf. Knowledge Discovery and Data Mining (KDD’03), pages 306-315, Aug. 2003 [YYH03]. A Cluster-Based SVM (CB-SVM) method is described as follows: 1. Construct the microclusters using a CF-Tree (Chapter 7). 2. Train an SVM on the centroids of the microclusters. 3. Decluster entries near the boundary. 4. Repeat the SVM training with the additional entries. 5. Repeat the above until convergence. 6.13. Write an algorithm for k-nearest neighbor classification given k and n, the number of attributes describing each tuple. Answer: Figure 6.1 presents an algorithm for k-nearest neighbor classification. 6.14. The following table shows the midterm and final exam grades obtained for students in a database course. 6.17. EXERCISES 75 Algorithm: k-nearest neighbor. Build a k-nearest neighbor classifier. Input: • Let U be the unknown tuple whose class we want to assign. • Let T be the training set containing training tuples, (t2,1 , t2,2 , . . . , t2,n ), . . . , Tm = (tm,1 , tm,2 , . . . , tm,n ). • Let attribute ti,n be the class label of Ti . • Let m be the number of training tuples. • Let n be the number of attributes describing each tuple. • Let k be the number of nearest neighbors we wish to find. T1 = (t1,1 , t1,2 , . . . , t1,n ), T2 = Output: Class label for U . Method: The method is outlined as follows. 1) array a[m][2]; // m rows containing data regarding the m training tuples. The first column is the Euclidean distance between U and that row’s training tuple. The second column refers to that training tuple’s index. We need to save the index because when sorting the array (according to Euclidean distance), we need some way to determine to which training set the Euclidean distance refers. 2) for i = 1 to m do { 3) a[i][1] = Euclidean distance(U, Ti ); 4) a[i][2] = i;} // save the index, because rows will be sorted later 5) Sort the rows of a by their Euclidean distances saved in a[i][1] (in ascending order); 6) array b[k][2]; // The first column holds the distinct class labels of the k-nearest neighbors, while the second holds their respective counts. In the worst case, each k-nearest neighbor will have a different class label, which is why we need to allocate room for k class labels. 7) for i = 1 to k do { 8) if class label ta[i][2],n already exists in array b then 9) find that class label’s row in array b and increment its count; 10) else add the class label into the next available row of array b and increment its count; } 11) Sort array b in descending order (from class label with largest count down to that with smallest count); 12) return(b[1]); //return most frequent class label of the k-nearest neighbors of U as the class prediction. Figure 6.1: k-nearest neighbor algorithm. x Midterm exam 72 50 81 74 94 86 59 83 65 33 88 81 y Final exam 84 63 77 78 90 75 49 79 77 52 74 90 (a) Plot the data. Do x and y seem to have a linear relationship? (b) Use the method of least squares to find an equation for the prediction of a student’s final exam grade based on the student’s midterm grade in the course. (c) Predict the final exam grade of a student who received an 86 on the midterm exam. 76 CHAPTER 6. CLASSIFICATION AND PREDICTION Answer: (a) Plot the data. Do x and y seem to have a linear relationship? Yes, from the scatter graph, it would appear that x and y have a linear relationship. (b) Use the method of least squares to find an equation for the prediction of a student’s final exam grade based on the student’s midterm grade in the course. |D| = 12; x̄ = 866/12 = 72.167; ȳ = 888/12 = 74. Using Equations (6.50) and (6.51), we get w1 = 0.5816 and w0 = 32.028. Therefore, the equation for predicting a student’s final exam grade based on the student’s midterm grade is y = 32.028 + 0.5816x. (c) Predict the final exam grade of a student who received an 86 on the midterm exam. Using the formula from part (b), we get y = 32.028 + (0.5816)(86) = 82.045. Therefore, we would predict that a student who received an 86 on the midterm would get 82 on the final exam. 6.15. Some nonlinear regression models can be converted to linear models by applying transformations to the predictor variables. Show how the nonlinear regression equation y = αX β can be converted to a linear regression equation solvable by the method of least squares. Answer: Apply the substitutions y 0 = log(y), w00 = log(w0 ), w10 = w1 , x0 = log(x), in order to obtain the linear model y 0 = w00 + w10 x0 . 6.16. What is boosting? State why it may improve the accuracy of decision tree induction. Answer: Boosting is a technique used to help improve classifier accuracy. We are given a set S of s tuples. For iteration t, where t = 1, 2, . . . , T , a training set St is sampled with replacement from S. Assign weights to the tuples within that training set. Create a classifier, Ct from St . After Ct is created, update the weights of the tuples so that the tuples causing classification error will have a a greater probability of being selected for the next classifier constructed. This will help improve the accuracy of the next classifier, Ct+1 . Using this technique, each classifier should have greater accuracy than its predecessor. The final boosting classifier combines the votes of each individual classifier, where the weight of each classifier’s vote is a function of its accuracy. 6.17. Show that accuracy is a function of sensitivity and specificity, that is, prove Equation (6.58). Answer: pos+t neg accuracy = t(pos+neg) t pos t neg = pos+neg + (pos+neg) t pos pos t neg = (pos+neg) × pos + (pos+neg) × neg neg pos neg = sensitivity (t pos+t neg) + specificity (t pos+t neg) . 6.17. EXERCISES 77 6.18. Suppose that we would like to select between two prediction models, M1 and M2 . We have performed 10 rounds of 10-fold cross validation on each model, where the same data partitioning in round i is used for both M1 and M2 . The error rates obtained for M1 are 30.5, 32.2, 20.7, 20.6, 31.0, 41.0, 27.7, 26.0, 21.5, 26.0. The error rates for M2 are 22.4, 14.5, 22.4, 19.6, 20.7, 20.4, 22.1, 19.4, 16.2, 35.0. Comment on whether one model is significantly better than the other considering a significance level of 1%. Answer: We can do hypothesis testing to see if there is a significant difference in average error. Given that we used the same test data for each observation we can use the “paired observation” hypothesis test to compare two means: H0 : x̄1 − x̄2 = 0 H1 : x̄1 − x̄2 6= 0 Where x̄1 is the mean error of model M1 , and x̄2 is the mean error of model M2 . We compute the test statistic t using the formula: t= d¯ √ sd / n where d¯ is the mean of the differences in error, sd is the standard deviation of the differences in error, and n is the number of observations. In this case d¯ = 6.45, sd = 8.25, and n = 10. Replacing this values in the equation we get t = 2.47. Using a t distribution table, we look tα/2 value for probability 0.005 and 9 degrees of freedom, which is 3.25. Given that −3.25 < 2.47 < 3.25 we accept the null hypothesis, i.e., the two models are not different at a significance level of 0.01. 6.19. It is difficult to assess classification accuracy when individual data objects may belong to more than one class at a time. In such cases, comment on what criteria you would use to compare different classifiers modeled after the same data. Answer: A data object may belong to more than one class at a time. However, that data object will belong to some classes more often than other classes. Therefore, one criterion that can be used to assess classification accuracy is to choose the classifier that predicts the class to which the data object usually belongs. Alternatively, a second-guess heuristic may be used, whereby a class prediction is judged as correct if it agrees with the first or second most probable class. Other criteria that may be used to compare different classifiers modeled after the same data include speed, robustness, scalability, and interpretability. Generally, we prefer classifiers that minimize computational costs (e.g. training time, classification time), make accurate predictions even when given noisy data or incomplete data, work efficiently given large amounts of data, and provide concise results that are easy to understand. 78 CHAPTER 6. CLASSIFICATION AND PREDICTION Chapter 7 Cluster Analysis 7.13 Exercises 7.1. Briefly outline how to compute the dissimilarity between objects described by the following types of variables: (a) Numerical (interval-scaled) variables (b) Asymmetric binary variables (c) Categorical variables (d) Ratio-scaled variables (e) Nonmetric vector objects Answer: (a) Numerical (interval-scaled) variables Use Euclidean distance or Manhattan distance. Euclidean distance is defined as q d(i, j) = (xi1 − xj1 )2 + (xi2 − xj2 )2 + · · · + (xin − xjn )2 . (7.1) where i = (xi1 , xi2 , . . . , xin ), and j = (xj1 , xj2 , . . . , xjn ), are two n-dimensional data objects. The Manhattan (or city block) distance, is defined as d(i, j) = |xi1 − xj1 | + |xi2 − xj2 | + · · · + |xin − xjn |. (7.2) (b) Asymmetric binary variables If all binary variables have the same weight, we have the contingency Table 7.1. object i 1 0 sum object j 1 0 q r s t q+s r+t sum q+r s+t p Table 7.1: A contingency table for binary variables. In computing the dissimilarity between asymmetric binary variables, the number of negative matches, t, is considered unimportant and thus is ignored in the computation, that is, r+s . (7.3) d(i, j) = q+r+s 79 80 CHAPTER 7. CLUSTER ANALYSIS (c) Categorical variables A categorical variable is a generalization of the binary variable in that it can take on more than two states. The dissimilarity between two objects i and j can be computed based [old: the simple matching approach][new: on the ratio of mismatches]: d(i, j) = p−m , p (7.4) where m is the number of matches (i.e., the number of variables for which i and j are in the same state), and p is the total number of variables. Alternatively, we can use a large number of binary variables by creating a new binary variable for each of the M nominal states. For an object with a given state value, the binary variable representing that state is set to 1, while the remaining binary variables are set to 0. (d) Ratio-scaled variables Three methods include: • Treat ratio-scaled variables as interval-scaled variables, so that the Minkowski, Manhattan, or Euclidean distance can be used to compute the dissimilarity. • Apply a logarithmic transformation to a ratio-scaled variable f having value xif for object i by using the formula yif = log(xif ). The yif values can be treated as interval-valued, • Treat xif as continuous ordinal data, and treat their ranks as interval-scaled variables. (e) Nonmetric vector objects To measure the distance between complex objects represented by vectors, it is often easier to abandon traditional metric distance computation and introduce a nonmetric similarity function. For example, the similarity between two vectors, x and y, can be defined as a cosine measure, as follows: s(x, y) = xt · y ||x||||y|| (7.5) where xt is a transposition of vector x, ||x|| is the Euclidean norm of vector x,1 ||y|| is the Euclidean norm of vector y, and s is essentially the cosine of the angle between vectors x and y. 7.2. Given the following measurements for the variable age: 18, 22, 25, 42, 28, 43, 33, 35, 56, 28, standardize the variable by the following: (a) Compute the mean absolute deviation of age. (b) Compute the z-score for the first four measurements. Answer: (a) Compute the mean absolute deviation of age. 1 The vector. q Euclidean normal of vector x = (x1 , x2 , . . . , xn ) is defined as x21 + x22 + . . . + x2n . Conceptually, it is the length of the 7.13. EXERCISES 81 The mean absolute deviation of age is 8.8, which is derived as follows. mf sf 1 1 (x1f + · · · + xnf ) = (18 + 22 + 25 + 42 + 28 + 43 + 33 + 35 + 56 + 28) = 33 n 10 1 = (|x1f − mf | + · · · + |xnf − mf |) n 1 = (|18 − 33| + |22 − 33| + |25 − 33| + |42 − 33| + |28 − 33| + |43 − 33| + |33 − 33| + |35 − 33| 10 +|56 − 33| + |28 − 33|) = 8.8 = (b) Compute the z-score for the first four measurements. According to the z-score computation formula, zif = xif − mif . sf We have z1f = z2f = z3f = z4f = 18 − 33 8.8 22 − 33 8.8 25 − 33 8.8 42 − 33 8.8 = −1.70 = −1.25 = −0.91 = 1.02 7.3. Given two objects represented by the tuples (22, 1, 42, 10) and (20, 0, 36, 8): (a) Compute the Euclidean distance between the two objects. (b) Compute the Manhattan distance between the two objects. (c) Compute the Minkowski distance between the two objects, using p = 3. Answer: (a) Compute the Euclidean distance between the two objects. q d(i, j) = (xi1 − xj1 )2 + (xi2 − xj2 )2 + · · · + (xin − xjn )2 p = |22 − 20|2 + |1 − 0|2 + |42 − 36|2 + |10 − 8|2 = 6.71 (b) Compute the Manhattan distance between the two objects. d(i, j) = = |xi1 − xj1 | + |xi2 − xj2 | + · · · + |xin − xjn | |22 − 20| + |1 − 0| + |42 − 36| + |10 − 8| = 11 (c) Compute the Minkowski distance between the two objects, using p = 3. d(i, j) = = (|xi1 − xj1 |q + |xi2 − xj2 |q + · · · + |xin − xjn |p )1/p (|22 − 20|3 + |1 − 0|3 + |42 − 36|3 + |10 − 8|3 )1/3 = 6.15 (7.6) 82 CHAPTER 7. CLUSTER ANALYSIS 7.4. Section 7.2.3 gave a method wherein a categorical variable having M states can be encoded by M asymmetric binary variables. Propose a more efficient encoding scheme and state why it is more efficient. Answer: Key points: Use M −1 variables. The M th variable is instead represented by having all of the other variables set at 0. 7.5. Briefly describe the following approaches to clustering: partitioning methods, hierarchical methods, densitybased methods, grid-based methods, model-based methods, methods for high-dimensional data, and constraintbased methods. Give examples in each case. Answer: Clustering is the process of grouping data into classes, or clusters, so that objects within a cluster have high similarity in comparison to one another, but are very dissimilar to objects in other clusters. There are several approaches to clustering. • Partitioning methods: Given a databases of n objects or data tuples, a partitioning methods constructs k partitions of data, where each partition represents a cluster and k ≤ n. Given k, the number of partitions to construct, it creates an initial partitioning. It then uses an iterative relocation technique that attempts to improve the partitioning by moving objects from one group to another. The general criterion of a good partitioning is that objects in the same cluster are “close” or related to each other, whereas objects of different clusters are “far apart”. The k-means algorithm is a commonly used partitioning method. • Hierarchical methods: A hierarchical method creates a hierarchical decomposition of the given set of data objects. It can be either agglomerative or divisive. The agglomerative (bottom-up) approach starts with each object forming a separate group. It successively merges the objects that are close to one another, until all of the groups are merged into one, or until a termination condition holds. The divisive (top-down) approach starts with all of the objects in the same cluster. In each successive iteration, a cluster is split up into smaller clusters, until eventually each object forms its own cluster or until a termination condition holds. AGNES and DIANA are examples of hierarchical clustering. BIRCH integrates hierarchical clustering with iterative (distance-based) relocation. • Density-based methods: These methods are based on the notion of density. The main idea is to continue growing a given cluster as long as the density in its “neighborhood” exceeds some threshold. That is, for each data point within a given cluster, the neighborhood of a given radius has to contain at least a minimum number of points. This method can be used to filter out noise and discover clusters of arbitrary shape. DBSCAN and OPTICS are typical examples of density-based clustering. • Grid-based methods: Such methods quantize the object space into a finite number of cells that form a grid structure. All of the clustering operations are performed on the grid structure. The main advantage of this approach is its fast processing time, which is typically independent of the number of data objects and dependent only on the number of cells in each dimension in the quantized space. STING is an example of grid-based clustering. • Model-based methods: This approach hypothesizes a model for each of the clusters and finds the best fit of the data to the given model. A model-based algorithm may locate clusters by constructing a density function that reflects the spatial distribution of the data points. It also leads to a way of automatically determining the number of clusters based on standard statistics. It takes “noise” or outliers into account, therein contributing to the robustness of the approach. COBWEB and selforganizing feature maps are examples of model-based clustering. • Methods for high-dimensional data: High-dimensional data can typically have many irrelevant dimensions. As the dimensionality increases, the data usually become increasingly sparse because the data points are likely located in different dimensional subspaces. The distance measurement between pairs of points become meaningless and the average density of points anywhere in the data is likely to 7.13. EXERCISES 83 be low. Distance- and density-based clustering methods are therefore ineffective for clustering highdimensional data. Alternative approaches have been proposed, such as subspace clustering methods, which search for clusters in subspaces (or subsets of dimensions) of the data, rather than over the entire data space. CLIQUE and PROCLUS are examples of subspace clustering methods. Frequent pattern-based clustering is another clustering methodology, which extracts distinct frequent patterns among subsets of dimensions that occur frequently. pCluster is an example of frequent pattern-based clustering that groups objects based on their pattern similarity. • Constraint-based methods: These perform clustering by incorporating user-specified or applicationoriented constraints. A constraint can express a user’s expectation or describe “properties” of the desired clustering results, and provides an effective means for communicating with the clustering process. Constraint-based methods are used in spatial clustering for clustering with obstacle objects (e.g., considering obstacles such as rivers and highways when planning the placement of automated banking machines) and user-constrained cluster analysis (e.g, considering specific constraints regarding customer groups when determining the best location for a new service station, such as ‘‘must serve at least 100 high-value customers”). In addition, semi-supervised clustering employs, for example, pairwise constraints (such as pairs of instances labeled as belonging to the same or different clusters) in order to improve the quality of the resulting clustering. 7.6. Suppose that the data mining task is to cluster the following eight points (with (x, y) representing location) into three clusters. A1 (2, 10), A2 (2, 5), A3 (8, 4), B1 (5, 8), B2 (7, 5), B3 (6, 4), C1 (1, 2), C2 (4, 9). The distance function is Euclidean distance. Suppose initially we assign A1 , B1 , and C1 as the center of each cluster, respectively. Use the k-means algorithm to show only (a) The three cluster centers after the first round of execution and (b) The final three clusters Answer: (a) After the first round, the three new clusters are: (1) {A1 }, (2) {B1 , A3 , B2 , B3 , C2 }, (3) {C1 , A2 }, and their centers are (1) (2, 10), (2) (6, 6), (3) (1.5, 3.5). (b) The final three clusters are: (1) {A1 , C2 , B1 }, (2) {A3 , B2 , B3 }, (3) {C1 , A2 }. 7.7. Both k-means and k-medoids algorithms can perform effective clustering. Illustrate the strength and weakness of k-means in comparison with the k-medoids algorithm. Also, illustrate the strength and weakness of these schemes in comparison with a hierarchical clustering scheme (such as AGNES). Answer: (a) Illustrate the strength and weakness of k-means in comparison with the k-medoids algorithm. The k-medoids algorithm is more robust than k-means in the presence of noise and outliers, because a medoid is less influenced by outliers or other extreme values than a mean. However, its processing is more costly than the k-means method. (b) Illustrate the strength and weakness of these schemes in comparison with a hierarchical clustering scheme (such as AGNES). Both k-means and k-medoids perform partitioning-based clustering. An advantage of such partitioning approaches is that they can undo previous clustering steps (by iterative relocation), unlike hierarchical methods, which cannot make adjustments once a split or merge has been executed. This weakness of hierarchical methods can cause the quality of their resulting clustering to suffer. Partitioning-based 84 CHAPTER 7. CLUSTER ANALYSIS methods work well for finding spherical-shaped clusters. The quality of the resulting clustering is good, in general, for small to medium-sized databases. Their need to know the number of clusters in advance can be considered a weaknesses. Hierarchical clustering methods can determine the number of clusters automatically. However, they have difficulty scaling because each decision to merge or split may require the examination and evaluation of a good number of objects or clusters. Hierarchical methods, however, can be integrated with other clustering approaches, for improved clustering, such as in BIRCH, ROCK, and Chameleon. 7.8. Use a diagram to illustrate how, for a constant MinPts value, density-based clusters with respect to a higher density (i.e., a lower value for ², the neighborhood radius) are completely contained in density-connected sets obtained with respect to a lower density. Answer: See the diagram of Figure 7.1. Note that C1 and C2 are density-based clusters with respect to ²2 < ²1 , and C is a density-based cluster with respect to ²1 which completely contains the sets C1 and C2. (MinPts = 3.) C1 C2 e2 e1 C Figure 7.1: A diagram illustrating concepts of density-based clusters. 7.9. Why is it that BIRCH encounters difficulties in finding clusters of arbitrary shape but OPTICS does not? Can you propose some modifications to BIRCH to help it find clusters of arbitrary shape? Answer: (a) Why is it that BIRCH encounters difficulties in finding clusters of arbitrary shape but OPTICS does not? As a distance measure, BIRCH uses Euclidean distance and inter-cluster proximity, which leads to spherical shaped clusters. OPTICS uses a density-based (connectivity) measure, which grows clusters based on the connected points within a defined radius, and thus can find arbitrary-shaped clusters. (b) Can you propose some modifications to BIRCH to help it find clusters of arbitrary shape? We could modify BIRCH so to use a density-based and connectivity-based distance measure to cluster low-level B+-trees and build the levels of the CF-tree. This would lead to connectivity-based (arbitraryshaped) clusters. There could be several other ways to modify BIRCH, as well. 7.13. EXERCISES 85 7.10. Present conditions under which density-based clustering is more suitable than partitioning-based clustering and hierarchical clustering. Give some sample data sets to support your argument. Answer: Partitioning-based clustering and hierarchical clustering methods cluster objects based on the distance between objects. Such methods can find only spherical-shaped clusters and encounter difficulty at discovering clusters of arbitrary shapes. Partitioning methods also have difficulty finding clusters of different diameters and densities. Hierarchical methods are expensive and cannot undo previous merge and split steps. Density-based clustering methods (such as DBSCAN) are based on the notion that each cluster has a typical density of points that is considerably higher than outside of the cluster. These methods regard clusters as dense regions of objects in the data space that are separated by regions of low density (representing noise). Density-based clustering can discover clusters with arbitrary shape, unlike traditional clustering methods, and can handle noise in the data. Figure 7.2 shows three sample databases of objects. Traditional distancebased clustering methods will have difficulty finding the clusters in these data sets, yet they can easily be handled by DBSCAN. Figure 7.2: Sample databases of objects. 7.11. Give an example of how specific clustering methods may be integrated, for example, where one clustering algorithm is used as a preprocessing step for another. In addition, provide reasoning on why the integration of two methods may sometimes lead to improved clustering quality and efficiency. Answer: One example is BIRCH, a multi-phase clustering method that integrates hierarchical clustering (as a preprocessing step) with other clustering techniques. It begins by partitioning objects hierarchically using tree structures, and then applies other clustering algorithms (such as iterative partitioning) to refine the clusters. BIRCH incrementally constructs a clustering feature tree (CF tree), which is a height-balanced tree that stores the clustering features (summarized statistics) for a hierarchical clustering. BIRCH consists of two phases. Phase 1 (microclustering) scans the database to build an initial in-memory CF tree, which can be viewed as a multilevel compression of the data that tries to preserve the inherent clustering structure of the data. Phase 2 (macroclustering) applies another type of clustering algorithm (such as iterative relocation) to cluster the leaf nodes of the CF-tree, which removes sparse clusters as outliers and groups dense clusters into larger ones. Integrating different types of clustering methods may help overcome some of the weaknesses of the individual approaches. For example, by integrating hierarchical clustering with other clustering techniques, BIRCH overcomes two major limitations of hierarchical clustering—scalability and the inability to undo what was done in the previous step. 7.12. Clustering has been popularly recognized as an important data mining task with broad applications. Give one application example for each of the following cases: (a) An application that takes clustering as a major data mining function 86 CHAPTER 7. CLUSTER ANALYSIS (b) An application that takes clustering as a preprocessing tool for data preparation for other data mining tasks Answer: (a) An application that takes clustering as a major data mining function An example that takes clustering as a major data mining function could be a system that identifies groups of houses in a city according to house type, value, and geographical location. More specifically, a clustering algorithm like CLARANS can be used to discover that, say, the most expensive housing units in Vancouver can be grouped into just a few clusters. (b) An application that takes clustering as a preprocessing tool for data preparation for other data mining tasks An example application that takes clustering as a preprocessing tool for other data mining is spatial data mining. Spatial data mining is the discovery of interesting relationships and characteristics that may exist implicitly in spatial databases. We can apply cluster analysis only to spatial attributes, where natural notions of similarity exist. Various clustering algorithms, such as PAM, CLARA, or CLARANS may be used. The clusters obtained from the clustering algorithm may trigger the generation of nonspatial components in the next step if such a generation may form interesting groups of objects. 7.13. Data cubes and multidimensional databases contain categorical, ordinal, and numerical data in hierarchical or aggregate forms. Based on what you have learned about the clustering methods, design a clustering method that finds clusters in large data cubes effectively and efficiently. Answer: We can use the idea of a grid-based clustering approach, such as the CLIQUE, to find the clusters in a large data cube because a data cube can be interpreted as a multiresolution grid data structure. We first need to preprocess and discretize existing data (such as ordinal and numerical data) to obtain a single dimensional discretization. We then can perform the multidimensional clustering in two steps. The first step involves partitioning of the n-dimensional data space into non-overlapping rectangular units, identifying the dense units among them. This is done in 1-D for each dimension. We then can generate candidate dense units in k-dimensional space from the dense units found in (k − 1)-dimensional space. In the second step, a minimal description for each cluster is generated. For each cluster, this determines the maximal region that covers the cluster of connected dense units. It then determines a minimal cover for each cluster. Using such a method, we can effectively find clusters from the data that are represented as a data cube. 7.14. Subspace clustering is a methodology for finding interesting clusters in high-dimensional space. This methodology can be applied to cluster any kind of data. Outline an efficient algorithm that may extend density connectivity-based clustering for finding clusters of arbitrary shapes in projected dimensions in a highdimensional data set. Answer: One possible solution is to extend CLIQUE as follows: (a) Partition each dimension into grids. (b) Let k = 1, repeat the following: i. Find the dense cells in dimension k. A cell is dense if its number of points (inside the slot) is ≥ σ. ii. Based on Apriori, construct candidate sets for the (k + 1)-dimensions. (c) Until (no dense cells) or (candidate set is empty). (d) After finding dense cells in a k-D plane, find clusters as the most-connected dense units and describe them using simplified (rectangular) regions. 7.13. EXERCISES 87 7.15. [Contributed by Alex Kotov] Describe each of the following clustering algorithms in terms of the following criteria: (i) shapes of clusters that can be determined; (ii) input parameters that must be specified; and (iii) limitations. (a) k-means (b) k-medoids (c) CLARA (d) BIRCH (e) ROCK (f) CHAMELEON (g) DBSCAN Answer: (a) k-means (i) Spherical-shaped clusters; (ii) The number of clusters; (iii) Sensitive to noise and outliers. Works well on small data sets only. (b) k-medoids (i) Spherical-shaped clusters; (ii) The number of clusters; (iii) Small data sets (not scalable). (c) CLARA (i) Spherical-shaped clusters; (ii) The number of clusters; (iii) Sensitive to the selection of initial samples. (d) BIRCH (i) Spherical-shaped clusters; (ii) N d-dimensional data points; (iii) Because a CF tree can hold only a limited number of entries due to its size, a CF tree does not always correspond to what a user may consider a natural cluster. (e) ROCK (i) Arbitrary shape; (ii) N d-dimensional categorical data points; (iii) Designed for categorical data, emphasizes interconnectivity, ignores closeness between clusters. (f) CHAMELEON (i) Arbitrary shape; (ii) N d-dimensional categorical points; (iii) Quadratic time in the worst case. (g) DBSCAN (i) Arbitrary shape; (ii) Maximum possible distance for a point to be considered density-reachable and minimum number of points in a cluster; (iii) Quadratic time in the worst case. 7.16. [Contributed by T ao Cheng] Many clustering algorithms handle either only numerical data, such as BIRCH, or only categorical data, such as ROCK, but not both. Analyze why this is the case. Note, however, that the EM clustering algorithm can easily be extended to handle data with both numerical and categorical attributes. Briefly explain why it can do so and how. Answer: EM clustering essentially uses an underlying mixture model to perform clustering. Due to the probabilistic nature of such models, EM clustering can easily be extended to handle data with both numerical attributes and categorical attributes. Under the assumption that each attribute is independent of one other, we can model numerical attributes by using density functions, such as Poisson, Gaussian, etc.; categorical attributes can be modeled by associating discrete distributions over these attributes, such as multinomial, binomial, etc. The total component density can be decomposed as a product of density functions over each attribute. 88 CHAPTER 7. CLUSTER ANALYSIS By having such component density functions, we can easily use EM clustering to cluster data with both numerical attributes and categorical attributes. Reference: P. Bradley, U. Fayyad, C. Reina, Scaling Clustering Algorithms to Large Databases, in Proc. 1998 Int. Conf. Knowledge Discovery and Data Mining (KDD’98), pages 9-15, Aug. 1998 [BFR98]. 7.17. Human eyes are fast and effective at judging the quality of clustering methods for two-dimensional data. Can you design a data visualization method that may help humans visualize data clusters and judge the clustering quality for three-dimensional data? What about for even higher dimensional data? Answer: One method is as follows: We first use a clustering algorithm to obtain clusters from the three-dimensional data. We then paint the clusters found. These can be “projected” onto two-dimensional data to obtain the clusters in the 2-D space, making it easier for humans to visualize. To help gain greater insight as to the quality of clusters for the 3-D data, we can then rotate the data space at different angles. Later, we can project onto another set of 2-D data, to similarly rotate the data space. By comparing the different 2-D space clusters, we have a better idea of the clusters in the 3-D data. For higher-dimensional data we can use a method of coloring. First we transform the higher-dimensional data into lower-dimensional data and then use an arbitrary clustering algorithm to obtain the clusters at this lower level. We then paint the clusters into different colors, and continuously perform clustering on the higher-dimensional data. Ideally, we gain greater insight as to the quality of the clusters by comparing the colors of the clusters. 7.18. Suppose that you are to allocate a number of automatic teller machines (ATMs) in a given region so as to satisfy a number of constraints. Households or places of work may be clustered so that typically one ATM is assigned per cluster. The clustering, however, may be constrained by two factors: (1) obstacle objects (i.e., there are bridges, rivers, and highways that can affect ATM accessibility), and (2) additional user-specified constraints, such as each ATM should serve at least 10,000 households. How can a clustering algorithm such as k-means be modified for quality clustering under both constraints? Answer: Constraint algorithms can be modified in the following aspects to allow for constraint-based clustering as specified in the exercise. (We list only some examples): • Microcluster. Objects are clustered locally into microclusters. In a microcluster, no obstacle can appear between any two other objects in the microcluster. • Distance measurement. Distance between two objects should be adjusted if obstacles occur between them. In such cases, reachable distance, instead of direct distance, should be used. Reachable distance gives the minimal (or estimated minimal) distance between two objects with consideration of obstacles. • Medoid-based. For every district, initialize k clusters, where k is between the minimum and maximum number of ATMs allowed in the district. Suppose a medoid is going to be moved across a district border. If after such a move the source district has fewer ATMs than required, or the destination district has more ATMs than expected, then the center can only be moved within the border to the point closest to the corresponding point in the other region. 7.19. For constraint-based clustering, aside from having the minimum number of customers in each cluster (for ATM allocation) as a constraint, there could be many other kinds of constraints. For example, a constraint could be in the form of the maximum number of customers per cluster, average income of customers per cluster, maximum distance between every two clusters, and so on. Categorize the kinds of constraints that can be imposed on the clusters produced and discuss how to perform clustering efficiently under such kinds of constraints. 7.13. EXERCISES 89 Answer: Research by Tung, Han, Lakshmanan, and Ng [THLN01] and Tung, Hou, and Han [THH01] illustrate different kinds of constraints and how to handle them for constraint-based clustering. Section 7.10 of the book presents a general overview of this topic. Students may further summarize these ideas for concise answers. 7.20. Design a privacy-preserving clustering method so that a data owner would be able to ask a third party to mine the data for quality clustering without worrying about the potential inappropriate disclosure of certain private or sensitive information stored in the data. Answer: A basic approach to preserving privacy is to let users provide a modified value for sensitive attributes. Here we summarize two such methods from R. Agrawal and R. Srikant, Privacy-preserving data mining, in Proc. of the 2000 ACM SIGMOD International Conference on Management of Data. pages 439-450, May 2000 [AS00]. • The value-class membership method: In this method, the values for an attribute are partitioned into a set of disjoint, mutually-exclusive classes. Consider the special case of discretization in which values for an attribute are discretized into intervals. All intervals need not be of equal width. For example, salary may be discretized into 10K intervals for lower values and 50K intervals for higher values. Instead of a true attribute value, the user provides the interval in which the value lies. Discretization is the method used most often for hiding individual values. • The value distortion method: Return a value x + r instead of x, where r is random value drawn from some distribution. Two random distributions include: – Uniform: The random variable has a uniform distribution, between [−α, +α]. The mean of the random variable is 0. – Gaussian: The random variable has a normal distribution, with mean 0 and standard deviation. 7.21. Why is outlier mining important? Briefly describe the different approaches behind statistical-based outlier detection, distanced-based outlier detection, density-based local outlier detection, and deviation-based outlier detection. Answer: Data objects that are grossly different from, or inconsistent with, the remaining set of data are called “outliers”. Outlier mining is useful for detecting fraudulent activity (such as credit card or telecom fraud), as well as customer segmentation and medical analysis. Computer-based outlier analysis may be statisticalbased, distance-based, or deviation-based. The statistical-based approach assumes a distribution or probability model for the given data set and then identifies outliers with respect to the model using a discordancy test. The discordancy test is based on data distribution, distribution parameters (e.g., mean, variance), and the number of expected outliers. The drawbacks of this method are that most tests are for single attributes, and in many cases, the data distribution may not be known. The distance-based approach was introduced to counter the limitations of the statistical-based approach. A DB(p, dmin)-outlier is an object o in a data set D such that at least a fraction p of the objects in D lies at a distance greater than dmin from o. In comparison with the statistical-based approach, the distance-based approach generalizes the idea behind discordancy testing for various standard distributions. Moreover, the distance-based outlier detection avoids the excessive computation that can be associated with fitting the observed distribution into some standard distribution and in selecting discordancy tests. Deviation-based outlier detection does not use statistical tests or distance-based measures to identify exceptional objects. Instead, it identifies outliers by examining the main characteristics of objects in a group. 90 CHAPTER 7. CLUSTER ANALYSIS Objects that “deviate” from this description are considered outliers. Two techniques for this approach include a sequential exception technique and an OLAP data cube technique. 7.22. Local outlier factor (LOF) is an interesting notion for the discovery of local outliers in an environment where data objects are distributed rather unevenly. However, its performance should be further improved in order to efficiently discover local outliers. Can you propose an efficient method for effective discovery of local outliers in large data sets? Answer: Local outlier factor (LOF) is an interesting notion for the discovery of local outliers in an environment where data objects are distributed rather unevenly, however, the computation of LOF value for every data object is costly, requiring the computation of a large number of k-nearest neighbors. Since only a small portion of the object can be outliers, an alternative way is to compute only the top-n local outliers. This will save a great deal of computational effort. An efficient microclustering-based method for this is described in W. Jin, K. H. Tung and J. Han, Mining Top-n Local Outliers in Large Databases”, in Proc. 2001 ACM SIGKDD Int. Conf. Knowledge Discovery in Databases (KDD’01), San Fransisco, CA, pages 293-298, Aug. 2001 [JTH01]. Interested readers may refer to this paper for details. Moreover, the method was further developed for improved definition of local outliers, leading to improved quality on local outlier analysis. This refinement is detailed in W. Jin, A. K. H. Tung, J. Han, and W. Wang, Ranking Outliers Using Symmetric Neighborhood Relationship, in Proc. 2006 Pacific-Asia Conf. Knowledge Discovery and Data Mining (PAKDD’06), Singapore, April 2006 [JTHW06]. Chapter 8 Mining Stream, Time-Series, and Sequence Data 8.6 Exercises 8.1. A stream data cube should be relatively stable in size with respect to infinite data streams. Moreover, it should be incrementally updateable with respect to infinite data streams. Show that the stream cube proposed in Section 8.1.2 satisfies these two requirements. Answer: A stream data cube takes a set of potentially infinite data streams as input. If the size of the base cuboid grows indefinitely with the size of data streams, the size of the stream data cube will grow indefinitely. It is impossible to realize such a stream data cube. Fortunately, with the tilted time frame model, the distant time is compressed substantially and the very distant data beyond the specified time frame are faded out (i.e., removed). Thus, the bounded time frames transform infinite data streams into a finite, compressed representation. If the data in the other dimensions of the base cuboid (i.e., the minimal interest layer in the design) are relatively stable with time, then the entire base cuboid (with the time dimensions included) should be relatively stable in size. Similarly, any optional cuboid along the popular path and the observation cuboid (i.e., the observation layer in the design) should also be relatively stable in size. Hence the whole stream cube, should be relatively stable in size with respect to infinite data streams. To incrementally update a stream data cube, one must start from the incremental portion of the base cuboid and use an efficient algorithm to compute it. The time to compute such an incremental portion of the cube should be proportional (desirably, linear) to the size of the incremental portion of the base cuboid of the cube. 8.2. In stream data analysis, we are often interested in only the nontrivial or exceptionally large cube cells. These can be formulated as iceberg conditions. Thus, it may seem that the iceberg cube [BR99] is a likely model for stream cube architecture. Unfortunately, this is not the case because iceberg cubes cannot accommodate the incremental updates required due to the constant arrival of new data. Explain why. Answer: Given the incremental and gradual arrival of new stream data as well as the incremental fading of the obsolete data from the time scope of a data cube, we need to be able to perform incremental updates on such a stream data cube. It is unrealistic to constantly recompute the data cube from scratch upon incremental updates due to the tremendous cost of recomputing the cube on the fly. Unfortunately, such an incremental model does not fit the iceberg cube computation model due to the following observation. 91 92 CHAPTER 8. MINING STREAM, TIME-SERIES, AND SEQUENCE DATA Let a cell “hdi , . . . , dk i : mik ” represent a (k − i + 1)-dimensional cell with di , . . . , dk as its corresponding dimension values and mik as its measure value. If mik does not satisfy the iceberg condition, the cell is dropped from the iceberg cube. However, at a later time slot, t0 , a new measure, m0ik , related to t0 may be added to the cell hdi , . . . , dk i. Because mik has been dropped at a previous instance of time due to its inability to satisfy the iceberg condition, the new measure for this cell cannot be calculated correctly without such information. Thus one cannot use the iceberg architecture to model a stream data cube without recomputing the measure from the base cuboid upon each update. 8.3. An important task in stream data analysis is to detect outliers in a multidimensional environment. An example is the detection of unusual power surges, where the dimensions include time (i.e., comparing with the normal duration), region (i.e., comparing with surrounding regions), sector (i.e., university, residence, government), and so on. Outline an efficient stream OLAP method that can detect outliers in data streams. Provide reasons as to why your design can ensure such quality. Answer: A popular approach in stream data analysis is to think of stream data as a stream data cube. The advantage of this approach is the ability to view data at different granularities in a multidimensional environment. Let us assume that the user has specified two critical layers: the minimal interest layer and the observation layer. We will outline an efficient stream OLAP method to detect outliers in data streams. The method employs the “discovery-driven” approach presented in Sarawagi, Agrawal, and Megiddo [SAM98], where the search for outliers is guided by potential “exception cells” that are precomputed. A cell is considered exceptional if its value differs significantly from the expected value based on a statistical model. The model is described in detail in the forementioned paper and hence will be explained very briefly here. (See also Section 4.2.1. for a summary.) Basically, there are three logical phases in computing exceptions in the stream data cube. The first phase computes the aggregated values efficiently. These values are used to fit the model in the second phase and then summarized top-down in the third phase. These phases are efficiently computed using the UpDown method presented in the paper and model equation rewriting. The exception model is based on several criteria, which provide reasons on why this design can ensure quality. First, the model should consider patterns and variations across all dimensions. Second, exceptions can appear at all aggregated levels (including the observation layer), and the detailed level ( from the minimal interest layer). Third, analysts/users should be able to interpret why a cell is marked as an exception. Lastly, the procedure to compute these exception cells needs to be efficient. Since these four desiderata are all satisfied by the aforementioned model, it is adequate to ensure quality. 8.4. Frequent itemset mining in data streams is a challenging task. It is too costly to keep the frequency count for every itemset. However, because a currently infrequent itemset may become frequent, and a currently frequent one may become infrequent in the future, it is important to keep as much frequency count information as possible. Given a fixed amount of memory, can you work out a good mechanism that may maintain high quality approximation of itemset counting? Answer: The number of frequent itemsets grows exponentially compared to the number of frequent items. As in Lossy Counting we process as many buckets that fit into memory at a time. If we want the approximation with error bound ², transactions are divided by buckets with bucket size d1/²e . We maintain a frequency list (count and maximum error for each itemset), and we update it as follows: 1) if an itemset already exists in the list, we update its count, and 2) if the new count plus maximum error is less than the current bucket number b, we delete the itemset from the list. If an itemset has frequency greater than number of buckets in the memory β and it is not in the list, we add it to the list with maximum error equal to b − β. This method works efficiently when β is large (greater than 30) since all itemsets with frequency less than β are not recorded. The frequency list may grow infinitely as the stream flows. If a new itemset has frequency greater than the number of buckets in the memory and does not appear in the frequency list, it should be inserted as a new 8.6. EXERCISES 93 entry. However, if there is no memory available, we can remove from the frequency list the itemsets for which the itemset count plus maximum error is low. If, after this, there is still no memory available for the insertion, a disk-based Lossy Counting should be used. 8.5. For the above approximate frequent itemset counting problem, it is interesting to incorporate the notion of tilted time frame. That is, we can put less weight on the more remote itemsets when counting frequent itemsets. Design an efficient method that may obtain high-quality approximation of itemset frequency in data streams in this case. Answer: We divide time up into logarithmic time frames (or windows) and save an FP-tree (frequent-pattern tree) for each time frame. Except for the first two (which have a size of 1 batch), the size of each frame is double that of the last. So when a user queries from the last h batches, we can always query within h/2 of the batches. To update and weigh these in an efficient manner, we move the data down the frame every time a new batch arrives. Because of the tilted time frame, we only need to combine, not to split, the FP-tree. The amortized number of combinations per batch is 1 for each frame that is replaced. Half the time a batch will overflow into a temporary buffer, but the other half of the time the buffer will already be full, and the two will combine to create a new FP-tree for the next frame. Combining only requires linear time with respect to the number of items in the FP-tree, therefore, this approach is scalable. We can multiply the combined FP-tree at the combining step by a constant less than 1 to introduce exponential decay of the weights of the frequency counts. Furthermore, we can eliminate low counts at each step, since their weights are decreasing. Another approach is to just multiply by the constant at query time (n number of times for the nth frame, where n goes up as time goes back). However, although this approach allows users to define the “forgetfulness” of the model, it requires multiplication at query time, and worse, requires much more space since low frequency counts in the past cannot be discounted and eliminated. Hence, this alternative approach is not recommended. 8.6. A classification model may change dynamically along with the changes of training data streams. This is known as concept drift. Explain why decision tree induction may not be a suitable method for such dynamically changing data sets. Is naı̈ve Bayesian a better method on such data sets? Comparing with the naı̈ve Bayesian approach, is lazy evaluation (such as the k-nearest neighbor approach) even better? Explain your reasoning. Answer: Suppose concept drift is handled as follows: A classifier is built for the current time window and will be constantly updated as time goes by. Specifically, suppose we have a classifier for time window starting at t, and we need to update the classifier for the next time window starting at t + 1. Let the size of the time window (number of data points) be n, so that the two time windows (or data sets) share n − 1 data points. Let’s compare the suitability of decision tree induction, naı̈ve Bayesian classification, and lazy evaluation with respect to data from each time window (i.e., for the classification of dynamically changing data sets). • Decision tree as the classifier: Even though the two data sets have all but one data point in common, we need to learn each decision tree from scratch because the splitting attribute for a decision tree can be changed by a single data point. • Naı̈ve Bayesian as the classifier: Naı̈ve Bayesian classification uses only the counts to compute the parameters needed, thus it is easy to update the classifier by simply changing the counts. To delete an expired data point and add the incoming one, we only need to reduce the count corresponding to the expired data point and increase the count corresponding to the new data point. All the other counts and hence parameters will not be affected. 94 CHAPTER 8. MINING STREAM, TIME-SERIES, AND SEQUENCE DATA • Lazy evaluation (such as k-nearest neighbor classification): Classifiers that use lazy evaluation store all of the training data points in pattern space and wait until presented with a test data point before performing generalization. Hence, there is no need to update the classifier, except to drop the old data point and add the new one. In summary, in terms of efficiency in stream data classification: lazy evaluation > naı̈ve Bayesian > decision tree. 8.7. The concept of microclustering has been popular for on-line maintenance of clustering information for data streams. By exploring the power of microclustering, design an effective density-based clustering method for clustering evolving data streams. Answer: Basically, we can adopt the mining framework proposed in CluStream [AHWY03], but where the clustering method is replaced by a density-based approach. CluStream is an algorithm for the clustering of evolving data streams based on user-specified, on-line clustering queries. It divides the clustering process into online and off-line components. The on-line component computes and stores summary statistics about the data stream using microclusters, and performs incremental on-line computation and maintenance of the microclusters. The off-line component does macroclustering and answers various user queries using the stored summary statistics, which are based on the tilted time frame model. The main techniques include: (a) Tilted time frame: We can use a tilted time frame for the time dimension to keep the data snapshots. That is, we take a snapshot of the data at every time point but only keep a few of them such that the granularity of data snapshots stored are finer for recent time points and coarser for historical time points. (b) On-line microclustering: We can do microclustering on the stored data snapshots and only keep a fixed number of microclusters. A microcluster is represented by a clustering feature (CF), which summarizes statistical information regarding data locality. Clustering features, developed in BIRCH (Section 7.5.2), are additive. For example, if merging two disjoint microclusters, we simply add their respective CF’s to obtain the CF of the newly formed cluster. For clustering data streams, we can extend the concept of the clustering feature to include the temporal domain. Basically, BIRCH integrates hierarchical clustering with other clustering techniques for multiple phase clustering. It begins by partitioning objects hierarchically using tree structures, and then applies other clustering algorithms to refine the clusters. BIRCH incrementally constructs a CF tree (Clustering Feature tree), which is a height-balanced tree that stores the clustering features for a hierarchical clustering. It first scans the database to build an initial in-memory CF tree, which can be viewed as a multilevel compression of the data that tries to preserve the inherent clustering structure of the data. A density-based clustering algorithm can then be applied to cluster the leaf nodes of the CF tree. The hierarchical clustering technique is therefore used as a preprocessing step. On-line incremental updates of the microclusters can be easily maintained because the microclusters are additive. When new data come in, we either merge the data with an existing microcluster, split the cluster under some criteria, or construct a new cluster and drop an old one. (c) Off-line macroclustering: Query-based macroclustering can be approached based on a user-specified time-horizon h and the number of macroclusters K. Given a time period h, we can find two data snapshots based on the tilted time frame and use the difference between the two snapshots to approximate the incoming data in this time period. Again, we can use a density-based approach (e.g., DBSCAN, Section 7.6.1) to cluster these microclusters. Because the macroclustering here is based on centers of microclusters instead of original data points, this process is very efficient. 8.6. EXERCISES 95 8.8. Suppose that a power station stores data regarding power consumption levels by time and by region, in addition to power usage information per customer in each region. Discuss how to solve the following problems in such a time-series database. (a) Find similar power consumption curve fragments for a given region on Fridays. Answer: We use similarity search methods for this problem. The power consumption curve for a given region for each Friday is first broken down into a set of fragments using a user-specified method such as a sliding window. Each fragment is indeed a sequence. Finding similar power consumption curve fragments among curves on different Fridays is then reduced to similarity search of a fragment in one Friday curve against any fragment generated from any other Friday curve. Similarity search between two fragments is performed as follows: First, gaps are removed. The resulting subsequences are normalized (with respect to offset translation and amplitude scaling) to solve the baseline and scale problem (we replace each point with (xi − µ)/σ). At the end, two subsequences are considered similar if one lies within an envelope of ² width around the other, ignoring outliers (where ² is a small number, specified by a user or expert). This method finds the similar curve fragments for a given region on Fridays. (b) Every time a power consumption curve rises sharply, what may happen within the next 20 minutes? Answer: This problem involves time-series forecasting, which is used to make long-term or short-term predictions of future values. First, we use similarity search methods to find the curves that rise sharply. We can then retrieve the subsequences of the next 20 minutes of these curves. We decompose our data into the four major components for modeling time series: T (trend), C (cyclic), S (seasonal), and I (irregular). We want to make a cyclic prediction. To do this, we first normalize the C component. We can then compute the averages of different curves and use these averages to make predictions about the future. Alternatively, instead of computing averages, we can find similar curves within these 20 minute subsequences, from which we find similarity classes. Each class has a probability assigned to it (e.g., based on the number of curves that lie in one class). We can then claim, with some probability, that the new curve will be in a certain similarity class, and so on. (c) How can we find the most influential features that distinguish a stable power consumption region from an unstable one? Answer: In order to find the most influential features, we need to perform classification over regions. We divide regions into two classes: stable and unstable. To find the most influential features that determine the class of a particular region, we apply a classification algorithm, such as decision tree induction. For example, the influential features may be those with the highest information gain. 8.9. Regression is commonly used in trend analysis for time-series data sets. An item in a time-series database is usually associated with properties in multidimensional space. For example, an electric power consumer may be associated with consumer location, category, and time of usage (weekdays vs. weekends). In such a multidimensional space, it is often necessary to perform regression analysis in an OLAP manner (i.e., drilling and rolling along any dimension combinations that a user desires). Design an efficient mechanism so that regression analysis can be performed efficiently in multidimensional space. Answer: Multidimensional regression analysis has been studied by Chen et al. [CDH+ 02]. The general idea is that instead of computing all of the regression cuboids from scratch, one can compute them level by level by computing a few essential primitive or regression parameters. Regression lines or curves can be derived from such parameters easily. Chen has shown that such computation is very efficient, costs little memory space, and is suited for data cube and data stream computation. For details, please refer to [CDH+ 02]. 96 CHAPTER 8. MINING STREAM, TIME-SERIES, AND SEQUENCE DATA 8.10. Suppose that a restaurant chain would like to mine customers’ consumption behavior relating to major sport events, such as “Every time there is a major sport event on TV, the sales of Kentucky Fried Chicken will go up 20% one hour before the match”. (a) For this problem, there are multiple sequences (each corresponding to one restaurant in the chain). However, each sequence is long and contains multiple occurrences of a (sequential) pattern. Thus this problem is different from the setting of sequential pattern mining problem discussed in this chapter. Analyze what the differences are in the two problem definitions and how such differences may influence the development of mining algorithms. Answer: In the original problem definition, any sequence S that contains a pattern P will contribute to the support of P by one, regardless of how many times P occurs in S. In the new setting, clearly we would like to incorporate the actual count information of P in the sequences. Intuitively, a pattern that has a larger number of total counts would be more interesting than a pattern that occurs in the same number of sequences but with a smaller number of counts. There are different ways of formulating the new problem. Two of them are as follows. Let P be a sequential pattern: i. P is frequent if (1) the number of sequences that include P as a subsequence is greater than or equal to the minimum support, min sup; and (2) the total number of occurrences of P in all sequences is greater than or equal to min total counts. We need to satisfy both (1) and (2) instead of only (2) because if (1) is not a constraint, then we may find patterns that occur many times in a single sequence, but that do not occur in all of the other ones. It would thus be unclear whether these patterns are frequent across the database. ii. P is frequent if the number of sequences where P occurs as a subsequence for no less than min count times is greater than or equal to min sup. In other words, only the sequences where P occurs for at least a certain number of times will contribute to the support of P . Note that when min count is equal to 1, this reduces to the original problem definition. (b) Develop a method for finding such patterns efficiently. Answer: For the first problem formulation, a possible method consists of two steps as follows. At the first step, we use any sequential pattern mining algorithm, such as PrefixSpan to mine the candidate patterns. These patterns will satisfy the first constraint. In the second step, we select the patterns that also meet the second criterion by collecting the counts of each candidate pattern. A prefix-tree can be used to hold all of the candidate patterns and only a scan of one restaurant sequence is needed to collect the counts in that restaurant sequence. For the second problem formulation, a possible method may consist of two steps as follows. In the first step, we find within each restaurant sequence any candidate pattern that occurs no less than min count times, and build a prefix-tree to hold all of the candidate patterns. In the second step, we merge all of the prefix-trees to collect the number (i.e., inter-sequence count) of sequences in which each candidate pattern occurs, and output the pattern if the inter-sequence count count is greater than or equal to min sup. 8.11. (Implementation project) The sequential pattern mining algorithm introduced by Srikant and Agrawal [SA96] finds sequential patterns among a set of sequences. Although there have been interesting follow-up studies, such as the development of the algorithms SPADE (Zaki [Zak01]), PrefixSpan (Pei, Han, MortazaviAsl, et al. [PHMA+ 01]), and CloSpan (Yan, Han, and Afshar [YHA03]), the basic definition of “sequential pattern” has not changed. However, suppose we would like to find frequently occurring subsequences (i.e., sequential patterns) within one given sequence, where, say, gaps are not allowed. (That is, we do not consider AG to be a subsequence of the sequence ATG). For example, the string ATGCTCGAGCT contains a substring GCT with a support of 2. Derive an efficient algorithm that finds the complete set of subsequences satisfying a minimum support threshold. Explain how your algorithm works using a small example, and show some performance results for your implementation. 8.6. EXERCISES 97 Algorithm: Find the complete set of subsequences satisfying a minimum support threshold. Input: • S: a sequence • min sup: the minimum support threshold Output: The complete set of sequential patterns. Method: Call SubSeqs(φ, 0, S). Subroutine: SubSeqs(α, l, S|α ). The parameters are: 1) α is a sequential pattern 2) l is the length of α 3) S|α consists of the α-projected sequences if α 6= φ, otherwise, it is the original sequence S. Method: 1. Scan S|α once, find each frequent item b such that b can be appended to α to form a sequential pattern. 2. For each frequent item b, append it to α to form a sequential pattern α0 , and output α0 . 3. For each α0 , construct α0 -projected sequences S|α0 , and call SubSeqs(α0 , 1, S|α0 ). Figure 8.1: Find frequently occurring subsequences within a given sequence. A 2,3,9,10,13 AACGGTCAACGAT C G T AA 4,8,11 5,6,12 7,14 3,10 AC 4,11 ... ... Table 8.1: An input sequence (AACGGTCAACGAT) and its pseudo-projected subsequences. Answer: An algorithm that follows the basic idea of PrefixSpan can be used for this problem, as illustrated in Figure 8.1. Based on this algorithm, we also need to conduct some optimization strategies to improve the performance. First, the idea of pseudo-projection from PrefixSpan as described in the text can be directly applied in this problem. That is, each α-projected sequence is basically a subsequence with α as the prefix. Using pseudo-projection, we don’t need to copy every α-prefixed subsequence when doing the depthfirst-search. Instead, we can just register the starting position of the projected suffix for each α-prefixed subsequence. This saves both space and time by avoiding the generation of numerous physical projected subsequences. Table 8.1 shows an example of a sequence and some of its pseudo-projected subsequences. When we grow the patterns, we only need to increase the registered position by one since gaps are not allowed. During the depth-first-search, any sequence pattern with a support of less than min sup can be pruned. This saves the time of searching in the subtree of this pattern. The amount of resulting frequent subsequences may be huge. In this case, mining closed sequential patterns may be more desirable and efficient. In this problem, we can adopt the method of checking for closed subsequences during the mining process as proposed in BIDE [WH04]. Basically, before mining the α-projected sequences S|α , we can simply compute the indices of the positions that are exactly one position before the beginning of the α-prefixed subsequences, and check whether the set of these indices is a subset of a frequent single-item-projected subsequence. That is, we check whether all of the α-prefixed subsequences follow the same item in the input sequence. For example, in Table 8.1, before growing the AC -projected subsequences, we get the set of its pseudo-projected indices, {4, 11}. The indices of the positions that are exactly one position before AC can be computed as {4 − 2, 11 − 2} = {2, 9}, which is a subset of the indices of A-projected subsequences {2, 3, 9, 10, 13}. Therefore, we can infer that every AC -prefixed subsequence with length l must be a subsequence of some 98 CHAPTER 8. MINING STREAM, TIME-SERIES, AND SEQUENCE DATA AAC -prefixed subsequence with length l + 1. Thus, AC -prefixed subsequences cannot satisfy the closedness constraints and must be pruned immediately to save time and space. The main computation involved here is to check whether the items by indices {2, 9} are the same. This small overhead of closed-sequence checking requires much less time than searching in the subtrees and will likely be faster than complete sequential pattern mining. 8.12. Suppose frequent subsequences have been mined from a sequence database, with a given (relative) minimum support, min sup. The database can be updated in two cases: (i) adding new sequences (e.g., new customers buying items), and (ii) appending new subsequences to some existing sequences (e.g., existing customers buying new items). For each case, work out an efficient incremental mining method that derives the complete subsequences satisfying min sup, without mining the whole sequence database from scratch. Answer: Let DB be the original sequence database. For case (i), let DB 0 be a database containing all of the new sequences to be inserted into DB. Let S be a new sequence from DB 0 to be inserted into DB. If S is frequent in the final updated database DB + DB 0 , then S must be frequent in either DB or DB 0 . Based on this observation, we can apply a sequential mining algorithm (e.g., PrefixSpan) to DB and DB 0 , respectively. Because DB has already been mined, only DB 0 should be checked. The set of frequent patterns in DB and the set in DB 0 will serve as candidate patterns for the final frequent patterns. Thus, we only need to scan to get the candidates’ frequency count to determine which patterns are truly frequent. In case (ii), a pattern S that is infrequent in both DB and DB 0 may become frequent in DB + DB 0 , because infrequent sequential patterns in DB can become frequent by appending new items. To deal with this, we can maintain another set, C, of subfrequent pattern candidates. The sequences in C are below the min sup threshold, but not by too much, which means that they are likely to become frequent in the future. Note that the prefix of a frequent sequential pattern must also be frequent. Thus, C can be extended from the PrefixSpan algorithm. Each time a new sequence is added to DB 0 , we can check for each pattern S in C to see if it becomes frequent. If so, S will be moved from C to the frequent set. In addition, if any pattern in the frequent set becomes subfrequent but not infrequent, we move it into candidate set, C. A serious study of this problem has been done by Cheng, Yan, and Han [CYH04]. Please refer to that paper for the detailed algorithm. 8.13. Closed sequential patterns can be viewed as a lossless compression of a large set of sequential patterns. However, the set of closed sequential patterns may still be too large for effective analysis. There should be some mechanism for lossy compression that may further reduce the set of sequential patterns derived from a sequence database. Answer: Note: This problem is a good research topic. We have not seen an existing research paper on this but some of my students may take this as a potential research project. (a) Provide a good definition of lossy compression of sequential patterns, and reason why such a definition may lead to effective compression with minimal information loss (i.e., high compression quality). Answer: Xin et al. [XHYC05] has recently performed an interesting study on compressing frequent patterns. The essential definition is based on both pattern representation and patter support. That is, two patterns are similar if they have similar representation and similar support. This notion can be extended to define compressed sequential patterns. 8.6. EXERCISES 99 (b) Develop an efficient method for such pattern compression. Answer: This algorithm is a research topic, whose standard answer will be worked out after our further research. (c) Develop an efficient method that may mine such compressed patterns directly from a sequence database. Answer: This algorithm is a research topic, whose standard answer will be worked out after our further research. 8.14. As discussed in Section 8.3.4, mining partial periodic patterns requires a user to specify the length of the period. This may burden the user and reduces the effectiveness of mining. Propose a method that will automatically mine the minimal period of a pattern without requiring a predefined period. Moreover, extend the method to find approximate periodicity where the period need not be precise (i.e., it can fluctuate within a specified small range). Answer: We first examine the case where the period is exact, albeit unknown. We consider only categorical data. The input of the problem is a sequence S, defined on some alphabet Σ. Each symbol in Σ represents an event. Our goal is to find all events that show periodicity in S. Suppose some minimum support, min sup, is defined as the minimum number of consecutive occurrences of an event (spaced by the same period) required in order for the event to be called periodic. The first step of the algorithm extracts the positions of each event. Thus, for each event, we have a sequence of monotonically increasing integers that represents where this event occurs in S. The next step finds the hidden period for each event. Let the event be E. Note that in addition to the periodic occurrences of E, there may be other occurrences of E. For example, suppose {2, 8, 14, 15, 20, 26, 29, 32} is the sequence for E. The actual period for E is 6. The values 15 and 29 represent noise in the sequence. Thus, there are 5 periods in the sequence. An approach to finding the minimal period of E is to find the longest arithmetic progression in the sequence for E. That is, given an array A[1 . . . n] of integers, we wish to find the largest sequence of indices hi0 , i1 , . . . , ik−1 i such that A[ij ] − A[ij−1 ] = A[i1 ] − A[i0 ] for all i. This will lead to the period for E and the number of times E occurs in the periodic pattern. Dynamic programming algorithms have been developed for the longest arithmetic progression problem (e.g., see compgeom.cs.uiuc.edu/∼jeffe/pubs/arith.html ). To find events with approximate periodicity, we adopt the same framework described above but add a parameter, ². If T is the real period, then two consecutive occurrences of E separated by T + ² or T − ² would also be acceptable. It is not hard to see that the longest arithmetic progression algorithm can be modified to accommodate this situation as well. 8.15. There are several major differences between biological sequential patterns and transactional sequential patterns. First, in transactional sequential patterns, the gaps between two events are usually nonessential. For example, the pattern “purchasing a digital camera two months after purchasing a PC ” does not imply that the two purchases are consecutive. However, for biological sequences, gaps play an important role in patterns. Second, patterns in a transactional sequence are usually precise. However, a biological pattern can be quite imprecise, allowing insertions, deletions, and mutations. Discuss how the mining methodologies in these two domains are influenced by such differences. Answer: Unlike transactional sequences, biosequences typically have a small alphabet, a long length, and patterns containing gaps of arbitrary size. Mining frequent patterns in such sequences faces a very different type of pattern explosion than mining in transactional sequences (which are common in market-basket analysis) for the following reasons. 100 CHAPTER 8. MINING STREAM, TIME-SERIES, AND SEQUENCE DATA (a) Biosequences generally have a very limited alphabet, e.g., four symbols for DNA sequences and twenty symbols for protein sequences. In contrast, transactional sequences usually have a large alphabet, and typically, only a tiny fraction of items occur in any given transaction sequence. Because of the denseness of sequential patterns in biosequences (that is, most items occur in every biosequence), pruning strategies and data structures that are used for transactional sequence mining will generally not be effective for mining biosequences. One example is the vertical data structure used in frequent pattern mining. In biosequences, the TID-list is typically very large and may incur serious overheads in time and space for the mining process. (b) A biosequence is generally very long (> 100). The classic sequential pattern-growth strategy only extends the pattern one item at a time, and thus may require many database scans on each sequence. When the biosequence database is huge and cannot be loaded into memory as a whole, the patterngrowth strategy will likely need to scan all of the sequences at every instance of pattern growth and database projection. In this situation, the overhead of this approach is nontrivial. Therefore, techniques aimed at mining short sequences over a large alphabet are less effective for biosequences. (c) Mutation of amino acids is a common phenomenon. For example, an amino acid is likely to mutate to another type of amino acid with little impact on the biological function of the protein. Hence, a biological pattern can be quite imprecise. The classic measure of pattern support is introduced in the context of precise sequence patterns and cannot serve the purpose of mining imprecise “noisy frequent patterns” in biosequences. To handle such patterns, we need to introduce specific probabilistic models to represent the patterns, e.g., the PWM (position-weight-matrices) representation for transcription factor binding sites [Coh04, DEKM98]. (d) For biological sequences, gaps play an important role in patterns. Some frequent pattern mining problems in biosequences require incorporating the gap and regular expression constraints. How to push these constraints deep inside the mining process should be considered when developing the mining algorithm. Exploiting the prefix antimonotonic property of some constraints would make the mining process more efficient. 8.16. BLAST is a typical heuristic alignment method for pairwise sequence alignment. It first locates high-scoring short stretches and then extends them to achieve suboptimal alignments. When the sequences to be aligned are really long, BLAST may run quite slowly. Propose and discuss some enhancements to improve the scalability of such a method. Answer: MEGABLAST was proposed as a method for improving the performance of BLAST for large sequences. MEGABLAST uses a greedy algorithm for sequence alignment and concatenates many queries to save time spent scanning the database. It is optimized for aligning sequences that differ slightly as a result of sequencing or other similar “errors”. It is able to handle much longer DNA sequences than BLAST and can be up to ten times faster than common sequence similarity programs. Another way to improve the BLAST method is to use hash tables for different word sizes. Recall that word size is roughly the minimal length of an identical match that an alignment must contain if it is to be found. The method starts with larger word sizes and tries to find a hit in a sequence database and extend it in both directions. The method finds high quality alignments. It then reduces the word size and tries to find a hit. In this case a hit would be ignored if it is part of the previous round (matching larger words). In this method, we start with word size W and we decrease W until we find a hit in our database. This decreasing can be done using a binary search. When the highest word size with a hit is found, we decrease W and try to find more matching subsequences. We ignore smaller subsequences if they are part of previously found larger subsequences. Some fast genome alignment algorithms can be found in the following paper: Tamer Kahveci, Vebjorn Ljosa, Ambuj K. Singh: Speeding up whole-genome alignment by indexing frequency vectors. Bioinformatics 20(13): 2122-2134 (2004). 8.6. EXERCISES 101 8.17. The Viterbi algorithm uses the equality, argmaxπ P (π|x) = argmaxπ P (x, π) in its search for the most probable path, π ∗ , through a hidden Markov model for a given sequence of symbols, x. Prove the equality. Answer: We know that P (π|x) = P (x, π)/P (x), so the value of π that maximizes P (π|x) also maximizes P (x, π)/P (x). In addition, P (x), the probability of the given variable x, is constant across different values of π. Therefore, argmaxπ P (π|x) = argmaxπ (P (x, π)/P (x)) = argmaxπ P (x, π). 8.18. (Implementation project) A dishonest casino uses a fair die most of the time. However, it switches to a loaded die with a probability of 0.05, and switches back to the fair die with a probability 0.10. The fair die has a probability of 16 of rolling any number. The loaded die has P (1) = P (2) = P (3) = P (4) = P (5) = 0.10 and P (6) = 0.50. (a) Draw a hidden Markov model for the dishonest casino problem using two states, Fair (F) and Loaded (L). Show all transition and emission probabilities. Answer: The hidden Markov model has two states F and L. The transition probabilities are: P (F |F ) = 0.95, P (L|F ) = 0.05, P (F |L) = 0.10, P (L|L) = 0.90 and the emission probabilities are: P (1|F ) = P (2|F ) = P (3|F ) = P (4|F ) = P (5|F ) = P (6|F ) = 1 6 P (1|L) = P (2|L) = P (3|L) = P (4|L) = P (5|L) = 0.10, P (6|L) = 0.5 (b) Suppose you pick up a die at random and roll a 6. What is the probability that the die is loaded, that is, find P (6|DL )? What is the probability that it is fair, that is, find P (6|DF )? What is the probability of rolling a 6 from the die you picked up? If you roll a sequence of 666, what is the probability that the die is loaded? Answer: We first find the probability of rolling a 6: P (6) = P (6|DL )P (DL ) + P (6|DF )P (DF ) = 1 1 1 1 1 · + · = 2 2 6 2 3 We then find the posterior probabilities, P (DL |6) and P (DF |6), by Bayes’ Theorem (Equation 6.10): P (DL |6) = P (6|DL )P (DL ) = P (6) P (DF |6) = 1 − P (DL |6) = 1 2 · 1 3 1 2 = 3 4 1 4 Given the sequence 666, the probability that the die is loaded can be found similarly using Bayes’ Theorem: P (DL |666) = ( 1 )3 · 21 P (666|DL )P (DL ) = 1 3 12 P (666|DL )P (DL ) + P (666|DF )P (DF ) ( 2 ) · 2 + ( 16 )3 · 1 2 = 27 28 102 CHAPTER 8. MINING STREAM, TIME-SERIES, AND SEQUENCE DATA (c) Write a program that, given a sequence of rolls (e.g., x = 5114362366 . . .), predicts when the fair die was used and when the loaded die was used. (Hint: This is similar to detecting CpG islands and non-CPG islands in a given long sequence.) Use the Viterbi algorithm to get the most probable path through the model. Describe your implementation in report form, showing your code and some examples. Answer: We apply the Viterbi algorithm to solve this problem: Let the most probable path be π ∗ , then π ∗ = argmaxπ P (π|x). The optimization is done by a dynamic programming procedure. The exact recurrence for dynamic programming is shown in Figure 8.12 of the text, and hence is not reproduced here. The result is FFFFFFFFLL for the sequence 5114362366. Author’s note: If the reader has the first printing of the text, please kindly refer to www.cs.uiuc.edu/∼hanj/ bk2/errataindex.htm to correct an error regarding Equation (8.15) of the Viterbi Algorithm. Chapter 9 Graph Mining, Social Network Analysis, and Multirelational Data Mining 9.5 Exercises 9.1. Given two predefined sets of graphs, contrast patterns are substructures that are frequent in one set but infrequent in the other. Discuss how to mine contrast patterns efficiently in large graph data sets. Answer: The search of contrast patterns requires two parameters: the minimum support of a substructure in the positive set and the maximum support in the negative set. Borgelt and Berthold discussed the mining of contrast substructures using their MoFa algorithm [BB02]. The mining is carried out in a similar way as their frequent substructure mining algorithm, which is pattern-growth based. The pruning is done on the search of frequent substructures in the positive set while the maximum support in the negative set is used to filter out unqualified substructures. 9.2. Multidimensional information can be associated with the vertices and edges of each graph. Study how to develop efficient methods for mining multidimensional graph patterns. Answer: Let’s first formalize the problem definition. Given a database of n graphs DB = {G1 , G2 , . . . , Gn }, where each vertex or edge has m dimensions (values) associated with it, the goal is to mine all frequent subgraphs, where subgraphs can be in the m-dimensional space or in a lower-dimensional subspace. A graph G0 is a k-dimensional subgraph of G if there exists a mapping of G0 = {u1 , . . . , u|G0 | } to exactly |G0 | vertices {v1 , v2 , . . . , v|G0 | } in G and also at least k dimensions, so that ui and vi agree on all k dimensions. It is clear that the gSpan algorithm cannot be directly applied to this problem because an m-dimensional graph will have numerous combinations of DFS code. The key to solving the problem is to first view the m-dimensions individually. We can divide the whole database DB into m databases, {DB1 , . . . , DBm }, where the ith DB contains the information for the ith dimension. For each reduced database, gSpan can be applied to obtain all of the global frequent 1dimensional graphs. Based on the Apriori property, all subgraphs of a frequent k-dimensional graph must also be frequent. Therefore, the 1-dimensional frequent subgraph patterns can form a candidate set of 2-dimensional frequent 103 104CHAPTER 9. GRAPH MINING, SOCIAL NETWORK ANALYSIS, AND MULTIRELATIONAL DATA MINING patterns by performing joins between pairs of isomorphic graphs. The whole database is then scanned to update the count information for the candidates. {1,3} {2,4} {4,6} {1} {2} {4} {3} {4} {6} Figure 9.1: Mining multidimensional graph patterns (Exercise 9.2). This property is straightforward as seen in Figure 9.1. If the 2-dimensional graph on the left-hand side is frequent, then the two 1-dimensional graphs on the right-hand side must also be frequent. Thus, an Apriori-like algorithm can efficiently mine multidimensional frequent graph patterns. 9.3. Constraints often play an important role in efficient graph mining. There are many potential constraints based on users’ requests in graph mining. For example, one may want graph patterns containing or excluding certain vertices (or edges), with minimal or maximal size, containing certain subgraphs, with certain summation values, and so on. Based on how a constraint behaves in graph mining, give a systematic classification of constraints and work out the rules on how to maximally use such constraints in efficient graph mining. Answer: When mining frequent patterns, the user can specify several classes of constraints [NLHP98, PHL01]. Instead of just filtering the resulting patterns, these can be used to prune the search space while mining. We assume that the general algorithm grows closed frequent subpatterns using some type of ordering (DFS or right-most extension) to avoid repeatedly exploring part of the search space. Constraint types include the following: (a) Element Constraint. Such constraints specify certain nodes or edges that either must or cannot be in the resulting patterns. If some elements must be in the pattern, we can start with those nodes/edges and grow. If certain nodes/edges cannot be in the pattern, we can exclude them from the graph during mining. This kind of constraint can be generalized to subgraphs as well. (b) Size Constraint. The size constraint controls the number of nodes (or edges) of resulting patterns. When growing patterns, the algorithm will not report the patterns under a minimum threshold (monotonic), and stops growing when it reaches a maximum threshold (anti-monotonic). (c) Aggregate Constraint. These are constraints on the aggregates of attributes, like weights of nodes or edges. The algorithm for this depends on the aggregate constraint. However, if we assume that the aggregate grows monotonically with the size of the pattern (like the sum of link distance), and we have a range of acceptable values, then we can treat this much like a size constraint. That is, do not report graphs where the aggregate value is below some lower threshold and stop growing when it exceeds the upper threshold. On the other hand, if the constraint is anti-monotonic, or something that needs to be checked at every node/vertex (like minimum degree), we can check to prune when we grow, as with element constraints. Recent studies on constraint-based graph mining include [YZH05]. 9.4. Our discussion of frequent graph pattern mining was confined to graph transactions (i.e., considering each graph in a graph database as a single “transaction” in a transactional database). In many applications, one 9.5. EXERCISES 105 needs to mine frequent subgraphs in a large single graph (such as theWeb or large social network). Study how to develop efficient methods for mining frequent and closed graph patterns in such data sets. Answer: There are two ways to count subgraphs in a large single graph. The first considers two subgraphs to be different if they differ by at least by one edge. The second way requires the two graphs to be completely edge disjoint. The resulting frequency of the second method follows the downward closure property, which is discussed by most frequent pattern discovery algorithms. gSpan can be modified for this purpose as follows. Build and right-most extend the DFS tree in parallel by taking each node as the root. When an edge is added, check if the disjoint-property is violated. To optimize non-overlapping, the backward edges can be added first, and forward edges can be added more conservatively using a stack to keep track of the delayed extensions. An anchor-based technique similar to that used in the HSIGRAM-EMBED algorithm by Kuramochi and Karypis [KK04] for discovering frequent patterns in large graph can be applied further during the forward extension. Starting from the subgraph with the lowest frequency, for each new forward edge to be added (anchor edge a), check if the shortest path between a and any edge in the existing subgraph is within the diameter of the subgraph. If that is the case, this edge is naturally closer to the subgraph and will be added first. Notice that the above optimization will reorder or delay some forward extensions in order to reduce the overlapped pruning, but these extensions will not be ignored and will still be attempted. 9.5. What are the challenges for classification in a large social network in comparison with classification in a single data relation? Suppose each node in a network represents a paper, associated with certain properties, such as author, research topic, and so on, and each directed edge from node A to node B represents that paper A cites paper B. Design an effective classification scheme that may effectively build a model for highly regarded papers on a particular topic. Answer: Challenges: Large social networks exhibit different characteristics than single data relations and therefore introduce different challenges in classification tasks. First, large social networks are not static. As a result, features in classifiers have to be dynamically updated to handle this challenge. Second, the nodes in large social networks are linked together. These links contain semantics that classifiers need to analyze and use. Finally, nodes in large social networks are heterogeneous and noisy (they may belong to different communities for different purposes) and therefore, not all are relevant as training data for classifiers. Classification Scheme: In traditional classification methods, which are designed for single data relations, objects are classified based on the attributes that describe them. However, when classifying in a large social network, we have to consider the link structure of the network. Link-based classification predicts the category of an object based not only on its attributes, but also on its links, and on the attributes of linked objects. Take Web page classification as an example. It predicts the category of a Web page based on word occurrence and anchor text, both of which serve as attributes. In addition, classification is based on links between pages and other attributes of the pages and links. This gives us insight into classifying citation data. Classification in social networks include two schemes: classifying objects (nodes) and classifying links (edges). In the citation domain, classifying highly regarded papers is considered as the classification of objects. Specifically, a paper (i.e., node) has its own attributes like author, topic, keywords, abstract, and full text. In addition, it is linked to other papers by citations. To model the highly regarded papers on a particular topic, we can first select all of the papers on this topic, which forms a subgraph of the entire network. We can then apply any object ranking/classification method for general social networks (such as PageRank, HITS, etc.) on this subnetwork to obtain the highly regarded papers. Note that if training data are not available, we can rely on PageRank and HITS. If we do have training data, the classifier we build can also accommodate object attributes such as contents and authors. 9.6. A group of students are linked to each other in a social network via advisors, courses, research groups, and friendship relationships. Present a clustering method that may partition students into different groups according to their research interests. 106CHAPTER 9. GRAPH MINING, SOCIAL NETWORK ANALYSIS, AND MULTIRELATIONAL DATA MINING Answer: For this purpose we use group detection, which is a clustering task. It predicts when a set of objects belong to the same group or cluster, based on their attributes as well as their link structure. This is also known as community mining. It can be thought of as subgraph identification. Most algorithms for community mining assume that there is only one kind of relation. In this exercise, there exist multiple, heterogeneous social networks, representing various relationships. Each kind of relation may play a distinct role in a particular task. We first need to identify which relation plays an important role. Such a relation might not exist explicitly, that is, we may need to first discover such a hidden relation before finding the community. The algorithm for relation extraction, which models the task as an optimization problem, is as follows: Given are a set of objects and a set of relations, which can be represented by a set of graphs Gi (V ; Ei ), i = 1, . . . , n, where n is the number of relations, V is the set of nodes (objects), and Ei is the set of edges with respect to the ith relation. Suppose a hidden relation is represented by a graph G0 (V ; E 0 ). A user specifies her information need as a query in the form of a set of labeled objects X = [x1 ; . . . ; xm ] and Y = [y1 ; . . . ; ym ], where yi is the label of xi (such labeled objects indicate partial information of the hidden relation G0 ). The algorithm aims to find a linear combination of the weight matrices of initial graphs that can best approximate G0 . After modeling the given problem with graphs, the following was observed: (1) the research group relation plays an important role; (2) people with the same adviser have the same research interest; and (3) the friendship relation is not that important. Therefore, the distance between two objects can be defined by the distance between research groups or advisor groups. Clustering can then be performed easily with this distance metric. 9.7. Many diseases spread via people’s physical contacts in public places such as offices, classrooms, buses, shopping centers, hotels, and restaurants. Suppose a database registers the concrete movement of many people (e.g., location, time, duration, and activity). Design a method that can be used to rank the “not visited” places during a virus-spreading season. Answer: We model the problem in the following manner: Assume that each place that the database keeps track of is a node. Each time a person moves from one place to another place (as the database registers this movement), we create a link between the two places (nodes). We also label the edges with the time of the movement (when the link was created). In other words, we are given a social network as input (with different places as nodes, and travel between those places as links). In this social network, each link has a weight, which is related to how recently it was created. For example, if X has moved from room A to room B one day ago, and Y has moved from A to B 10 days ago, we will have two links between A and B, where the first will have substantially more weight than the second. The motivation is that the more recent a link is, the more probable it is that it will be used in spreading the viruses and diseases. Given affected people, we can find the start seed of the affected places and mark them. To find the not-visited places during the virusspreading season, the problem boils down to finding communities of not-visited places. That is, we need to find communities and rank them (using a clustering algorithm, for example). When ranking, the weight of the links plays an important role. We can exploit their “freshness” to rank and mine the communities. Different algorithms can be used for this purpose, such as follows: (a) Use the algorithm for community mining from multi-relational networks as described in Section 9.2.4. Note, however, that this method does not exploit link analysis and models the problem as an optimization problem. (b) Use a link-based hierarchical clustering method. To do so, we can define the similarity of two objects based on the nodes that link them together. This can be defined in a recursive manner. Any similarity scheme can be applied but should (1) exploit the link-based nature of the problem and (2) exploit the link weights. We can then apply a hierarchical clustering method on top of this model. 9.5. EXERCISES 107 9.8. Design an effective method that discovers hierarchical clusters in a social network, such as a hierarchical network of friends. Answer: The essence of social networks is their link structure. The clustering of social network should use structural equivalence in measuring the similarity between clusters. Two vertices are said to be structurally equivalent if they have the same set of neighbors. Similarity measures the degree of equivalence. The similarity between vertex a and b is sX X(a, b) = (Aac − Abc )2 , c6=a,b where Aac and Abc are the elements of the adjacency matrix for vertices a and b, respectively. The adjacency matrix for a (or b) represents the connection status between a (or b) and any other vertex, c (e.g., 1 for connected, 0 for no connection). Notice that a and b can be clustered even if they are not connected to each other. Once the similarity has been calculated, a standard hierarchical clustering algorithm such as k-medoids can be applied, and the vertices and edges are added gradually in the order of decreasing similarity. 9.9. Social networks evolve with time. Suppose the history of a social network is kept. Design a method that may discover the trend of evolution of the network. Answer: The Forest Fire model, proposed by Leskovec, Kleinberg, and Faloutsos [LKF05], can be used to discover the trend of evolution of networks. Research has shown that the evolution of social networks usually involves three common phenomena: densification power law, shrinking diameter, and heavy-tailed out-degree and in-degree distributions. The Forest Fire model captures these characteristics of graph evolution over time. It is based on the notion that new nodes attach to the network by “burning” through existing edges in epidemic fashion. It uses two parameters: a forward burning probability, p, and a backward burning ratio, r. When a new node, v, arrives at time t, it attaches to the graph constructed so far as summarized in Section 9.2.2. (Thus, we do not repeat the details here.) Several earlier models of network evolution were based on static graphs, identifying network characteristics from a single or small number of snapshots, with little emphasis on finding trends over time. The Forest Fire model combines the essence of several earlier models, while considering the evolution of networks over time. The success of this model explains the common characteristics of network evolution. People may be interested in particular evolution trends, such as the change of communities, the change of density of links for specific nodes (or group of nodes), and “actively changing” nodes. These can be investigated by extending existing models that compare historical snapshots. Taking community evolution for example, we can borrow the clustering methods in data stream mining [AHWY03]. First, we store snapshots of the network in tilted time frames (Section 8.1.2). For each snapshot, microclustering is performed off-line, keeping a fixed number of “micro-communities”. We can analyze the evolution of communities by comparing two snapshots. Basically, we want to determine (1) which communities no longer exist; (2) which communities are new; and (3) which communities have merged. 9.10. There often exist multiple social networks linking a group of objects. For example, a student could be in a class, a research project group, a family, a neighborhood, and so on. It is often beneficial to consider their joint effects or interactions. Design an efficient method in social network analysis that may incorporate multiple social networks in data mining. Answer: 108CHAPTER 9. GRAPH MINING, SOCIAL NETWORK ANALYSIS, AND MULTIRELATIONAL DATA MINING Typical work on social network analysis includes the discovery of groups of objects that share similar properties. This is known as community mining. Most algorithms for community mining assume that there is only one social network. In reality, there exist multiple, heterogeneous social networks. The challenge is the mining of hidden communities on such heterogeneous social networks. An example is when you want to find a group of students who have the same research interest (e.g., they are interested in data mining). A student could be in a data mining class, a research project group related to data mining, and many other social networks that reflect his interest in data mining. There are always various kinds of relationship between the objects because an object may be in different social networks. The different relation graphs can provide us with different communities. To find a community with certain properties, we first need to identify which relation plays an important role in such a community. Such a relation might not exist explicitly, that is, we may need to first discover such a hidden relation before finding the community on such a relation network. As in the previous exercise, we try to extract relevant relations. An algorithm for relation extraction is as follows. It models the task as an optimization problem. Given are a set of objects and a set of relations, which can be represented by a set of graphs Gi (V ; Ei ), i = 1, . . . , n, where n is the number of relations, V is the set of nodes (objects), and Ei is the set of edges with respect to the i-th relation. The weights on the edges can be naturally defined according to the relation strength of two objects. The algorithm characterizes each relation by a graph with a weight matrix. Suppose a hidden relation is represented by a graph G0 (V ; E 0 ), and M 0 denotes the weight matrix associated with G0 . A user specifies her information need as a query in the form of a set of labeled objects. The algorithm aims at finding a linear combination of these weight matrices that can best approximate G0 (the weight matrix associated with the labeled examples.) The obtained combination is more likely to meet the user’s information need, so it leads to better performance in community mining. Therefore, given a new object, we can label it either as a member of a hidden group or not. In other words, if it is strongly connected (that is, with high weight) to the objects in the group, then it is considered to be in that group. 9.11. Outline an efficient method that may find strong correlation rules in a large, multirelational database. Answer: We suggest a method based on probabilistic relational models (PRM), as described by Getoor, Friedman, Koller, and Taskar [GFKT01], which are an extension of Bayesian networks to relational domains. A PRM describes a template for a probability distribution over a database. The template includes a relational component (which describes the relational schema for the domain) and a probabilistic component (which describes the probabilistic dependencies that hold in the domain). A PRM, together with a particular universe of objects, defines a probability distribution over the attributes of the objects and the relations that hold between them. The relational component describes entities in the model, attributes of each entity, and references from one entity to another. The probabilistic component describes dependencies among attributes, both within the same entity and between attributes in related entities. An edge between attributes represents a probabilistic dependence of one attribute on another. 9.12. It is important to take a user’s advice to cluster objects across multiple relations, because many features among these relations could be relevant to the objects. A user may select a sample set of objects and claim some should be in the same cluster but some cannot. Outline an effective clustering method with such user guidance. Answer: A method similar to CrossMine (for cross-relational clustering) [YHYY04] could be adopted here. The basic idea is to search for pertinent features from the multiple relations, which may be joined through the “primary keys” or “foreign keys”. A pertinent feature is one that satisfies user’s constraints. In this exercise, the user specifies some examples that should occur in the same cluster and others that should not. If a feature is pertinent then, based on this feature, the examples that are required to be in the same cluster may have high similarity scores, whereas the examples prohibited their occurring in the same cluster may 9.5. EXERCISES 109 have low similarity scores. Similar heuristics to those in [YHYY04] can be applied to confine the search for pertinent features to the most promising directions. Techniques such as tuple ID propagation can also be used to improve the efficiency of the algorithm. After finding a pertinent feature, a standard clustering algorithm such as k-medoids can be used to cluster the target tuples. This method has been summarized in a recent paper as CrossClus algorithm by Yin, Han and Yu [YHY05]. 9.13. As a result of the close relationships among multiple departments or enterprises, it is necessary to perform data mining across multiple but interlinked databases. In comparison with multirelational data mining, one major difficulty with mining across multiple databases is semantic heterogeneity across databases. For example, “William Nelson” in one database could be “Bill Nelson” or “B. Nelson” in another one. Design a data mining method that may consolidate such objects by exploring object linkages among multiple databases. Answer: In object reconciliation, the task is to predict whether two objects are, in fact, the same, based on their attributes and links. This task is common in information extraction, duplication elimination (deduplication), object consolidation, and citation matching, and is also known as record linkage or identity uncertainty. An approach based on relationships, which extends work by Chen, Kalashnikov, and Mehrotra [CKM05], is proposed here. In contrast to traditional domain-independent data cleaning techniques, this approach analyzes not only object features, but also additional semantic information for the purpose of object consolidation. This semantic information is in the form of inter-objects relationships. For instance, suppose that “William Nelson” refers to an author of a particular publication. This publication might has other authors, which can be linked to their affiliated organizations, and so on, forming a web of entities that are inter-connected via relationships. The knowledge of relationships can be exploited alongside attribute-based similarity, resulting in improved accuracy of object consolidation. Most of the traditional domain-independent data cleaning techniques belong to the class of feature-based similarity (FBS) methods. To determine if two objects/records are the same, FBS methods employ a similarity function that compares values of object/record attributes (features) for the purpose of deduplication. The values of the attributes of an object are typically derived from the object representation and the context in which it is used. However, this approach views the underlying database as an attributed relational graph (ARG), where nodes correspond to object representations and edges correspond to relationships. It first uses FBS to determine if two representations can refer to the same objects. If, based on the FBS, two representations may refer to the same object, then the relationships between those representations are analyzed to measure the connection strength between them. Graph partitioning techniques are then employed to consolidate the representations of objects based on the FBS similarity and connection strength. 9.14. Outline an effective method that may perform classification across multiple heterogeneous databases. Answer: The aim is to have a method that performs classification across multiple heterogeneous databases. One approach is to use data integration to overcome the heterogeneity problem. Although the integration of heterogeneous data sources is challenging, it is not required to completely resolve semantic heterogeneity before effective classification can be performed. For example, one may identify crucial information (or attributes) whose semantic heterogeneity could seriously affect the classification accuracy, and perform indepth processing to resolve such a heterogeneity problem first. Thus limited progress can be achieved using this approach to help effective classification. Another approach for such classification is to use regression to predict the usefulness of inter-database links that serve as bridges for information transfer. Like classification in multirelational databases, we have a target relation whose tuples are target tuples. The goal of database classification is to build an accurate classifier for predicting the class labels of target tuples. Transferring information across databases can be difficult; it is often expensive to transfer information between two databases that may be far from each other 110CHAPTER 9. GRAPH MINING, SOCIAL NETWORK ANALYSIS, AND MULTIRELATIONAL DATA MINING physically. Thus, we must be able to build accurate cross-database classifiers with as low inter-database communication cost as possible. Some links can lead to useful features, while others may be useless and only further burden the classification. The usefulness of a link is defined as the maximum information gain of any feature generated by propagating information through this link. In order to avoid transferring information between databases we can employ tuple ID propagation as it is used for multirelational classification in Yin et al. [YHYY04]. Chapter 10 Mining Object, Spatial, Multimedia, Text, and Web Data 10.7 Exercises 10.1. An object cube can be constructed by generalization of an object-oriented or object-relational database into relatively structured data before performing multidimensional analysis. Because a set of complex data objects or properties can be generalized in multiple directions and thus derive multiple generalized features, such generalization may lead to a high-dimensional, but rather sparse (generalized)“object cube.” Discuss how to perform effective online analytical processing in such an object cube. Answer: Materializing the high dimensions would be too expensive, even with an iceberg cube that prunes infrequent items. One solution is to compute shell fragments, or inverted indices on some dimensions as in Li, Han, and Gonzalez [LHG04]. A fragment for multiple dimensions in a set S can be created from smaller fragments of set A and S − A, where (A ⊂ S) by joining the keys in each table and setting the new value to the intersection of the tuple IDs. In the worse case, |f ragment(S)| = |f ragment(S − A)| ∗ |f ragment(A)|. The original inverted lists (one per dimension) can generate any possible combination of dimensions, allowing drilling and filtering on any dimension in constant time using the intermediate fragments. This also allows fast computation of count, sum, or other aggregate values across any dimension. In addition, popular dimension combinations and some 3-D combinations can be pre-materialized for quick response time. This method works if the cardinality of the attributes is not too high but is susceptible to high cardinality of the attributes. 10.2. A heterogeneous database system consists of multiple database systems that are defined independently, but that need to exchange and transform information among themselves and answer local and global queries. Discuss how to process a descriptive mining query in such a system using a generalization-based approach. Answer: Database relations often contain concept hierarchies for descriptive attributes and different ranges of values for numeric attributes. As in Han, Ng, Fu, and Dao [HNFD98], suppose that we are given the relation house(house id, address, construction date, living room(length, width), bed room(length, width) . . .). The generalization can be performed as follows. The attribute construction date can be transformed to construction year. The length and width for each room can be abstracted using the measure of square foot. Other useful generalizations include removing uninteresting attributes, converting continuous values to discrete ones, aggregation, approximation and other techniques described in Chapter 2. The generalization is 111 112 CHAPTER 10. MINING OBJECT, SPATIAL, MULTIMEDIA, TEXT, AND WEB DATA effective in reducing the gap between heterogeneous database relations due to different schema definitions. In other words, the generalization wraps the detailed differences and brings the comparison of heterogeneous data to the same level. As generalization can have multiple layers, the wrapper can be divided into several different levels. A query can be answered directly from the facts in relations, or intelligently by providing some generalized or comparative answers. The query may involve concepts of different layers. Relations with many attributes are likely to have a large combination of concepts levels. Materialization of all of them is not practical, therefore the query might need some forms of transformation in order to land on the right concept level and obtain the results efficiently. The right level must have a view of the attribute that is consistent with the query. For example, “greater Vancouver area” can be mapped to all of its composite regions. Each concept layer may contain summarized or statistical data to facilitate the queries requiring generalization. In practice, materialized concept layer represents the frequently used patterns. Finally, if the queries cannot be answered at the higher concepts levels, the concept generalizations can still provide a progressive query refinement, from general information browsing to specific data retrieval. Moreover, the generalization can speed up queries that require neighborhood comparisons of other associated information. 10.3. A plan database consists of a set of action sequences, such as legs of connecting flights, which can be generalized to find generalized sequence plans. Similarly, a structure database may consist of a set of structures, such as trees or graphs, which may also be generalized to find generalized structures. Outline a scalable method that may effectively preform such generalized structure mining. Answer: We first discuss how structures like trees or graphs can be generalized. A tree or graph may be directed, labeled, and connected. Possible generalizations with respect to these properties are as follows: (a) Generalize on directed edges to undirected edges; (b) Generalize the labeled structures to unlabeled structures so that only the topology of the tree or the graph counts; (c) Generalize the connectivity of the tree or graph to the minimum (or maximum) degree of the tree or graph, so that only density or sparsity is considered. There are, of course, more types of generalizations, some of which can be very computationally challenging. Our discussion is confined to the above forms of generalization. The first two forms of generalizations (i.e., on directed edges and labels) are already handled by many existing graph mining algorithms. In fact, the directed or the labeled graphs are special cases and can be integrated into the mining processing as constraints. We discuss the method to efficiently mine the third form generalization. Since a tree is a special graph, we only need to discuss algorithms that operate on graph structures. Suppose that the graphs are labeled (i.e., we only generalize on the connectivity). Mining connected labeled subgraphs is an important problem in biological data mining. For each graph G, we can always build a complimentary graph G0 , such that for every two node p, q, if p, q are connected (not connected) in G, then they are not connected (connected) in G0 . As the result, the minimum degree constraint of a subgraph in G is equivalent to the maximum degree constraint of a subgraph in G0 . We therefore discuss how to handle maximum degree constraints. Assume that we have a minimum degree as well as minimum support as thresholds. We can first preprocess the graph data by: (1) removing all nodes whose degree is less than the minimum degree; and (2) removing all nodes whose frequency is less than the minimum support. These two steps are performed until no further removal can be conducted. Take [YZH05] as an example of mining connected subgraphs by pattern-based enumeration. There are some application scenarios where the number of graphs is quite limited and each graph is considerably large. An alternative approach using support set-based enumeration can be used, which handles such cases. This method is similar to the row-based enumeration approach recently introduced in frequent pattern mining [PCT+ 03]. 10.7. EXERCISES 113 The algorithm starts from the empty data set. It adds new graph data to the working set in a depth-first manner. As soon as the number of candidate patterns supported by the current graph data set is zero, the algorithm stops including more graph data. When the current working set has only one graph, then this graph is a valid candidate pattern because the pre-processing procedure ensures that all of its nodes satisfy the minimum degree constraint. When there are two graph data in the working set, we call a recursive procedure top-down decomposition. The two graphs are compared and those nodes that are not shared by both graphs are removed. As the result, both graphs will be reduced and we can apply the minimum degree constraint to further remove nodes. This may cause the graphs to decompose into several smaller graphs, losing connectivity. We recursively invoke the top-down decomposition procedure on each pair of small graphs. Note that graphs that come from the same original graph do not need further computation. The above procedure can be easily extended to more than two graphs. It automatically outputs closed substructures. 10.4. Suppose that a city transportation department would like to perform data analysis on highway traffic for the planning of highway construction based on the city traffic data collected at different hours every day. (a) Design a spatial data warehouse that stores the highway traffic information so that people can easily see the average and peak time traffic flow by highway, by time of day, and by weekdays, and the traffic situation when a major accident occurs. Answer: A star schema for the highway traffic warehouse consists of four dimensions: region (highway), time, traffic, and accident, and three measures: region map (spatial), traffic flow, and count. A concept hierarchy for each dimension can be created by users or experts, or generated automatically by data clustering analysis. For example, a possible concept hierarchy for time is time < day < month < season. For region, we may have highway < part of city < city < district. A concept hierarchy for traffic is traffice < traffic range < traffic description, and for accident, accident ID < accident range < accident description. Of the three measures, traffic flow and count are numerical measures, which can be computed in the same manner as for nonspatial data cubes. (We can compute the average for them.) The region map measure is spatial and represents a collection of spatial pointers to the corresponding regions. Because different spatial operations result in different collections of spatial objects in a region map, it is a challenge to flexibly and dynamically compute the merges of a large number of regions. For example, two different roll-ups produce two different generalized region maps, each the result of merging a large number of small regions. With the highway traffic warehouse, people can easily see the average and peak time traffic flow by highway, by time of day, and by weekdays, and the traffic situation when a major accident occurs. (b) What information can we mine from such a spatial data warehouse to help city planners? Answer: Different kinds of useful information for city planners can be mined from this data warehouse. For example, by aggregating on region map, we can find which highways have high traffic flow. This can aid in decisions regarding where to build additional roads. We can also perform mining to learn what hours of the day the traffic is at its maximum, and which highways have the most accidents. Such information is useful for planning new highways or new regulations in a city. (c) This data warehouse contains both spatial and temporal data. Propose one mining technique that can efficiently mine interesting patterns from such a spatiotemporal data warehouse. Answer: Spatiotemporal trend analysis is an efficient technique for mining from such data warehouses. It deals with the detection of changes and trends by time along a spatial dimension. For example, it may 114 CHAPTER 10. MINING OBJECT, SPATIAL, MULTIMEDIA, TEXT, AND WEB DATA find a trend in traffic change of a highway (as in time series analysis). However, by computing the trend for different locations, we can find patterns such as “The maximum traffic during weekdays is downtown, but on weekends the maximum traffic is around shopping centers.” By considering both time and space, we can see the movement of high traffic in a city on specific days. With this method, we find the trend for both the time dimension and the space dimension and extract useful patterns, such as, for example, the maximum traffic moves from one location or highway to another at certain hours of the day. 10.5. Spatial association mining can be implemented in at least two days: (1) dynamic computation of spatial association relationships among different spatial objects, based on the mining query, and (2) precomputation of spatial distances between spatial objects, where the association mining is based on such precomputed results. Discuss (1) how to implement each approach efficiently and (2) which approach is preferable under what situation. Answer: (a) Dynamic computation of spatial association relationships among different spatial objects, based on the mining query: This is most useful when the association mining is user-centric and not all of the domain needs to be exploited. This is more suitable for scenarios that are more interactive and where the user has domain knowledge that can be specified in his queries, or where the user can specify objects of interest. (b) Precomputation of spatial distances between spatial objects, where the association mining is based on such precomputed results: This approach is most useful when we have background knowledge of the spatial domain, so that we can systematically explore the hierarchical structure of task-relevant geographic layers and deal with numerical nonspatial properties of spatial objects. Implementation: The first method was tackled by Koperski and Han using an AV (attribute-value) approach) [KH95]. The second method appears in Malerba and Lisi [ML01], which uses an inductive logic programming (ILP) method for spatial association rule mining. It can be considered the first-order logic counterpart of Koperski and Han’s method, inspired by work on mining association rules from multiple relations. The method benefits from the available background knowledge of the spatial domain, systematically explores the hierarchical structure of task-relevant geographic layers, and deals with numerical nonspatial properties of spatial objects. It was implemented in an ILP system called SPADA (Spatial Pattern Discovery Algorithm), which operates on a deductive database that is set up by an initial step of feature extraction from a spatial database. 10.6. Traffic situations are often auto-correlated: the congestion at one highway intersection may trigger the congestion in nearby highway segments after a short period of time. Suppose we are given highway traffic history data in Chicago, including road construction segment, traffic speed associated with highway segment, direction, time, and so on. Moreover, we are given weather conditions by weather bureau in Chicago. Design a data mining method to find high-quality spatiotemporal association rules that may guide us to predict what could be the expected traffic situation at a given highway location. Answer: We basically model the traffic history as a transactional database. For each time point of one location, we create a “transaction”, which contains the weather and traffic conditions, and the conditions of its neighboring locations after a short delay. After this transformation, the entire history is modeled as a database. We can apply standard association rule mining algorithms to find the spatiotemporal association rules, which will allow us to predict the expected traffic situation. 10.7. Similarity search in multimedia has been a major theme in developing multimedia data retrieval systems. However, many multimedia data mining methods are based on the analysis of isolated simple multimedia features, such as color, shape, description, keywords, and so on. 10.7. EXERCISES 115 (a) Can you show that an integration of similarity-based search with data mining may bring important progress in multimedia data mining? You may take any one mining task as an example, such as multidimensional analysis, classification, association, or clustering. Answer: Suppose that we take clustering as the example. The most important criteria in clustering is the similarity measure between objects to be clustered. The traditional features in multimedia clustering are isolated simple characteristics such as color, shape, description, keyword, and so on. The color and shape are very coarse at catching the real similarity between multimedia data (e.g., images), and the description and keywords are sometimes difficult to interpret. This is because these text data are input by humans and naturally contain noise, typos, and inconsistencies. Some of the description may not even relate to the images. There are several ways that similarity search may improve the clustering task. For example, we can combine the similarity distance and the basic feature distance and use the combined distance as the similarity measure in the clustering. (b) Outline an implementation technique that applies a similarity-based search method to enhance the quality of clustering in multimedia data. Answer: Generally, similarity search is very close to clustering, because both rely on similarity measures between multimedia objects. It really depends on what kind of features are used in clustering. If the clustering method already adopts the same distance criteria as in the similarity search, then there is no difference between them. Here, we assume that clustering uses the isolated simple features and similarity search uses a distance measure for high-dimensional data. In this scenario, we can use similarity search to improve the performance of clustering and vice versa. The principal problem is how to integrate these two measure criteria to obtain a better one. Here we consider one possible scenario where we have a description and keywords for each image data and need to find features for clustering. One option is to use each term in the description as a feature and employ a vector-space model to measure the distance between images. However, this approach does not provide a better interpretation of the features. Alternatively, we can use the similarity measure used in the search to build a neighborhood graph. We mine frequent patterns (terms or the combination of terms) from those description words. Furthermore, we check the support set of each pattern. If a pattern is supported by a set of images that form a dense subgraph in the neighborhood graph, it is potentially a good feature for clustering. Otherwise, it may not be as good and can be dropped. There are many ways to reduce the number of patterns. For example, techniques that use compressed patterns to shrink the number of patterns can be used. This helps control the number of features as well. 10.8. It is challenging but important to discover unusual events from video data in real time or in a very short time frame. An example is the detection of an explosion near a bus stop or a car collision at a highway junction. Outline a video data mining method that can be used for this purpose. Answer: It is unrealistic to treat a video clip as a long sequence of individual still pictures and analyze each picture. This would result in too many pictures, and most adjacent images could be rather similar. In order to capture outliers from video data, it is better to first treat each video clip as a collection of actions and events in time and temporarily segment them into video shots. A shot is a group of frames or pictures, where the video content from one frame to adjacent ones does not change abruptly. Moreover, the most representative frame in a video shot is considered the key frame of the shot. Each key frame can be analyzed using the image feature extraction and analysis methods studied in the content-based image retrieval. A process can then sample the video data very quickly and analyze the static images sampled in a real-time 116 CHAPTER 10. MINING OBJECT, SPATIAL, MULTIMEDIA, TEXT, AND WEB DATA fashion. The process compares the features of the key frame with the current static image to see if there is a major difference. If so, it sounds an alarm that there is an unusual event happening and saves the current video clip for further analysis and processing. 10.9. Precision and recall are two essential quality measures of an information retrieval system. (a) Explain why it is the usual practice to trade one measure for the other. Explain why the F-score is a good measure for this purpose. Answer: Precision is an evaluation measure that represents the percentage of documents returned by the information retrieval (IR) system that are actually relevant. It indicates the quality of the results. Recall represents the percentage of relevant documents that were captured by the IR system. It indicates the coverage of the system. Based on these measures, we can build a system that, given an IR query, can retrieve many documents with probably a large number of false positives (irrelevant ones); or we can tune the system to return only relevant documents but that misses out on others that are also relevant (that is, there may be many false negatives). The two measures naturally tune the system in opposite directions (i.e., quality versus coverage). However, we want to build a system that has reasonable quality as well as good coverage. The F-score acts as a compromise even though it ignores that one might be more important than the other. It is a good measure because it is the harmonic mean of the two competing measures, that is, 2 ∗ recall ∗ precision/(recall + precision). (b) Illustrate the methods that may effectively improve the F-score in an information retrieval system. Answer: One method, which we consider cheating, would be to tweak the sensitivity of the system to maximize the value of F-score = 2 ∗ T P/(2 ∗ T P + F P + F N ), where T /F = true/false and P/N = positive/negative. This depends on what the system’s precision-versus-accuracy curve looks like. Another method is to incorporate user feedback for the mining results into the ranking process. This can be something as simple as using window-like weights. A third approach is to use two orthogonal methods of determining if a result is valid. This is especially useful if one method has high recall and the other has high precision, because we can apply the high-recall method first, and then apply the high-precision method. An example would be finding similar sites on the Web by first using link structure and then the content. 10.10. TF-IDF has been used as an effective measure in document classification. (a) Given one example to show that TF-IDF may not be always a good measure in document classification. Answer: TF-IDF assigns large weight to rare words and such rare words may lead to ineffective classification. For example, suppose that there are two terms, t1 and t2 , in two classes, C1 and C2 , each having 100 training documents. Term t1 occurs in five documents in each class (i.e., 5% of the overall corpus), but t2 occurs in 20 documents in class C1 only (i.e., 10% of the overall corpus). Term t1 will have a higher TF-IDF value because it is rarer, but it is obvious that t2 has stronger discriminative power in this case. (b) Define another measure that may overcome this difficulty. Answer: A feature selection process can be used to remove terms in the training documents that are statistically uncorrelated with the class labels. This will reduce the set of terms to be used in classification, thus improving both efficiency and accuracy. 10.7. EXERCISES 117 10.11. An e-mail database is a database that stores a large number of electronic mail (e-mail) messages. It can be viewed as a semistructured database consisting mainly of text data. Discuss the following. (a) How can such an e-mail database be structured so as to facilitate multidimensional search, such as by sender, by receiver, by subject, and by time? Answer: If we consider the metadata of an e-mail, most attributes of an e-mail can be structured as data attributes in a relational database, with an added attribute for its unstructured content. The structured attributes can include: sender, receiver, time, subject, thread ID, etc. We can thus divide an e-mail into a structured part and an unstructured part. We then store the structured part in a data warehouse and the (unstructured) contents in a text or XML database, or a text index. Each transaction in the structured data warehouse also stores a link (either an URL or an ID in the text database) to the contents. In this way, we can support multidimensional OLTP and OLAP in this structured data warehouse by traditional database operations and data cubing. When the relevant records are returned, we just follow the links to obtain the contents from the database/index that stores the full text. (b) What can be mined from such an e-mail database? Answer: There are plenty of interesting things to mine from e-mail databases. Examples include the following. • • • • • • • Computing behavior profiles or models of user e-mail accounts. Automated summarization of e-mail archives. Detecting e-mail security violations. Detecting groups of users who frequently pairwise exchange messages. Searching for User Clique, the set of accounts a particular user typically e-mails as a group. Mining frequent patterns in e-mail spam. Clustering e-mails to detect threads. (c) Suppose you have roughly classified a set of your previous e-mail messages as junk, unimportant, normal, or important. Describe how a data mining system may take this as the training set to automatically classify new e-mail messages or unclassified ones. Answer: This can be regarded as a text classification problem or semi-supervised learning problem. We analyze both cases. In the first case, the data mining system will extract features from the labeled e-mail messages and train a classifier using the features. The features can contain not only content features (e.g., key words, part of speech tags, etc.) and textual patterns (e.g., frequent sequential patterns, phrases), but also features from other attributes, such as authors, topics, thread IDs, and timestamps. A classifier (e.g., support vector machine, decision tree, neural network) can then be trained on these features. The resulting classifier can be used to classify previously unseen e-mail messages. In the other case, we assume that we have only a relatively small set of labeled e-mail messages. A semi-supervised learning method (Section 7.10.3) is used to label either the unlabeled or new email messages. One way is to design a generative model (mixture model) and use the EM algorithm to estimate model parameters using the same constraints as for the labeled e-mail messages. The estimated model can be used to further provide labels for previously unseen e-mail messages. Another strategy is to build a connective network representation of the e-mail, and propagate the class labels from the small set of training data to the majority of unlabeled e-mail. 10.12. Junk e-mail is one of the most annoying things in Web-based business or personal communications. Design an effective scheme (which may consist of a set of methods) that can be used to filter out junk e-mail effectively and discuss how such methods should be evolved along with time. 118 CHAPTER 10. MINING OBJECT, SPATIAL, MULTIMEDIA, TEXT, AND WEB DATA Answer: Spam e-mail farms attempt to aggressively flood users with useless e-mail. There are two major challenges regarding this problem. First, the source addresses of these farms are usually very volatile, making it almost impossible to tell a junk e-mail only by its source address. Second, due to the extremely large scale of the Web, an effective method must be able to filter out junk e-mail very efficiently. From a Web-server level, e-mail spam farms often form very dense subgraphs: they send e-mail to a large number of Web servers and users. Thus, it is important to first discover such subgraphs on the Web. In response to the demand of high efficiency, we could use the shingling method from information retrieval to extract the features of Web-link graphs and then perform recursive clustering on them [BDGM95]. Shingling takes a set of contiguous terms or “shingles” of documents and compares the number of matching shingles. It is a simple yet effective feature extraction method that is based on similarity search using the Jaccard coefficient (Section 7.2.2) and min-wise independent permutation. The resulting recursive clustering algorithm can largely shrink the size of Web links and efficiently discover the very dense subgraphs among billions of links. Once these spam farms are discovered, proper actions should be taken to forbid them in order to control the source of junk e-mail. The pattern growth of spam e-mail farms is more variable than the growth of individual websites, supporting the intuition that growth in the graph is likely to be focused on particular spam sources. Thus, the method itself should keep dynamically updating the very dense subgraphs and detect spam farms. In addition, from the user level, we could incorporate user guidance into the automatic junk e-mail detection process, that is, where users can report unwanted junk e-mail they have received. With a number of junk e-mail examples at hand, we can do the following. A classifier can be built using particular text mining techniques. When an e-mail server receives a suspicious e-mail message from an unknown or unusual source, it compares the content of the received message with the e-mail in the training set and determines if their similarity is above a certain threshold. If so, the received e-mail message can be safely removed or a warning message may be sent to the user. 10.13. It is difficult to construct a global data warehouse for the World Wide Web due to its dynamic nature and the huge amounts of data stored in it. However, it is still interesting and useful to construct data warehouses for summarized, localized, multidimensional information on the Internet. Suppose that an Internet information service company would like to set up an Internet-based data warehouse to help tourists choose local hotels and restaurants. (a) Can you design a Web-based tourist data warehouse that would facilitate such a service? Answer: The star schema can be defined as follows: (1) The fact table will contain keys to the dimension tables that include Hotels, Restaurants, Flights, etc. In the global mediated schema, each table that we need based on the functionalities that we require serves as a dimension table. (2) The fact table also includes measures of interest such as units reserved, etc. (b) Suppose each hotel and/or restaurant contains a Web page of its own. Discuss how to locate such Web pages and what methods should be used to extract information from these Web pages in order to populate your Web-based tourist data warehouse. Answer: In order to offer such a service, after designing our OLAP schema, we need to import the data from the local databases of different broker websites to our data warehouse. However, since we don’t have access to their underlying databases, we need to extract the data that we need from their Web-based query interfaces. Let’s take restaurants as an example. We need a module that uses Web search engines to locate restaurants. For example, a two step method can be used, which first performs a Web-based keyword search to locate Web pages that are related to restaurants in, say, Chicago. The second step calls a filter module to analyze the page layouts and classifies those that are Web-query interfaces, and then extracts metadata required for our data warehouse. 10.7. EXERCISES 119 We then need a module for data extraction. For this we first need to learn the query interface of the website. To do so, we can run a learning algorithm to learn the grammar of the query language of the underlying data source. We then use that query interface to run different queries and extract the data from the template result pages. This can be based on any information extraction method. (The simplest ones are rule-based, while more sophisticated ones exploit machine learning techniques). Next, we reconsolidate the different schemas of the different restaurant websites to the mediated schema and populate the data into them. In addition, we need a data cleaning step to remove duplicates and resolve data level heterogeneity issues. (c) Discuss how to implement a mining method that may provide additional associated information, such as “90% of customers who stay at the Downtown Hilton dine at the Emperor Garden Restaurant at least twice,” each time a search returns a new Web page. Answer: Now that we have a data warehouse of different services, such as Restaurant, Hotel, etc., we can track the customers’ data as well. We can run association rule mining that would include relations and attributes that are not present in single services. For example, we may run an association mining algorithm on a dataset that covers Users, Restaurants and Hotels and find associations such as “x% of customers who stay at hotel A dine at the Restaurant B at least twice”. It is not possible to mine such associations from single brokers that have only restaurant Web pages or hotel reservation services. 10.14. Each scientific or engineering discipline has its own subject index classification standard that is often used for classifying documents in its discipline. (a) Design a Web document classification method that can take such a subject index to classify a set of Web documents automatically. Answer: A subject index can provide good guidance in automatic classification. The first step is to build the taxonomy using the index and the keywords associated with the index. Next, the corresponding documents of the index can serve as training and test sets for automatic classification. Under this scheme, a new Web document is assigned to a category having the same taxonomy. We can use the words associated or extended by these subject indices as feature words. The support and confidence measures are used to evaluate the category of the document. The two thresholds can be set by using the training examples, or learned and adjusted gradually as documents accumulate. (b) Discuss how to use Web linkage information to improve the quality of such classification. Answer: Hyperlinks can be employed to detect clues regarding the semantics of Web pages. Such clues can be further matched to the taxonomy of different categories. A critical issue in using linkage information is to filter out noise associated with advertisement linkage and other junk links. There are two ways to address this issue. First, block-based linkage analysis can reduce the noise. Another way explored by many researchers is to use a statistical model to filter out the junk links. The statistical measure used may be entropy-based, because links such as weather.com are not biased and will not increase the information gain for a particular document. Experiments also show that Markov random fields with relaxation labeling also work well in improving classification accuracy. (c) Discuss how to use Web usage information to improve the quality of such classification. Answer: Taxonomy is expanded gradually and new buzz words emerge from time to time. Web usage information, such as user-entered keywords, can be used to expand the taxonomy, providing a knowledge base and inference for Web document classification. Web usage information can be in the form of user 120 CHAPTER 10. MINING OBJECT, SPATIAL, MULTIMEDIA, TEXT, AND WEB DATA interactions, from which incremental classification can be performed to enhance classification accuracy. The usage information may also be represented as a Weblog, which can be mined for frequent keywords and mouse-click patterns. Classification rules can be further generated from the knowledge mined. 10.15. It is interesting to cluster a large set of Web pages based on their similarity. (a) Discuss what should be the similarity measure in such cluster analysis. Answer: The complexity of Web pages is far greater than that of any traditional text document collection. Web pages lack a unifying structure and contain far more authoring styles and content variations than traditional text-based documents. The Web also contains a rich and dynamic collection of hyperlink information. When measuring the similarity between Web pages, the content as well as the link structure should be considered. For example, the task of identifying Web communities predicts whether a collection of Web pages focuses on a particular theme or topic, based on their attributes and their link structure. Therefore, the similarity measure should combine both the content similarity (e.g., cosine similarity, KL-divergence) and link structure similarity (e.g., inlink/outlink structures, cocitations). (b) Discuss how the block-level analysis may influence the clustering results and how to develop an efficient algorithm based on this philosophy. Answer: It is human perception that people always view a Web page as different semantic objects rather than as a single object. When a Web page is presented to the user, the spatial and visual cues can help the user subconsciously divide the page into several semantic parts. These can be used to automatically segment the Web pages. Therefore, block-level analysis of the Web page content structure may influence the clustering results. The VIsion-based Page Segmentation (VIPS) algorithm by Cai, He, Wen, and Ma [CHWM04] is an attempt to improve clustering by using block-level analysis. VIPS aims to extract the semantic structure of a Web page based on its visual presentation. Such a semantic structure is a tree structure, where each node in the tree corresponds to a block. Each node is assigned a value (i.e., a degree of coherence) that indicates how coherent the content in the block is based on visual perception. The VIPS algorithm makes full use of page layout features. It first extracts all of the suitable blocks from the HTML DOM tree, and then finds separators between these blocks. Here, separators denote the horizontal or vertical lines in a Web page that visually cross with no blocks. Based on these separators, the semantic tree of the Web page is constructed. A Web page can be represented as a set of blocks (leaf nodes of the semantic tree). Compared with DOM-based methods, the segments obtained by VIPS are more semantically aggregated. Noisy information, such as navigation, advertisement, and decoration, can be easily removed because these elements are often placed in certain positions on a page. Contents with different topics are distinguished as separate blocks. By using the VIPS algorithm, we can extract page-to-block and block-to-page relationships and then construct a page graph and a block graph. Based on this graph model, new link analysis algorithms are capable of discovering the intrinsic semantic structure of the Web. These new algorithms can improve the performance of the search for Web context. (c) Since different users may like to cluster a set of Web pages differently, discuss how a user may interact with a system to influence the final clustering results, and how such a mechanism can be developed systematically. Answer: Consider the following interactive clustering schema of Web pages. Given a set of Web pages, a user may want to cluster them according to his or her own beliefs or intuition. We consider three typical types of interactions that a user can provide to the system: 10.7. EXERCISES 121 (1) Prior knowlege of clusters: The user has some prior hunches or strategies for defining the clusters. For example, he or she may begin by creating clusters with documents that have already been labeled with classes. (2) Constraints: The user specifies constraints regarding which pages must be assigned to the same cluster, and which pages must be kept separate. (3) Attributes of interest: The user specifies interesting attributes of a Web page as features to be clustered. These three behaviors are by no means the only possible interactions, but we use them as examples for interactive Web-page clustering. We now study how clustering can be approached for each of the above forms of interaction. For case (1), we typically formalize the problem into clustering with prior knowledge, or a semi-supervised problem. Model-based clustering methods, such as the EM algorithm, can be used. Each time the user provides prior knowledge regarding clusters, such information is considered as a prior for the statistic models used in clustering. Case (2) can be formalized as either a constraint-based clustering problem (as in Tung, Ng, Lakshmanan, and Han [TNLH00]), or a semi-supervised learning problem (as in Basu, Bilenko, and Mooney [BBM04]). For case (3), it is easy to change the similarity measure according to the attributes that the user selects. More formally, the cross-relational clustering methods as described in Yin, Han, and Yu [YHY05] can be applied to find a solution. 10.16. Weblog records provide rich Web usage information for data mining. (a) Mining Weblog access sequences may help prefetch certain Web pages into a Web server buffer, such as those pages that are likely to be requested in the next several clicks. Design an efficient implementation method that may help mining such access sequences. Answer: Raw Weblog data need to be cleaned, condensed, and transformed in order to retrieve and analyze significant and useful information. A Weblog entry includes the URL requested, the IP address from which the request originated, and a timestamp. Based on the timestamp, for each IP address we consider the set of URLs requested (sorted by time of access) as a sequence. This sequence gives us the information of what page is requested after which pages. We can use any of the sequential pattern mining techniques (e.g., GSP, SPADE, or Prefix-Span) to mine all of the frequent sequences of URLs retrieved sequentially by an individual. Whenever an URL, “A”, is requested by a user, we look in our frequent pattern database and retrieve all of the frequent patterns that start with “A”. We then fetch the k next URLs in those frequent patterns because we know that it is likely that the user may request those pages as well (since they are frequent). (b) Mining Weblog access records can help cluster users into separate groups to facilitate customized marketing. Discuss how to develop an efficient implementation method that may help user clustering. Answer: From the raw Weblog data, we retrieve the list of URLs that a user visits frequently (i.e., above some threshold in a year) for each user (IP address). From the URLs, we can roll up based on concept hierarchies. For example, for the URL of a specific news Web page, we generalize to “NEWS”; if the URL corresponds to stock market data, we generalize to “STOCK MARKET”. We treat all of these generalized URLs as features for the clustering of users. Two users are considered similar (and therefore in same cluster) if they frequently visit the same topics on the Web. Any clustering method (e.g., k-means, etc.) can be used on these features. We can make marketing decisions based on the resulting clusters. For example, for people who are in the same cluster because they frequently check the stock market, we can submit stock information, and so on. 122 CHAPTER 10. MINING OBJECT, SPATIAL, MULTIMEDIA, TEXT, AND WEB DATA Chapter 11 Applications and Trends in Data Mining 11.7 Exercises 11.1. Research and describe an application of data mining that was not presented in this chapter. Discuss how different forms of data mining can be used in the application. Answer: Many application areas are not covered in this chapter. Thus, the student can select any that he or she believes is fresh and interesting. For example, one can consider an Earth observation system that watches the changes of Earth surfaces and climates. Obviously, this belongs to the domain of very long-term spatiotemporal data mining, and many new techniques need to be developed to effectively mine such data sets. 11.2. Suppose that you are in the market to purchase a data mining system. (a) Regarding the coupling of a data mining system with a database and/or data warehouse system, what are the differences between no coupling, loose coupling, semi-tight coupling, and tight coupling? Answer: Systems that do not work with database or data warehouse systems at all are no coupling systems. They have difficulty handling large data sets and utilizing the data stored in database systems. In loosely coupled systems, the data are retrieved into a buffer or main memory by database or warehouse system operations, and mining functions can then be applied to analyze the retrieved data. These systems tend to have poor scalability and are inefficient when executing some data mining queries because their database or data warehouse operations are not designed for efficient data mining. Semi-tight coupling systems are those data mining systems that provide efficient implementation of only a few essential data mining primitives, which may improve the performance of such operations but may not be efficient for other data mining operations. Moreover, they do not consider mining queries to be complex and optimizable, ignoring the opportunities of overall mining query optimization. Tightly coupling systems are those systems for which data mining and data retrieval processes are integrated by optimizing data mining queries deep into the iterative mining and retrieval process. (b) What is the difference between row scalability and column scalability? Answer: 123 124 CHAPTER 11. APPLICATIONS AND TRENDS IN DATA MINING A data mining system is row scalable if, when the number of rows is enlarged 10 times, it takes no more than 10 times to execute the same data mining queries. A data mining system is column scalable if the mining query execution time increases approximately linearly with the number of columns (i.e., attributes or dimensions). (c) Which feature(s) from those listed above would you look for when selecting a data mining system? Answer: According to the above lists, one may prefer to select a tightly coupled data mining system that is both row- and column- scalable. If a data mining system is tightly coupled with a database system, the data mining and data retrieval processes will be better integrated in the sense that it can optimize data mining queries deep into the iterative mining and retrieval processes. Also, data mining and OLAP operations can be integrated to provide OLAP-mining features. However, as much of the technical infrastructure needed in a tightly coupled system is still evolving, implementation of such a system is non-trivial. Instead, semi-tight coupling systems are more available and provide a compromise between loose and tight coupling. Furthermore, due to the curse of dimensionality, it is much more challenging to make a system column scalable than row scalable. An efficient data mining system should be scalable on both rows and columns. 11.3. Study an existing commercial data mining system. Outline the major features of such a system from a multiple dimensional point of view, including data types handled, architecture of the system, data sources, data mining functions, data mining methodologies, coupling with database or data warehouse systems, scalability, visualization tools, and graphical user interfaces. Can you propose one improvement to such a system and outline how to realize it? Answer: There are many data mining systems, such as Microsoft SQL Server 2005, IBM IntelligentMiner, Purple Insight MineSet (originally from SGI), Oracle Data Mining, SPSS Clementine, SAS Enterprise Miner, and Insightful Miner. Here is a short summary of Microsoft SQLServer 2005. SQLServer 2005 is an multifunction data mining system, developed for integrative mining of multiple kinds of knowledge in large relational databases and data warehouses. The major distinguishing feature of the SQLServer 2005 system is its tight integration of the data mining subsystem with the relational database and data warehouse subsystems, and its natural integration with multiple Microsoft tools, such as Excel, Web publishing, etc. It provides multiple data mining functions, including association, classification, prediction, clustering, and time-series analysis. This integration leads to a promising data mining methodology that integrates multidimensional online processing and data mining, where the system provides a multidimensional view of its data and creates an interactive data mining environment. The system facilitates query-based interactive mining of multidimensional databases by implementing a set of advanced data mining techniques. SQLServer 2005 integrates smoothly with relational database and data warehouse systems to provide a user-friendly, interactive data mining environment with high performance. 11.4. [Research project] Relational database query languages, like SQL, have played an essential role in the development of relational database systems. Similarly, a data mining query language may provide great flexibility for users to interact with a data mining system and pose various kinds of data mining queries and constraints. It is expected that different data mining query languages may be designed for mining different types of data (such as relational, text, spatiotemporal, and multimedia data) and for different kinds of applications (such as financial data analysis, biological data analysis, and social network analysis). Select an application. Based on your application requirements and the types of data to be handled, design such a data mining language and study its implementation and optimization issues. Answer: This is a good research topic with no definite answer, especially considering that the length of the answer could be as long as a thesis. 11.7. EXERCISES 125 11.5. Why is the establishment of theoretical foundations important for data mining? Name and describe the main theoretical foundations that have been proposed for data mining. Comment on how they each satisfy (or fail to satisfy) the requirements of an ideal theoretical framework for data mining. Answer: In general, the establishment of theoretical foundations is important for data mining because it can help provide a coherent framework for the development, evaluation, and practice of data mining technology. The following are theories for the basis for data mining. • Data reduction: The basis of data mining is to reduce the data representation. Data reduction trades accuracy for speed in response to the need to obtain quick approximate answers to queries on very large databases. • Data compression: According to this theory, the basis of data mining is to compress the given data by encoding in terms of bits, association rules, decision trees, clusters, and so on. Encoding may be based on the minimum description length principle. • Pattern discovery: In this theory, the basis of data mining is to discover patterns occurring in the database, such as association, classification models, sequential patterns, etc. • Probability theory: This is based on statistical theory. The basis of data mining is to discover joint probability distributions of random variables. • Microeconomic view: This theory considers data mining as the task of finding patterns that are interesting only to the extent that they can be used in the decision-making process of some enterprise. Enterprises are considered as facing optimization problems where the object is to maximize the utility or value of a decision. In this theory, data mining becomes a nonlinear optimization problem. • Inductive databases: According to this theory, a database schema consists of data and patterns that are stored in the database. Data mining is the problem of performing induction on databases, where the task is to query the data and the theory of the database. 11.6. [Research project] Building a theory for data mining is to set up a theoretical framework so that the major data mining functions can be explained under this framework. Take one theory as an example (e.g., data compression theory) and examine how the major data mining functions can fit into this framework. If some functions cannot fit well in the current theoretical framework, can you propose a way to extend the framework so that it can explain these functions? Answer: This is a large research project. We do not have good answers. A good answer to such a question should be a research thesis. 11.7. There is a strong linkage between statistical data analysis and data mining. Some people think of data mining as automated and scalable methods for statistical data analysis. Do you agree or disagree with this perception? Present one statistical analysis method that can be automated and/or scaled up nicely by integration with the current data mining methodology. Answer: The perception of data mining as automated and scalable methods for statistical data analysis is interesting and true in many cases. For example, association mining is essentially the computation of conditional probability, but it is done in an efficient and scalable way to handle very large data sets. Many clustering and classification algorithms have some roots in statistical analysis, but have been reworked in a scalable algorithmic way. However, there are data mining methods that do not have statistical counterparts. For example, many frequent pattern analysis problems, such as sequential patterns, frequent substructures, 126 CHAPTER 11. APPLICATIONS AND TRENDS IN DATA MINING etc., do not have obvious counterparts in statistical analysis. There are also many sophisticated statistical analysis methods that have not been studied in data mining research. 11.8. What are the differences between visual data mining and data visualization? Data visualization may suffer from the data abundance problem. For example, it is not easy to visually discover interesting properties of network connections if a social network is huge, with complex and dense connections. Propose a data mining method that may help people see through the network topology to the interesting features of the social network. Answer: Data visualization is the presentation of data in a visual way so that the contents can be easily comprehended by human users. Pattern or knowledge visualization presents patterns and knowledge in a visual way so that one can easily understand the regularities, patterns, outliers, and other forms of knowledge stored in or discovered from large data sets. Visual data mining is the process of data mining that presents data and patterns in a visually appealing and interactive way so that a user can easily participate in the data mining process. It is true that data visualization may suffer from the data abundance problem. Patterns can suffer from the pattern abundance problems as well. In this case, users should be given primitives that allow them to easily extract a portion or portions of data using constraints. This focuses the data, and the domain viewed is smaller. Another way is to provide a multiresolution capability so that at certain levels, only the data and patterns that are visible in the current resolution scale will be shown. A third approach is to select only frequent or higher-weighted nodes and labels in demonstration so that complex connections can be simplified. 11.9. Propose a few implementation methods for audio data mining. Can we integrate audio and visual data mining to bring fun and power to data mining? Is it possible to develop some video data mining methods? State some scenarios and your solutions to make such integrated audiovisual mining effective. Answer: One approach for audio data mining is to transform data to sound or music. When we receive the patterns, trends, structures and irregularity relationships from data mining, we need to transform these data features into different pitches, rhythms, tunes, and melody in order to identify anything interesting or unusual. One technique is to establish mapping relations between color and music using a universal music and color understanding and mapping method [NF00]. It is also possible to develop video data mining or other methods that integrate sound and image. The major task involved is the integration of audio and visual data mining in order to bring power to data mining. This requires combining visualization tools with the transformation of data patterns to sound, images, and videos, which also involves further development of methods for storing, accessing and demonstrating data efficiently in a multidimensional way. This is still a large and unexplored research domain. 11.10. General-purpose computers and domain-independent relational database systems have become a large market in the last several decades. However, many people feel that generic data mining systems will not prevail in the data mining market. What do you think? For data mining, should we focus our efforts on developing domain-independent data mining tools or on developing domain-specific data mining solutions? Present your reasoning. Answer: For data mining, there are general principles and algorithms that many data mining applications can use. There are also specific algorithms that are aimed at solving particular practical problems, such as searching biological sequence patterns. Even for general principles, more specific developments are often necessary due to different data characteristics and the different pattern types to be mined. Thus, there should be two 11.7. EXERCISES 127 tracks in both research and development. One is to develop domain-independent data mining methods and systems, whereas the other is to develop domain-specific data mining solutions. Both tracks are expected to have good applications. Due to the diversity of data and mining requests, many domain-dependent data mining systems will likely be generated in the future. However, many functions of such systems may share some core principles and methods. 11.11. What is a collaborative recommender system? In what ways does it differ from a customer- or productbased clustering system? How does it differ from a typical classification or predictive modeling system? Outline one method of collaborative filtering. Discuss why it works and what its limitations are in practice. Answer: A collaborative recommender system is a system that makes automatic predictions (recommendations, or filtering) about the interests of a user by collecting taste information from many users (collaborating), thus its method is popularly referred to as collaborative filtering (CF). Its underlying assumption is that those who agreed in the past tend to agree again in the future. For example, a collaborative filtering or recommendation system for music tastes makes predictions about which music a user likes given a partial list of that user’s tastes (likes or dislikes). Note that these predictions are specific to the user, but use information gleaned from many users. This differs from the more simple approach of giving an average (non-specific) score for each item of interest, for example, based on its number of votes. Collaborative filtering systems can be based on customers (users) or products (items). A item-item-based system categorizes items based on item-item correlation, whereas a customer-item-based system performs prediction on items based on the similarity between customers. Both methods may explore data analysis and mining techniques, such as clustering, classification, and association. However, they differ from such techniques in that they use them to solve the collaborative recommendation problems. Here we outline a method that unifies user-based and item-based collaborative filtering approaches by similarity fusion [WdVR06] as follows. Memory-based methods for collaborative filtering predict new ratings by averaging (weighted) ratings between, respectively, pairs of similar users or items. In practice, a large number of user or item ratings are not available, due to the sparsity inherent to rating data. Consequently, prediction quality can be poor. This method re-formulates the memory-based collaborative filtering problem in a generative probabilistic framework, treating individual user-item ratings as predictors of missing ratings. The final rating is estimated by fusing predictions from three sources: predictions based on ratings of the same item by other users, predictions based on different item ratings made by the same user, and, third, ratings predicted based on data from other but similar users rating other but similar items. Existing user-based and item-based approaches correspond to the two simple cases of this new framework. The complete model is however more robust to data sparsity, because the different types of ratings are used in concert, while additional ratings from similar users towards similar items are employed as a background model to smooth the predictions. Experiments demonstrate that the proposed methods are indeed more robust against data sparsity and give better recommendations. 11.12. Suppose that your local bank has a data mining system. The bank has been studying your debit card usage patterns. Noticing that you make many transactions at home renovation stores, the bank decides to contact you, offering information regarding their special loans for home improvements. (a) Discuss how this may conflict with your right to privacy. Answer: This may conflict with one’s privacy to a certain extent. Suppose you had installed a new security system in your house but do not want this to be known by others. If the bank were to contact you regarding offers of special loans for the purchase of additional security systems, this could be seen as an infringement on personal privacy. Another example is if you had bought a safe to store your own 128 CHAPTER 11. APPLICATIONS AND TRENDS IN DATA MINING collection of treasures. This infringement from the bank may invoke danger if this information falls into the hands of potential thieves. (b) Describe another situation where you feel that data mining can infringe on your privacy. Answer: Another example involves one’s Supermarket Club Card. Having access to your card, Supermarket has the potential, without your knowledge, to study your shopping patterns based on your transactions made with the Club Card. What kind of drugs you purchased during specific periods of time is personal information that you may not wish to be used or sold. (c) Describe a privacy-preserving data mining method that may allow the bank to perform customer pattern analysis without infringing on customers’ right to privacy. Answer: Since the primary task in data mining is to develop models about aggregated data, we can develop accurate models without accessing precise information in individual data records. For example, when building a decision-tree classifier, we can use training data in which the values of individual records have been perturbed (i.e., data obscuration. The resulting data records look very different from the original records and the distribution of data values is also very different from the original distribution. The original distribution of a collection of distorted data values can be approximated using a reconstruction algorithm. While it is not possible to accurately estimate original values in individual data records, Agrawal and Srikant [AS00] proposed a novel reconstruction procedure to accurately estimate the distribution of original data values. We can then build a classifier using the approximated values, thereby protecting the privacy of individuals. By using these reconstructed distributions, the resulting classifier will be the same as or very similar to that built with the original data. (d) What are some examples where data mining could be used to help society? Can you think of ways it could be used that may be detrimental to society? Answer: One example where data mining can help society is through the provision of useful knowledge in the retail industry. It can help identify customer buying behaviors, discover customer shopping patterns and trends, improve the quality of customer service, achieve better customer retention and satisfaction, design more effective goods transportation and distribution policies, and reduce the cost of business. Another example where people can use data mining knowledge is to predict genetic diseases. Using correlation analysis, one can identify co-occurring gene sequences and help predict various diseases. Alternatively, the results of data mining may be used in ways that could be considered detrimental to society. For example, suppose that the data mining of medical records found that most elderly patients who receive hip replacement surgery do not survive for more than two years. Some medical insurance companies may refuse to pay for such surgery, knowing that it may not be successful for most cases. This could be seen as discrimination towards those for whom the operation may actually be successful, or even as discrimination towards the elderly. Similarly, insurance companies may use findings from data mining to determine who can have life-saving surgery, instead of giving all candidates a fair chance. 11.13. What are the major challenges faced in bringing data mining research to market? Illustrate one data mining research issue that, in your view, may have a strong impact on the market and on society. Discuss how to approach such a research issue. Answer: Due to the high demand for transforming huge amounts of data found in databases and other information repositories into useful knowledge, it is likely that data mining will become a thriving market. There are, however, several bottlenecks remaining for data mining research and development. These include: 11.7. EXERCISES 129 • The handling of increasingly complex data: Such data include unstructured data from hypertext, documents, spatial and multimedia data, as well as from legacy databases, active databases, and the Internet. • Visualization and data mining: The visualization of database contents would help users comprehend mining results and redirect miners in the search for promising patterns. This requires the development of easy-to-use and “easy-to-see” tools. • The integration of mined knowledge into a knowledge-base, an expert system, a decision support system, or even a query optimizer. • Market or domain-specific in-depth data mining with the goal of providing business-specific data mining solutions. • Invisible data mining, where systems make implicit use of built-in data mining functions. Many may believe that the current approach to data mining has not yet won a large share of the market for system applications owing to the fact that the importance and usefulness of this kind of knowledge has not completely been made aware to the public and the market. Currently, not every university offers undergraduate courses on this topic in computing science departments. Offering more courses on data mining may be a good start. Furthermore, success stories regarding the use of data mining could be featured more prominently in the media. 11.14. Based on your view, what is the most challenging research problem in data mining? If you were given a number of years of time and a good number of researchers and implementors, can you work out a plan so that progress can be made toward a solution to such a problem? How? Answer: Data mining for bioinformatics, text mining, Web and multimedia data mining, and mining spatiotemporal databases are several interesting research frontiers. For example, bioinformatics poses many interesting and challenging problems, including analysis of gene and protein sequences, analysis of biological networks, etc. Mining biological data needs to handle noise and inaccuracy in data and patterns, moreover, the patterns found are usually large and complex. Mining such data sets may take years of research before notable progress can be achieved, resulting in valuable applications. 11.15. Based on your study, suggest a possible new frontier in data mining that was not mentioned in this chapter. Answer: One frontier in data mining is to mine compressed but valuable patterns. Consider frequent pattern mining, which can generate huge sets of patterns. Although frequent patterns have been shown to be useful for classification, not every frequent pattern is equally useful. Using too many patterns will slow down the learning process and lead to overfitting. Thus, an important research problem is how to find a much smaller but better quality set of frequents patterns that can be used for tasks like classification or clustering. Our lab is investigating the use of a feature selection method that can single out a set of frequent, discriminative, and nonredundant patterns in comparison to the use of selected single features for classification. The selected frequent patterns represent the data in a different feature space, in which any learning algorithm can be used, whereas associative classification builds a classification model using the rules. Experimental results are promising. Therefore, the mining of compressed, high quality patterns is an important frontier in data mining. 130 CHAPTER 11. APPLICATIONS AND TRENDS IN DATA MINING Bibliography [AHWY03] C. C. Aggarwal, J. Han, J. Wang, and P. S. Yu. A framework for clustering evolving data streams. In Proc. 2003 Int. Conf. Very Large Data Bases (VLDB’03), pages 81–92, Berlin, Germany, Sept. 2003. [AS94] R. Agrawal and R. Srikant. Fast algorithms for mining association rules. In Proc. 1994 Int. Conf. Very Large Data Bases (VLDB’94), pages 487–499, Santiago, Chile, Sept. 1994. [AS95] R. Agrawal and R. Srikant. Mining sequential patterns. In Proc. 1995 Int. Conf. Data Engineering (ICDE’95), pages 3–14, Taipei, Taiwan, Mar. 1995. [AS00] R. Agrawal and R. Srikant. Privacy-preserving data mining. In Proc. 2000 ACM-SIGMOD Int. Conf. Management of Data (SIGMOD’00), pages 439–450, Dallas, TX, May 2000. [BB02] C. Borgelt and M. R. Berthold. Mining molecular fragments: Finding relevant substructures of molecules. In Proc. 2002 Int. Conf. Data Mining (ICDM’02), pages 211–218, Maebashi, Japan, Dec. 2002. [BBM04] S. Basu, M. Bilenko, and R. J. Mooney. A probabilistic framework for semi-supervised clustering. In Proc. 2004 ACM SIGKDD Int. Conf. Knowledge Discovery in Databases (KDD’04), pages 59–68, Seattle, WA, Aug. 2004. [BDGM95] S. Brin, J. Davis, and H. Garcia-Molina. Copy detection for mechanisms for digital documents. In Proc. 1995 ACM-SIGMOD Int. Conf. Management of Data (SIGMOD’95), pages 398–409, May 1995. [BFR98] P. Bradley, U. Fayyad, and C. Reina. Scaling clustering algorithms to large databases. In Proc. 1998 Int. Conf. Knowledge Discovery and Data Mining (KDD’98), pages 9–15, New York, NY, Aug. 1998. [BR99] K. Beyer and R. Ramakrishnan. Bottom-up computation of sparse and iceberg cubes. In Proc. 1999 ACM-SIGMOD Int. Conf. Management of Data (SIGMOD’99), pages 359–370, Philadelphia, PA, June 1999. [CDH+ 02] Y. Chen, G. Dong, J. Han, B. W. Wah, and J. Wang. Multi-dimensional regression analysis of timeseries data streams. In Proc. 2002 Int. Conf. Very Large Data Bases (VLDB’02), pages 323–334, Hong Kong, China, Aug. 2002. [CHWM04] D. Cai, X. He, J.-R. Wen, and W.-Y. Ma. Block-level link analysis. In Proc. Int. 2004 ACM SIGIR Conf. Research and Development in Information Retrieval (SIGIR’04), pages 440–447, Sheffield, UK, July 2004. [CKM05] Z. Chen, D. V. Kalashnikov, and S. Mehrotra. Exploiting relationships for object consolidation. In ACM SIGMOD Workshop on Information Quality in Information Systems (IQIS), June 2005. [Coh04] J. Cohen. Bioinformatics—an introduction for computer scientists. ACM Computing Surveys, 36:122–158, 2004. 131 132 BIBLIOGRAPHY [CYH04] H. Cheng, X. Yan, and J. Han. IncSpan: Incremental mining of sequential patterns in large database. In Proc. 2004 ACM SIGKDD Int. Conf. Knowledge Discovery in Databases (KDD’04), pages 527–532, Seattle, WA, Aug. 2004. [DEKM98] R. Durbin, S. Eddy, A. Krogh, and G. Mitchison. Biological Sequence Analysis: Probability Models of Proteins and Nucleic Acids. Cambridge University Press, 1998. [DHL+ 01] G. Dong, J. Han, J. Lam, J. Pei, and K. Wang. Mining multi-dimensional constrained gradients in data cubes. In Proc. 2001 Int. Conf. on Very Large Data Bases (VLDB’01), pages 321–330, Rome, Italy, Sept. 2001. [GFKT01] L. Getoor, N. Friedman, D. Koller, and B. Taskar. Learning probabilistic models of relational structure. In Proc. 2001 Int. Conf. Machine Learning (ICML’01), pages 170–177, Williamstown, MA, 2001. [GRG98] J. Gehrke, R. Ramakrishnan, and V. Ganti. RainForest: A framework for fast decision tree construction of large datasets. In Proc. 1998 Int. Conf. Very Large Data Bases (VLDB’98), pages 416–427, New York, NY, Aug. 1998. [GZ03] G. Grahne and J. Zhu. Efficiently using prefix-trees in mining frequent itemsets. In Proc. ICDM’03 Int. Workshop on Frequent Itemset Mining Implementations (FIMI’03), Melbourne, FL, Nov. 2003. [HNFD98] J. Han, R. T. Ng, Y. Fu, and S. Dao. Dealing with semantic heterogeneity by generalization-based data mining techniques. In M. P. Papazoglou and G. Schlageter, editors, Cooperative Information Systems: Current Trends Directions, pages 207–231. Academic Press, 1998. [HPDW01] J. Han, J. Pei, G. Dong, and K. Wang. Efficient computation of iceberg cubes with complex measures. In Proc. 2001 ACM-SIGMOD Int. Conf. Management of Data (SIGMOD’01), pages 1–12, Santa Barbara, CA, May 2001. [HPY00] J. Han, J. Pei, and Y. Yin. Mining frequent patterns without candidate generation. In Proc. 2000 ACM-SIGMOD Int. Conf. Management of Data (SIGMOD’00), pages 1–12, Dallas, TX, May 2000. [JTH01] W. Jin, K. H. Tung, and J. Han. Mining top-n local outliers in large databases. In Proc. 2001 ACM SIGKDD Int. Conf. Knowledge Discovery in Databases (KDD’01), pages 293–298, San Fransisco, CA, Aug. 2001. [JTHW06] W. Jin, A. K. H. Tung, J. Han, and W. Wang. Ranking outliers using symmetric neighborhood relationship. In Proc. 2006 Pacific-Asia Conf. Knowledge Discovery and Data Mining (PAKDD’06), Singapore, April 2006. [Ker92] R. Kerber. Discretization of numeric attributes. In Proc. 1992 Nat. Conf. Artificial Intelligence (AAAI’92), pages 123–128, AAAI/MIT Press, 1992. [KH95] K. Koperski and J. Han. Discovery of spatial association rules in geographic information databases. In Proc. 1995 Int. Symp. Large Spatial Databases (SSD’95), pages 47–66, Portland, ME, Aug. 1995. [KK04] M. Kuramochi and G. Karypis. Finding frequent patterns in a large sparse graph. In Proc. 2004 SIAM Int. Conf. Data Mining (SDM’04), Lake Buena Vista, FL, April 2004. [LHG04] X. Li, J. Han, and H. Gonzalez. High-dimensional OLAP: A minimal cubing approach. In Proc. 2004 Int. Conf. Very Large Data Bases (VLDB’04), pages 528–539, Toronto, Canada, Aug. 2004. [LKF05] J. Leskovec, J. Kleinberg, and C. Faloutsos. Graphs over time: Densification laws, shrinking diameters and possible explanations. In Proc. 2005 ACM SIGKDD Int. Conf. on Knowledge Discovery and Data Mining (KDD’05), pages 177–187, Chicago, IL, Aug. 2005. [LLLY03] G. Liu, H. Lu, W. Lou, and J. X. Yu. On computing, storing and querying frequent patterns. In Proc. 2003 ACM SIGKDD Int. Conf. Knowledge Discovery and Data Mining (KDD’03), pages 607–612, Washington, DC, Aug. 2003. BIBLIOGRAPHY 133 [LPH02] L. V. S. Lakshmanan, J. Pei, and J. Han. Quotient cube: How to summarize the semantics of a data cube. In Proc. 2002 Int. Conf. on Very Large Data Bases (VLDB’02), pages 778–789, Hong Kong, China, Aug. 2002. [ML01] D. Malerba and F. A. Lisi. Discovering associations between spatial objects: An ilp application. In Proc. 2001 Int. Conf. Inductive Logic Programming (ILP’01), pages 156–163, Strasbourg, France, Sept. 2001. [NF00] M. Noirhomme-Fraiture. Multimedia support for complex multidimensional data mining. In Proc. 2000 SIGKDD Int. Workshop on Multimedia Data Mining (MDM’00), pages 54–59, Boston, MA, Aug. 2000. [NLHP98] R. Ng, L. V. S. Lakshmanan, J. Han, and A. Pang. Exploratory mining and pruning optimizations of constrained associations rules. In Proc. 1998 ACM-SIGMOD Int. Conf. Management of Data (SIGMOD’98), pages 13–24, Seattle, WA, June 1998. [PBTL99] N. Pasquier, Y. Bastide, R. Taouil, and L. Lakhal. Discovering frequent closed itemsets for association rules. In Proc. 7th Int. Conf. Database Theory (ICDT’99), pages 398–416, Jerusalem, Israel, Jan. 1999. [PCT+ 03] F. Pan, G. Cong, A. K. H. Tung, J. Yang, and M. Zaki. CARPENTER: Finding closed patterns in long biological datasets. In Proc. 2003 ACM SIGKDD Int. Conf. Knowledge Discovery and Data Mining (KDD’03), pages 637–642, Washington, DC, Aug. 2003. [PHL01] J. Pei, J. Han, and L. V. S. Lakshmanan. Mining frequent itemsets with convertible constraints. In Proc. 2001 Int. Conf. Data Engineering (ICDE’01), pages 433–332, Heidelberg, Germany, April 2001. [PHMA+ 01] J. Pei, J. Han, B. Mortazavi-Asl, H. Pinto, Q. Chen, U. Dayal, and M.-C. Hsu. PrefixSpan: Mining sequential patterns efficiently by prefix-projected pattern growth. In Proc. 2001 Int. Conf. Data Engineering (ICDE’01), pages 215–224, Heidelberg, Germany, April 2001. [SA96] R. Srikant and R. Agrawal. Mining sequential patterns: Generalizations and performance improvements. In Proc. 5th Int. Conf. Extending Database Technology (EDBT’96), pages 3–17, Avignon, France, Mar. 1996. [SAM98] S. Sarawagi, R. Agrawal, and N. Megiddo. Discovery-driven exploration of OLAP data cubes. In Proc. Int. Conf. of Extending Database Technology (EDBT’98), pages 168–182, Valencia, Spain, Mar. 1998. [THH01] A. K. H. Tung, J. Hou, and J. Han. Spatial clustering in the presence of obstacles. In Proc. 2001 Int. Conf. Data Engineering (ICDE’01), pages 359–367, Heidelberg, Germany, April 2001. [THLN01] A. K. H. Tung, J. Han, L. V. S. Lakshmanan, and R. T. Ng. Constraint-based clustering in large databases. In Proc. 2001 Int. Conf. Database Theory (ICDT’01), pages 405–419, London, UK, Jan. 2001. [TNLH00] A. K. H. Tung, R. Ng, L. Lakshmanan, and J. Han. Constraint-based clustering in large databases. In CS Technical Report, Simon Fraser University, June 2000. [WdVR06] J. Wang, A. P. de Vries, and M. J. T. Reinders. Unifying user-based and item-based collaborative filtering approaches by similarity fusion. In Proc. 2006 Int. ACM SIGIR Conf. Research and Development in Information Retrieval (SIGIR’06), Seattle, WA, Aug. 2006. [WH04] J. Wang and J. Han. BIDE: Efficient mining of frequent closed sequences. In Proc. 2004 Int. Conf. Data Engineering (ICDE’04), pages 79–90, Boston, MA, Mar. 2004. [WHP03] J. Wang, J. Han, and J. Pei. CLOSET+: Searching for the best strategies for mining frequent closed itemsets. In Proc. 2003 ACM SIGKDD Int. Conf. Knowledge Discovery and Data Mining (KDD’03), pages 236–245, Washington, DC, Aug. 2003. 134 BIBLIOGRAPHY [XHLW03] D. Xin, J. Han, X. Li, and B. W. Wah. Star-cubing: Computing iceberg cubes by top-down and bottom-up integration. In Proc. 2003 Int. Conf. Very Large Data Bases (VLDB’03), pages 476–487, Berlin, Germany, Sept. 2003. [XHYC05] D. Xin, J. Han, X. Yan, and H. Cheng. Mining compressed frequent-pattern sets. In Proc. 2005 Int. Conf. Very Large Data Bases (VLDB’05), pages 709–720, Trondheim, Norway, Aug. 2005. [YHA03] X. Yan, J. Han, and R. Afshar. CloSpan: Mining closed sequential patterns in large datasets. In Proc. 2003 SIAM Int. Conf. Data Mining (SDM’03), pages 166–177, San Fransisco, CA, May 2003. [YHY05] X. Yin, J. Han, and P.S. Yu. Cross-relational clustering with user’s guidance. In Proc. 2005 ACM SIGKDD Int. Conf. Knowledge Discovery in Databases (KDD’05), pages 344–353, Chicago, IL, Aug. 2005. [YHYY04] X. Yin, J. Han, J. Yang, and P. S. Yu. CrossMine: Efficient classification across multiple database relations. In Proc. 2004 Int. Conf. Data Engineering (ICDE’04), pages 399–410, Boston, MA, Mar. 2004. [YYH03] H. Yu, J. Yang, and J. Han. Classifying large data sets using SVM with hierarchical clusters. In Proc. 2003 ACM SIGKDD Int. Conf. Knowledge Discovery and Data Mining (KDD’03), pages 306–315, Washington, DC, Aug. 2003. [YZH05] X. Yan, X. J. Zhou, and J. Han. Mining closed relational graphs with connectivity constraints. In Proc. 2005 ACM SIGKDD Int. Conf. Knowledge Discovery in Databases (KDD’05), pages 324–333, Chicago, IL, Aug. 2005. [Zak00] M. J. Zaki. Scalable algorithms for association mining. IEEE Trans. Knowledge and Data Engineering, 12:372–390, 2000. [Zak01] M. Zaki. SPADE: An efficient algorithm for mining frequent sequences. Machine Learning, 40:31–60, 2001. [ZDN97] Y. Zhao, P. M. Deshpande, and J. F. Naughton. An array-based algorithm for simultaneous multidimensional aggregates. In Proc. 1997 ACM-SIGMOD Int. Conf. Management of Data (SIGMOD’97), pages 159–170, Tucson, AZ, May 1997. [ZH02] M. J. Zaki and C. J. Hsiao. CHARM: An efficient algorithm for closed itemset mining. In Proc. 2002 SIAM Int. Conf. Data Mining (SDM’02), pages 457–473, Arlington, VA, April 2002.
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.2 Linearized : No Page Count : 135 Creator : TeX output 2006.07.30:0946 Producer : dvipdfm 0.13.2c, Copyright © 1998, by Mark A. Wicks Create Date : 2006:07:30 09:47:21-06:00EXIF Metadata provided by EXIF.tools