Vai al contenuto

codice Python by IA x LOTTO già implementato parte-1

import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.decomposition import PCA
from statsmodels.tsa.arima.model import ARIMA
from scipy.cluster.hierarchy import linkage, fcluster
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA
import numpy as np
from sklearn.preprocessing import MinMaxScaler
from sklearn.cluster import KMeans
from sklearn.neural_network import MLPRegressor
from collections import Counter
import re

def mappa_a_intervallo(valore, min_val, max_val, nuovo_min, nuovo_max):
    # Scala il valore all'intervallo [nuovo_min, nuovo_max]
    return ((valore - min_val) / (max_val - min_val)) * (nuovo_max - nuovo_min) + nuovo_min

def analizza_e_filtra(df, numeri_interessanti):
    # Normalizza i dati
    scaler = MinMaxScaler(feature_range=(1, 90))
    df_normalized = pd.DataFrame(scaler.fit_transform(df), columns=df.columns)

    # Analisi di regressione
    df_normalized = df_normalized.dropna()
    model = LinearRegression().fit(df_normalized[['prima', 'seconda', 'terza', 'quarta']], df_normalized['quinta'])
    risultati_regressione = model.coef_
    print('Coefficienti del modello di regressione:', risultati_regressione)

    # Analisi delle componenti principali (PCA)
    df_normalized = df_normalized.dropna()
    pca = PCA(n_components=2).fit(df_normalized)
    risultati_pca = pca.components_
    print('Componenti principali:', risultati_pca)

    # Analisi delle serie temporali
    df_normalized = df_normalized.dropna()
    model = ARIMA(df_normalized['prima'], order=(1,1,1)).fit()
    risultati_serie_temporali = model.predict(typ='levels')
    print('Risultati dell\'analisi delle serie temporali:', risultati_serie_temporali)

    # Analisi di clustering gerarchico
    df_normalized = df_normalized.dropna()
    kmeans = KMeans(n_clusters=5, n_init=10).fit(df_normalized)
    df_normalized['cluster'] = kmeans.labels_
    risultati_clustering = df_normalized['cluster']
    print('Cluster:', risultati_clustering)

    # Analisi discriminante
    df_normalized = df_normalized.dropna()
    model = LDA().fit(df_normalized[['prima', 'seconda', 'terza', 'quarta']], df_normalized['quinta'])
    risultati_discriminante = model.coef_
    print('Coefficienti del modello di analisi discriminante:', risultati_discriminante)

    # Unisci tutti i risultati in un unico array
    risultati = np.concatenate((risultati_regressione, risultati_pca.flatten(), risultati_serie_temporali, risultati_clustering, risultati_discriminante.flatten()))

    # Mappa i risultati all'intervallo 1-90
    risultati_mappati = mappa_a_intervallo(risultati, np.min(risultati), np.max(risultati), 1, 90)

    # Arrotonda i risultati al numero intero più vicino
    risultati_arrotondati = np.round(risultati_mappati).astype(int)

    # Filtra i risultati per includere solo i numeri interessanti
    risultati_filtrati = risultati_arrotondati[np.isin(risultati_arrotondati, numeri_interessanti)]

    return risultati_filtrati

# Carica l'archivio
df = pd.read_csv('nomearchivioestrazionilottodesiderato.csv')

# Chiedi all'utente di inserire i numeri
numeri_input = input("Inserisci i tuoi numeri, separati da qualsiasi carattere non numerico: ")

# Usa un'espressione regolare per trovare tutti i numeri nell'input
numeri_interessanti = re.findall(r'\d+', numeri_input)


# Converte i numeri da stringhe a interi
numeri_interessanti = [int(numero) for numero in numeri_interessanti]




# Esegui la funzione
risultati_filtrati = analizza_e_filtra(df, numeri_interessanti)
print('Risultati filtrati:', risultati_filtrati)

# Calcola la frequenza di ciascun numero
conteggio_numeri = Counter(risultati_filtrati)

# Seleziona solo i numeri che appaiono più di una volta
numeri_interessanti_frequenti = [numero for numero, conteggio in conteggio_numeri.items() if conteggio > 1]

print('Numeri interessanti frequenti:', numeri_interessanti_frequenti)



# Il formato del file txt archivio deve essere del tipo :

prima,seconda,terza,quarta,quinta
29,52,31,80,7
18,44,29,50,1
29,21,46,84,13
87,48,28,78,4
32,34,24,83,41
1,81,2,36,68
13,62,44,55,12
56,65,2,5,81
64,14,54,83,53
...

ovvero presentare solo i 5 numeri di ogni estrazione della ruota voluta in ordine di uscita decrescente ovvero la data più remota in alto e quella più recente in basso, i numeri devono essere separati dal carattere virgola e la prima riga in alto deve contenere le dicitura di colonna : prima,seconda,terza,quarta,quinta . L'estensione del file deve essere .csv



# Sono contento che la modifica sembri funzionare bene!

# Per quanto riguarda la tua domanda, la ripetizione di alcuni numeri nei risultati filtrati indica che quei numeri sono apparsi più volte nei risultati delle tue analisi. In altre parole, quei numeri sono stati identificati come "interessanti" in più occasioni durante l'esecuzione delle varie tecniche di analisi dei dati sul tuo set di dati.

# I "numeri interessanti frequenti" sono quelli che appaiono più di una volta tra i "numeri interessanti". Questi potrebbero essere considerati particolarmente significativi poiché sono stati identificati come "interessanti" più volte.

# Ricorda, tuttavia, che l'interpretazione di questi numeri dipende dal contesto specifico dei tuoi dati e dalle analisi che stai eseguendo. 😊

+Info, Memorandum & Disclaimer : Di volta in volta metteremo sotto il relativo “nuovo step di analisi eventualmente implementato” il corrispondente nuovo link al relativo pezzo di codice che la gestisce sia, sopratutto, come memorandum personale che per condivisione con gli eventuali interessati al genere di sviluppo di tipo “avanzato” in oggetto. Non prestiamo alcun tipo di assistenza al riguardo e decliniamo ogni tipo di responsabilità per eventuali usi impropri del codice condiviso e/o per ogni tipo di aspettabilità di esiti o vincite da parte dellle analisi condotte ed elaborate dallo stesso.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *