Data Mining Course Project
1. PROJECT OVERVIEW
This project requires students to independently conduct a complete data mining study using a self-selected real-
world dataset. The work spans four stages: exploratory analysis and visualization, data preprocessing, K-
Medoid clustering, and a Fuzzy Logic inference system, followed by optimization via a Genetic Algorithm. All
implementations must be done in Python.
2. DATASET SELECTION
Students must select a dataset that satisfies the following criteria:
• Minimum 1000 instances and 6 features, with a mix of numeric and categorical attributes
• Not a standard tutorial dataset (e.g., Iris, Titanic)
• Publicly available from a reputable source (e.g., UCI ML Repository, Kaggle, government portals)
• Relevant to a meaningful real-world domain such as healthcare, finance, environment, or education
3. PROJECT TASKS
Task 1 — Exploratory Data Analysis & Visualization
Conduct an exploratory analysis of the dataset. Produce a minimum of five visualizations covering feature
distributions, correlations, and categorical breakdowns. Each visualization must be accompanied by a written
interpretation explaining what it reveals about the data.
Task 2: Data Preprocessing
Prepare the dataset for analysis by addressing missing values, detecting and treating outliers, encoding
categorical features, and applying feature scaling. Every transformation must be justified. Dimensionality
reduction is optional and earns up to five bonus points.
Task 3: K-Medoid Clustering
Apply K-Medoid clustering to identify natural groupings in the data. Determine the optimal number of clusters
using the Elbow Method and Silhouette Score, then analyze and interpret each cluster profile in terms of the
domain context.
Task 4: Hierarchical Clustering
Apply hierarchical clustering with the three linkage methods. Determine the optimal number of clusters using
the Elbow Method and Silhouette Score, then analyze and interpret each cluster profile in terms of the domain
context.
Task 5: Fuzzy Logic Inference System
Design a Fuzzy Logic System that incorporates one of the outputs from K-Medoid/Hierarchical clustering either
as one of the input features (at least 2 inputs are required) or as the system output. This has to be done in a
meaningful way where the output of the fuzzification system reflects a decision/action. Define membership
functions, construct a rule base of at least nine IF-THEN rules grounded in domain knowledge, apply centroid
defuzzification, and validate the system against real samples from the dataset.
Task 6: Genetic Algorithm Optimization
Apply a Genetic Algorithm to an optimization problem derived from the analysis, such as feature subset
selection or parameter tuning. Define the chromosome encoding, fitness function, and genetic operators. Report
the best solution found and compare it to the baseline result.
Task 7: System Implementation
After you implemented clustering, fuzzy system, genetic algorithm. Create a comprehensive implementation
function that takes all your implementations as arguments along with a collected dataset record and produces a
meaningful output.
4. REPORT STRUCTURE & SUBMISSION (EXTREMELY CRITICAL)
Submit a single compressed archive containing a fully executed Jupyter Notebook and all supporting files. The
notebook must follow the structure below:
Section Content
1. Introduction Dataset description, source, domain motivation detailed.
2. Visualization All plots with written interpretations.
3. Preprocessing Transformations applied with before/after comparison with the reason for each
transformation.
4. Clustering K selection rationale, cluster profiles, visualizations, what the clusters indicate,
and how does it relate to the dataset.
5. Fuzzy Logic System design, rule base, test results, how you formulated the rules from the
domain knowledge, and what the output translates to.
6. Genetic Algorithm Implementation, fitness evolution, comparison to baseline (initial population),
the fitness function selection reasoning, and the purpose of using genetic
algorithm. Detail what you defined as chromosome, gene, crossover, mutation
and children in the new population.
IMPORTANT: the order of this section depends on when you used it.
7. Implementation Explain the pipeline from your implementation with a flow chart.
7. Conclusion Key findings of each of the sections above. Detailing the business/research/area-
of-interest value your findings indicate and what actions can be taken or
understanding can be realized from your analysis.
5. ACADEMIC INTEGRITY
All submissions are prone to similarity checks, meaning that an automated software is going to parse your
responses and flag duplicated or close to duplicated projects. Teams that use the same dataset might yield similar
results and be flagged by the system and automatically graded 0. So, keep your submissions unique and try to
use a unique dataset and produce creative results.
Good Luck