ml_svm 0.1.0
ml_svm: ^0.1.0 copied to clipboard
Native Dart implementation of Support Vector Machine (SVM) with linear classification, hinge loss, and multi-class OvR support.
import 'dart:typed_data';
import 'package:ml_svm/ml_svm.dart';
void main() {
// Sample dataset: [height, weight] and labels
final features = <Float64List>[
Float64List.fromList([160.0, 50.0]),
Float64List.fromList([170.0, 65.0]),
Float64List.fromList([180.0, 80.0]),
Float64List.fromList([155.0, 48.0]),
Float64List.fromList([175.0, 75.0]),
Float64List.fromList([165.0, 52.0]),
];
final labels = [
'underweight',
'normal',
'overweight',
'underweight',
'overweight',
'normal',
];
// Normalize the data
final normalized = normalize(features);
// Shuffle (optional)
shuffleInPlace(normalized, labels, seed: 42);
// Create and train model
final model = SVMModel(
learningRate: 0.01,
regularizationC: 1.0,
maxIterations: 500,
tolerance: 1e-4,
);
model.fit(normalized, labels);
// Test prediction
final testSample = Float64List.fromList([172.0, 70.0]);
final testNorm = normalize([testSample]).first;
final predicted = model.predict(testNorm);
final decision = model.decisionFunction(testNorm);
print('Predicted class: $predicted');
print('Decision scores: $decision');
}