
Abstract
This tool evaluates supplier performance using machine learning (Decision Tree Regressor). It is designed to assist procurement and supply chain professionals in ranking suppliers based on predicted performance. The GUI, built with Tkinter, allows users to load data, evaluate models, view a decision tree, assess model accuracy, and download results in Excel format.
Methodology
The app uses Python and several libraries for machine learning, data visualization, and UI development:
- pandas, numpy – for data handling
- scikit-learn – for training a Decision Tree Regressor
- matplotlib – to visualize the decision tree
- tkinter – to build a user-friendly GUI
- openpyxl – for Excel I/O
Current State Gap Identification
In today's procurement and supply chain management processes, supplier performance evaluations often suffer from several critical gaps:
- Manual Processes: Evaluations are frequently done manually, leading to time-consuming procedures and increased human error.
- Subjectivity: Without data-driven metrics, assessments can be highly subjective and inconsistent, impacting decision-making.
- Lack of Integrated Analysis: Existing methods rarely combine quantitative data analysis with visual insights, making it difficult to derive actionable conclusions.
- Inconsistent Data Quality: Varying standards in data collection and reporting can result in unreliable performance metrics.
- Delayed Reporting: Slow turnaround times in evaluating supplier performance hinder timely interventions and strategic planning.
These gaps highlight the need for an automated, data-centric solution that can provide objective, real-time insights into supplier performance, ultimately supporting better procurement decisions.
Technologies Used
- Python 3.x – The primary programming language for the application.
- numpy – For numerical computing.
- pandas – For data manipulation and handling Excel files.
- scikit-learn – For machine learning, including training the Decision Tree Regressor and evaluating its performance.
- matplotlib – For data visualization, specifically to display the decision tree.
- tkinter – For building the graphical user interface (GUI).
- os – For interacting with the operating system (e.g., file paths).
Specific Objectives
- Evaluate Supplier Performance: Use a Decision Tree Regressor to predict supplier ratings based on historical data.
- Visualize Model Decisions: Display the decision tree to help understand how input features influence predictions.
- Export and Share Results: Enable exporting of the evaluated results into an Excel file for further analysis.
- User-Friendly Interface: Provide a simple GUI built with Tkinter that integrates all functionalities.
Workflow
- Read and preprocess data from an Excel file.
- Train the Decision Tree model.
- Generate predictions and rank suppliers.
- Provide options to view, export, and analyze results.
Limitations Discussion
- Platform Dependency: The app is currently tailored for Windows (file paths and COM objects for messaging).
- Data Quality: Model performance is directly influenced by the quality and structure of the input data.
- Scalability: Designed for moderate datasets; performance may degrade with very large datasets.
- Feature Scope: Lacks advanced features such as automated hyperparameter tuning or real-time data updates.
Significance and Implications of Work
- Data-Driven Decisions: Empowers procurement professionals to make informed decisions based on quantitative model outputs.
- Operational Efficiency: Automates the process of supplier evaluation, reducing manual effort and subjectivity.
- Transparency: Visualizations such as the decision tree provide insights into the model’s decision-making process.
- Versatility: The tool can be extended or integrated with other systems for broader supply chain management solutions.
Clear Prerequisites and Requirements
- Operating System: Windows (for full functionality including Outlook integration, if applicable)
- Python Environment: Python 3.8+ recommended
- Required Packages:
- pandas
- numpy
- scikit-learn
- matplotlib
- tkinter (usually included with Python)
- openpyxl
- Data Input: An Excel file named Supplier_Performance_Data.xlsx with the appropriate columns (e.g., Supplier_Rating, Supplier_ID, and feature columns)
- Hardware: Standard desktop or laptop with moderate processing power
Source Credibility
This project builds upon widely recognized and extensively documented libraries: