SwiftAI
Apprentissage automatique en Swift pur : entraînez, évaluez et sauvegardez des modèles sur l'appareil.
Licence: MIT
SwiftAI est un package Swift pour l'apprentissage automatique classique sur les plateformes Apple : classification, régression, clustering et réduction de dimensionnalité sur des tableaux de nombres. Vous chargez les données depuis un CSV ou des tableaux, les divisez, entraînez un modèle en un seul appel de fonction, le mesurez et le sauvegardez en JSON pour le charger dans votre app, sans chaîne d'outils Python ni serveur. Le package n'a aucune dépendance.
Fonctionnalités
- Onze modèles supervisés : régression linéaire et ridge, régression logistique, k plus proches voisins, naive Bayes gaussien, arbres de décision, forêts aléatoires et réseaux de neurones, plus le clustering k-means et l'analyse en composantes principales
- Vérifié face à scikit-learn 1.9.1 : les tests comparent coefficients, probabilités et clusters (par exemple les probabilités de régression logistique à 1e-5, l'ACP à 1e-10)
- Erreurs plutôt que plantages : des données ou réglages invalides déclenchent une SwiftAIError qui indique quoi changer
- Chargement sûr : modèles, scalers et pipelines sont Codable, et le décodage vérifie les formes, les valeurs, les listes de classes et la structure des arbres
- Reproductible : chaque étape aléatoire prend une graine, et la même graine donne le même modèle, aussi pour les forêts entraînées en parallèle
- Pipeline ajuste le prétraitement uniquement sur les données d'entraînement et l'applique de la même façon à chaque échantillon ultérieur
- Mode de langage Swift 6 avec vérification stricte de la concurrence ; catalogue DocC avec quatre articles et l'app d'exemple ModelLab pour iOS et macOS
Démarrage rapide
1import SwiftUI2import SwiftAI3 4struct ContentView: View {5 var body: some View {6 Text(irisSummary())7 .padding()8 }9 10 func irisSummary() -> String {11 do {12 // 1. Split the built-in iris flowers into training and test samples.13 let (training, test) = try Dataset.iris.stratifiedSplit(testFraction: 0.2, seed: 42)14 // 2. Train a random forest on the training samples.15 let model = try RandomForestClassifier.fit(training, seed: 42)16 // 3. Measure it on the test samples and classify a new flower.17 let accuracy = try model.accuracy(on: test)18 let species = try model.predict([6.3, 2.8, 5.1, 1.5])19 return "Test accuracy: \(accuracy.formatted(.percent))\nNew flower: \(species)"20 } catch {21 return error.localizedDescription22 }23 }24}Installation
Xcode (File › Add Package Dependencies…)
1https://github.com/muhittincamdali/SwiftAI.gitSwift Package Manager
1dependencies: [2 .package(url: "https://github.com/muhittincamdali/SwiftAI.git", from: "2.0.0")3],4targets: [5 .target(name: "YourApp", dependencies: [6 .product(name: "SwiftAI", package: "SwiftAI")7 ])8]Captures d'écran


Chronologie
Dépôt ouvert comme un large framework d'IA avec des couches d'architecture d'app et du code Vision et NLP
Version 1.0.0 publiée ; trois jours plus tard, les modules d'architecture d'app ont été supprimés et un noyau d'apprentissage automatique plus restreint a été écrit
Allégé : les tests se sont réduits à un seul fichier d'espace réservé et de petites couches stub ont été ajoutées
Reconstruit entièrement comme un package d'apprentissage automatique classique sans dépendance et publié en version 2.0.0 ; aucune API de 1.0.0 ne subsiste