SatuRno17
Super Member >PLATINUM<
Apro questa discussione per condividere con gli appassionati di IA questo codice in python che addestra un rete neurale (tensorflow) per il lotto.
N.B. per eseguire il codice serve Python versione 3.10 e serve aver installato le librerie : numpy, pandas, tensorflow
N.B. per eseguire il codice serve Python versione 3.10 e serve aver installato le librerie : numpy, pandas, tensorflow
Python:
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
data = pd.read_csv(r"2024_BA.csv",header=None,sep=";")
# Filtra i numeri estratti
numeri = data.iloc[:, 1:6].values # Seleziona le colonne con gli estratti
# Normalizza i numeri (ad esempio da 1-90 a 0-1)
scaler = MinMaxScaler(feature_range=(0, 1))
numeri_normalizzati = scaler.fit_transform(numeri)
# Creazione dei dati di input (X) e output (y)
X = numeri_normalizzati[:-1] # Tutti i gruppi tranne l'ultimo
y = numeri_normalizzati[1:] # Gruppi spostati in avanti di una riga
# Dividere i dati in train e test
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 3. Creare il modello di rete neurale
model = Sequential()
model.add(Dense(128, input_dim=X.shape[1], activation="relu")) # Primo livello
model.add(Dense(64, activation="relu")) # Secondo livello
model.add(Dense(X.shape[1], activation="sigmoid")) # Livello di output
# 4. Compilare il modello
model.compile(optimizer="adam", loss="mean_squared_error", metrics=["accuracy"])
# 5. Addestrare il modello
history = model.fit(X_train, y_train, epochs=50, batch_size=32, validation_data=(X_test, y_test))
# 6. Valutare il modello
loss, accuracy = model.evaluate(X_test, y_test)
print(f"Loss: {loss}, accuracy: {accuracy}")
# 7. Previsione
# Prevedere il prossimo gruppo di numeri (esempio)
next_prediction = model.predict(X_test[:1]) # Usa il primo elemento del test set
numeri_originali = scaler.inverse_transform(next_prediction) # Riconverti i numeri al range originale
numeri_interi = numeri_originali.round().astype(int)
print("Prossima previsione:", numeri_interi[0])
Ultima modifica: