Multi-Label Software Defect Prediction Models
This repository contains trained models for predicting multiple software defects simultaneously.
Models Included
- SVM: Support Vector Machine with One-vs-Rest strategy
- Logistic Regression: Multi-label logistic regression
- Perceptron: Online learning perceptron for multi-label
- DNN: Deep Neural Network with sigmoid output layer
Features
The models use various software metrics including:
- Code complexity metrics
- Size metrics
- Coupling metrics
- Cohesion metrics
Performance
| Model | Hamming Loss | Micro-F1 | Macro-F1 |
|---|---|---|---|
| SVM | 0.15 | 0.78 | 0.72 |
| Logistic Regression | 0.17 | 0.75 | 0.69 |
| Perceptron | 0.20 | 0.70 | 0.64 |
| DNN | 0.13 | 0.82 | 0.76 |
Usage
import pickle
import numpy as np
# Load model and scaler
with open('defect_svm_model.pkl', 'rb') as f:
model = pickle.load(f)
with open('defect_scaler.pkl', 'rb') as f:
scaler = pickle.load(f)
# Prepare features
features = np.array([...]) # Your feature vector
features_scaled = scaler.transform(features.reshape(1, -1))
# Predict
predictions = model.predict(features_scaled)
probabilities = model.predict_proba(features_scaled)
Training Details
- Online Learning: Perceptron uses online learning mode with per-sample weight updates
- Multi-label Strategy: One-vs-Rest for SVM and Logistic Regression
- Hyperparameter Tuning: Grid search with cross-validation
Inference Providers
NEW
This model isn't deployed by any Inference Provider.
๐
Ask for provider support