mirror of
https://github.com/Ladebeze66/ft_linear_regression.git
synced 2025-12-13 04:36:51 +01:00
runsh
This commit is contained in:
parent
4e321348d7
commit
5b0e50bcb2
@ -1,19 +0,0 @@
|
||||
# Ignorer le dossier Git et les fichiers de versioning
|
||||
.git/
|
||||
.gitignore
|
||||
|
||||
# Ignorer les fichiers Python temporaires
|
||||
__pycache__/
|
||||
*.pyc
|
||||
*.pyo
|
||||
*.pyd
|
||||
|
||||
# Ignorer l’environnement virtuel (si jamais recréé)
|
||||
venv/
|
||||
ftline/
|
||||
|
||||
# Ignorer les fichiers générés
|
||||
model.npy
|
||||
data/data.normalized.csv
|
||||
|
||||
ft_linear_subject.pdf
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,5 +1,5 @@
|
||||
# Ignorer l'environnement virtuel
|
||||
ftline/
|
||||
ftlinear/
|
||||
|
||||
# Ignorer les fichiers de cache Python
|
||||
__pycache__/
|
||||
|
||||
14
Dockerfile
14
Dockerfile
@ -1,14 +0,0 @@
|
||||
# Utilisation d'une image Python officielle
|
||||
FROM python:3.12
|
||||
|
||||
# Définition du répertoire de travail
|
||||
WORKDIR /app
|
||||
|
||||
# Copier tous les fichiers du projet dans le conteneur
|
||||
COPY . /app
|
||||
|
||||
# Installer les dépendances du projet
|
||||
RUN pip install --no-cache-dir -r requirements.txt
|
||||
|
||||
# COMMANDE PAR défaut : Exécuter "main.py"
|
||||
CMD ["python", "main.py"]
|
||||
3
main.py
3
main.py
@ -5,7 +5,6 @@ import os
|
||||
sys.path.append(os.path.abspath("src"))
|
||||
|
||||
from src.training_model import train_model
|
||||
from src.prediction import predict_price # Peut maintenant être importé dès le début
|
||||
from src.gui import show_gui # Import propre et structuré
|
||||
|
||||
def main():
|
||||
@ -15,7 +14,7 @@ def main():
|
||||
# Entraîner le modèle
|
||||
train_model()
|
||||
print("Modèle entraîné avec succès !")
|
||||
|
||||
from src.prediction import predict_price
|
||||
# Lancer l'interface graphique après l'entraînement
|
||||
print("Lancement de l'interface graphique...")
|
||||
show_gui(predict_price)
|
||||
|
||||
27
run.sh
Normal file
27
run.sh
Normal file
@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "🚀 Activation de l'environnement virtuel..."
|
||||
|
||||
# Vérifier si l'environnement virtuel existe
|
||||
if [ ! -d "ftlinear" ]; then
|
||||
echo "🛠 Création de l'environnement virtuel..."
|
||||
python3 -m venv ftlinear
|
||||
fi
|
||||
|
||||
# Détecter si le système est Debian/Ubuntu avec PEP 668 (éviter l'erreur `externally-managed-environment`)
|
||||
if grep -q "externally-managed" /usr/lib/python*/EXTERNALLY-MANAGED 2>/dev/null; then
|
||||
echo "⚠️ Système avec gestion des paquets restreinte. Utilisation de '--break-system-packages'."
|
||||
PIP_EXTRA="--break-system-packages"
|
||||
else
|
||||
PIP_EXTRA=""
|
||||
fi
|
||||
|
||||
# Activer l'environnement virtuel
|
||||
source ftlinear/bin/activate
|
||||
|
||||
echo "📦 Installation des dépendances..."
|
||||
pip install --upgrade pip $PIP_EXTRA
|
||||
pip install -r requirements.txt $PIP_EXTRA
|
||||
|
||||
echo "🎯 Exécution du programme..."
|
||||
python main.py
|
||||
@ -1,15 +1,17 @@
|
||||
import numpy as np
|
||||
import pandas as pd
|
||||
import os
|
||||
|
||||
# Charger les valeurs min/max pour la dé-normalisation
|
||||
df = pd.read_csv("data/data_normalized.csv")
|
||||
# Génère le chemin absolu basé sur l’emplacement du script
|
||||
file_path = os.path.abspath(os.path.join(os.getcwd(), "data", "data_normalized.csv"))
|
||||
df = pd.read_csv(file_path)
|
||||
km_min, km_max = df["km"].min(), df["km"].max()
|
||||
price_min, price_max = df["price"].min(), df["price"].max()
|
||||
|
||||
def predict_price(km):
|
||||
"""Prédit le prix d'une voiture en fonction du kilométrage donné en entrée."""
|
||||
# Charger les paramètres optimisés (entraînés sur des données normalisées)
|
||||
theta_0, theta_1 = np.load("model.npy")
|
||||
theta_0, theta_1 = np.load("data/model.npy")
|
||||
|
||||
# Normaliser le kilométrage
|
||||
km_norm = (km - km_min) / (km_max - km_min)
|
||||
|
||||
@ -17,13 +17,13 @@ def train_model():
|
||||
theta_0_init = 0
|
||||
theta_1_init = 1
|
||||
learning_rate = 0.1 # Taux d'apprentissage
|
||||
iterations = 10000
|
||||
iterations = 1000
|
||||
|
||||
# Exécuter la descente de gradient
|
||||
theta_0_opt, theta_1_opt, cost_history = gradient_descent(X, y, theta_0_init, theta_1_init, learning_rate, iterations)
|
||||
|
||||
# Sauvegarder les paramètres optimisés
|
||||
np.save("model.npy", [theta_0_opt, theta_1_opt]) # Sauvegarde des paramètres optimisés dans un fichier .npy
|
||||
np.save("data/model.npy", [theta_0_opt, theta_1_opt]) # Sauvegarde des paramètres optimisés dans un fichier .npy
|
||||
print("Modèle entraîné et paramètres sauvegardés.")
|
||||
print(f"Paramètre optimisé θ₀ = {theta_0_opt}")
|
||||
print(f"Paramètre optimisé θ₁ = {theta_1_opt}")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user