Skip to main content

An implementation of Skope Rules for binary classification using PySpark

Project description

Skope Rules PySpark

Une implémentation PySpark de Skope Rules pour la classification binaire.

Installation

pip install skope-rules-pyspark

Utilisation

from pyspark.sql import SparkSession
from skope_rules_pyspark import SkopeRulesPySpark

# Créer une session Spark
spark = SparkSession.builder \
    .appName("SkopeRulesPySparkExample") \
    .master("local[2]") \
    .getOrCreate()

# Créer un DataFrame d'exemple
data = [
    (1.0, 2.0, 3.0, 1),
    (1.0, 2.0, 1.0, 1),
    (4.0, 5.0, 6.0, 0),
    (4.0, 2.0, 3.0, 0),
    (1.0, 5.0, 3.0, 1),
    (4.0, 5.0, 1.0, 0),
]

df = spark.createDataFrame(data, ["feature1", "feature2", "feature3", "label"])

# Initialiser et entraîner le modèle
skope = SkopeRulesPySpark(
    feature_names=["feature1", "feature2", "feature3"],
    precision_min=0.5,
    recall_min=0.1,
    n_estimators=2,
    max_depth=2
)

skope.fit(df)

# Obtenir les règles générées
rules = skope.get_rules()
for rule, (precision, recall, nb) in rules.items():
    print(f"{rule} | precision={precision:.2f} | recall={recall:.2f} | nb={nb}")

# Faire des prédictions
predictions = skope.predict(df)
predictions.show()

Paramètres

  • feature_names : Liste des noms des colonnes à utiliser comme features
  • precision_min : Précision minimale requise pour une règle (défaut: 0.5)
  • recall_min : Rappel minimal requis pour une règle (défaut: 0.01)
  • n_estimators : Nombre d'arbres de décision à entraîner (défaut: 10)
  • max_depth : Profondeur maximale des arbres (défaut: 3)
  • max_features : Nombre maximum de features à considérer (défaut: 1.0)
  • min_samples_split : Nombre minimum d'échantillons requis pour diviser un nœud (défaut: 2)
  • random_state : Seed pour la reproductibilité (défaut: None)

Méthodes

  • fit(df) : Entraîne le modèle sur un DataFrame PySpark
  • predict(df) : Retourne les prédictions pour un DataFrame
  • transform(df) : Applique les règles et retourne le DataFrame avec les prédictions
  • get_rules() : Retourne les règles générées avec leurs métriques

Développement

  1. Cloner le repository
  2. Installer les dépendances de développement :
    pip install -e ".[dev]"
    
  3. Lancer les tests :
    pytest tests/
    

Licence

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

skope_rules_pyspark-0.1.0.tar.gz (13.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

skope_rules_pyspark-0.1.0-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file skope_rules_pyspark-0.1.0.tar.gz.

File metadata

  • Download URL: skope_rules_pyspark-0.1.0.tar.gz
  • Upload date:
  • Size: 13.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.12

File hashes

Hashes for skope_rules_pyspark-0.1.0.tar.gz
Algorithm Hash digest
SHA256 461d8a4321e5c40bc6c8ed04cb335776c8cac25b996501ad52c74aadd4dbff14
MD5 187730d44e1b5d82a818f073b58a5289
BLAKE2b-256 8e04a47225b044c5ad36b9aefdb8ce2b2288d8297a9b644a8fab7d3026985028

See more details on using hashes here.

File details

Details for the file skope_rules_pyspark-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for skope_rules_pyspark-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c39d249ff6d5f56e743b72ff57094da9d4c4a141352115c628fcf6614cefbefd
MD5 31c192713b7817fe71fbd1a094333f65
BLAKE2b-256 5399106ed84ef20d258666f8ac8a4be87b288055541935b7ffbff51a1e000f56

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page