mirror of
https://github.com/Ladebeze66/ft_linear_regression.git
synced 2025-12-15 21:56:48 +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
|
# Ignorer l'environnement virtuel
|
||||||
ftline/
|
ftlinear/
|
||||||
|
|
||||||
# Ignorer les fichiers de cache Python
|
# Ignorer les fichiers de cache Python
|
||||||
__pycache__/
|
__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"))
|
sys.path.append(os.path.abspath("src"))
|
||||||
|
|
||||||
from src.training_model import train_model
|
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é
|
from src.gui import show_gui # Import propre et structuré
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
@ -15,7 +14,7 @@ def main():
|
|||||||
# Entraîner le modèle
|
# Entraîner le modèle
|
||||||
train_model()
|
train_model()
|
||||||
print("Modèle entraîné avec succès !")
|
print("Modèle entraîné avec succès !")
|
||||||
|
from src.prediction import predict_price
|
||||||
# Lancer l'interface graphique après l'entraînement
|
# Lancer l'interface graphique après l'entraînement
|
||||||
print("Lancement de l'interface graphique...")
|
print("Lancement de l'interface graphique...")
|
||||||
show_gui(predict_price)
|
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 numpy as np
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
|
import os
|
||||||
|
|
||||||
# Charger les valeurs min/max pour la dé-normalisation
|
# Génère le chemin absolu basé sur l’emplacement du script
|
||||||
df = pd.read_csv("data/data_normalized.csv")
|
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()
|
km_min, km_max = df["km"].min(), df["km"].max()
|
||||||
price_min, price_max = df["price"].min(), df["price"].max()
|
price_min, price_max = df["price"].min(), df["price"].max()
|
||||||
|
|
||||||
def predict_price(km):
|
def predict_price(km):
|
||||||
"""Prédit le prix d'une voiture en fonction du kilométrage donné en entrée."""
|
"""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)
|
# 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
|
# Normaliser le kilométrage
|
||||||
km_norm = (km - km_min) / (km_max - km_min)
|
km_norm = (km - km_min) / (km_max - km_min)
|
||||||
|
|||||||
@ -17,13 +17,13 @@ def train_model():
|
|||||||
theta_0_init = 0
|
theta_0_init = 0
|
||||||
theta_1_init = 1
|
theta_1_init = 1
|
||||||
learning_rate = 0.1 # Taux d'apprentissage
|
learning_rate = 0.1 # Taux d'apprentissage
|
||||||
iterations = 10000
|
iterations = 1000
|
||||||
|
|
||||||
# Exécuter la descente de gradient
|
# 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)
|
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
|
# 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("Modèle entraîné et paramètres sauvegardés.")
|
||||||
print(f"Paramètre optimisé θ₀ = {theta_0_opt}")
|
print(f"Paramètre optimisé θ₀ = {theta_0_opt}")
|
||||||
print(f"Paramètre optimisé θ₁ = {theta_1_opt}")
|
print(f"Paramètre optimisé θ₁ = {theta_1_opt}")
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user