Tous les paquets open source
IASwift

SwiftAI

Apprentissage automatique en Swift pur : entraînez, évaluez et sauvegardez des modèles sur l'appareil.

9ÉtoilesDernière version: v2.0.0Mis à jour: 15 octobre 2026
Plateformes:iOS 15macOS 12tvOS 15watchOS 8visionOS 1

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

swift
1import SwiftUI
2import SwiftAI
3 
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.localizedDescription
22 }
23 }
24}

Installation

Xcode (File › Add Package Dependencies…)

text
1https://github.com/muhittincamdali/SwiftAI.git

Swift Package Manager

swift
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

Quatre classificateurs entraînés sur les mesures de pétales d'iris, avec l'espèce que chacun prédit à travers le plan et leur précision par validation croisée (k plus proches voisins 96,0 %, régression logistique 95,3 %, arbre de décision 94,0 %, réseau de neurones 96,0 %)
Version sombre de l'image des frontières de décision : quatre classificateurs entraînés sur les mesures de pétales d'iris et leur précision par validation croisée

Chronologie

  1. Dépôt ouvert comme un large framework d'IA avec des couches d'architecture d'app et du code Vision et NLP

  2. 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

  3. Allégé : les tests se sont réduits à un seul fichier d'espace réservé et de petites couches stub ont été ajoutées

  4. 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

Liens

Article associé

Lire l'article