init commit
This commit is contained in:
82
README.md
82
README.md
@@ -0,0 +1,82 @@
|
||||
# Semi-Supervised Support Vector Machines (S3VM)
|
||||
|
||||
Python implementation of semi-supervised SVM algorithms for binary classification using both labeled and unlabeled data.
|
||||
|
||||
## Algorithms
|
||||
|
||||
- **NewtonUTSVM**: Newton-based method using two parallel planes
|
||||
- **S3VM Constrained**: Constrained formulation with MIP
|
||||
- **S3VM Unconstrained**: Unconstrained smooth optimization
|
||||
- **MC_NDCC**: Synthetic dataset generator
|
||||
- **SRMSVM**: 1-norm SVM for sparse solutions
|
||||
|
||||
## Requirements
|
||||
|
||||
- Python 3.x
|
||||
- numpy
|
||||
- pandas
|
||||
- scipy
|
||||
- scikit-learn
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
pip install numpy pandas scipy scikit-learn
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
### Run Experiments
|
||||
|
||||
```bash
|
||||
cd code
|
||||
python main.py
|
||||
```
|
||||
|
||||
### Basic Example
|
||||
|
||||
```python
|
||||
from NewtonUTSVM import NewtonUTSVM
|
||||
from utils import load_dataset, calculate_accuracy
|
||||
|
||||
# Load dataset
|
||||
X, y, x_test, y_test, U = load_dataset("data/diabetes.csv")
|
||||
y = y.reshape(y.shape[0], 1)
|
||||
|
||||
# Train
|
||||
C = [0.1, 0.1, 0.1, 0.1, 0.3, 0.3]
|
||||
model = NewtonUTSVM(X, y, U, C=C, eps=1e-4)
|
||||
model.fit()
|
||||
|
||||
# Predict
|
||||
model.predict(x_test=x_test)
|
||||
predictions = model.get_preds()
|
||||
accuracy = calculate_accuracy(y_test, predictions)
|
||||
print(f"Accuracy: {accuracy}%")
|
||||
```
|
||||
|
||||
## Datasets
|
||||
|
||||
Real-world: diabetes, ionosphere, musk, sonar, gender, wpbc
|
||||
|
||||
Synthetic: NDCC datasets (100_10, 100_100, 500_10, 1000_10)
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
code/
|
||||
├── main.py # Main script
|
||||
├── NewtonUTSVM.py # NewtonUTSVM
|
||||
├── S3VM_constrained.py # Constrained S3VM
|
||||
├── S3VM_unconstrained.py # Unconstrained S3VM
|
||||
├── SRMSVM.py # SRMSVM
|
||||
├── MC_NDCC.py # Dataset generator
|
||||
├── utils.py # Utilities
|
||||
└── data/ # Datasets
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- Binary classification only (labels: +1, -1)
|
||||
- Datasets are automatically normalized
|
||||
- NewtonUTSVM requires 6 C parameters
|
||||
|
||||
Reference in New Issue
Block a user