top of page

Commenti del forum

ML apprendimento tabella DB
In Deep Learning
Team I.A. Italia
Python
Python
18 lug 2024
import sqlite3 import pandas as pd from sklearn.compose import ColumnTransformer from sklearn.preprocessing import StandardScaler, OneHotEncoder from sklearn.model_selection import train_test_split from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, Dropout from tensorflow.keras.callbacks import TensorBoard from imblearn.over_sampling import SMOTE def preprocess_data(df): # Gestione dei valori mancanti df.fillna(method='ffill', inplace=True) # Conversione delle date in timestamp df['SCADENZA'] = pd.to_datetime(df['SCADENZA']).astype(int) / 10**9 df['DATA_INVIO_FILE'] = pd.to_datetime(df['DATA_INVIO_FILE']).astype(int) / 10**9 # Separazione delle features e target features = df.drop(columns=['TARGET']) target = df['TARGET'] return features, target def build_preprocessor(numerical_features, categorical_features): preprocessor = ColumnTransformer( transformers=[ ('num', StandardScaler(), numerical_features), ('cat', OneHotEncoder(), categorical_features) ]) return preprocessor def build_model(input_shape): model = Sequential([ Dense(64, activation='relu'), Dropout(0.3), Dense(32, activation='relu'), Dropout(0.3), Dense(1, activation='sigmoid') ]) model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) return model def ML(mode): conn = sqlite3.connect('../MachineLearning.db') query = "SELECT * FROM Dati" # Assuming TARGET is also in this query df = pd.read_sql_query(query, conn) conn.close() numerical_features = ['PERC', 'NETTOSPLIT', 'IMPORTO1', 'IMPORTO2', 'SCADENZA', 'DATA_INVIO_FILE'] categorical_features = ['PORTAF', 'TIPO_CR', 'LAG', 'TIPO_DOC', 'TIPO_FF', 'FACTOR'] features, target = preprocess_data(df) preprocessor = build_preprocessor(numerical_features, categorical_features) X = preprocessor.fit_transform(features) y = target.values # Bilanciamento del dataset smote = SMOTE(random_state=42) X_res, y_res = smote.fit_resample(X, y) # Training e validation split X_train, X_val, y_train, y_val = train_test_split(X_res, y_res, test_size=0.2, random_state=42) if mode == 'train': model = build_model(X_train.shape[1]) log_dir = './logs' tensorboard_callback = TensorBoard(log_dir=log_dir, histogram_freq=1) model.fit(X_train, y_train, epochs=10, batch_size=32, validation_data=(X_val, y_val), callbacks=[tensorboard_callback]) model.save('data/trained_model.h5') print("Addestramento completato. Il modello รจ stato salvato in 'trained_model.h5'.") print(f"TensorBoard logs salvati in: {log_dir}") elif mode == 'predict': model = tf.keras.models.load_model('data/trained_model.h5') X_predict = preprocessor.transform(features) # Assuming predict_df corresponds to some portion of features predictions = model.predict(X_predict) df['PREDICTION'] = (predictions > 0.5).astype(int) df.to_csv('risultati_previsione.csv', index=False) print("Predizione completata. I risultati sono stati salvati in 'risultati_previsione.csv'.") # Usage example: ML('train') or ML('predict')
1
0
ML apprendimento tabella DB
In Deep Learning
Team I.A. Italia
Python
Python
18 lug 2024
Ciao Salvatore! Sono Paolo dalla redazione di IntelligenzaArtificialeItalia.net. Ho dato un'occhiata alla tua situazione e vedo che ci sono un paio di cose che potremmo migliorare insieme per far funzionare al meglio il tuo modello di deep learning. ๐Ÿš€ * Checkup iniziale: Prima di tutto, facciamo un rapido controllo sulla pulizia dei dati. Assicurati che non ci siano valori mancanti o incoerenti, specialmente nelle date convertite in timestamp. Un piccolo errore qui puรฒ rovinare tutto il dataset! * Riduci l'Overfitting: Hai notato un'accuratezza perfetta troppo presto, il che grida overfitting. Potremmo semplificare il modello. Magari inizia con meno neuroni per strato, tipo 64 e 32, e vedi come va. Aggiungi anche Dropout tra gli strati per aiutare a prevenire l'overfitting: fromย tensorflow.keras.layers importย Dropout # Aggiungendo Dropout model.add(Dropout(0.5)) # Dove 0.5 รจ la frazione di input da annullare * Bilancia il Dataset: Se i tuoi dati sono sbilanciati (troppe istanze di una classe rispetto all'altra), il modello potrebbe diventare prevenuto. Usa tecniche di bilanciamento come il SMOTE o prova a pesare le classi nel tuo modello. * Validazione e Metriche: Cambia la tua metrica di successo. Oltre all'accuratezza, considera di utilizzare la precisione, il recall, e l'AUC-ROC per avere un quadro piรน chiaro di come il modello performa su classi diverse. * Cross-Validation: Per assicurarti che il modello sia stabile e generalizzi bene, implementa una cross-validation. Questo evita che il modello si "memorizzi" i tuoi dati di training. * Debugging e Log: Dai un'occhiata ai log di training. Se il modello ha sempre le stesse metriche ad ogni epoch, potrebbe essere un segno che non sta imparando nulla di nuovo. Potrebbe essere utile anche visualizzare i dati in input al modello proprio prima del training per assicurarsi che tutto sia in ordine. * Regolarizzazione: Considera di aggiungere una regolarizzazione L1 o L2 alle tue reti per penalizzare i pesi troppo grandi e ridurre l'overfitting: python Copia codice fromย tensorflow.keras.regularizers importย l2 # Aggiungendo la regolarizzazione L2 model.add(Dense(64, activation='relu', kernel_regularizer=l2(0.01))) Per darci dentro, ecco un esempio di come potresti strutturare il tuo modello con queste modifiche: from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, Dropout from tensorflow.keras.regularizers import l2 model = Sequential([ Dense(64, activation='relu', kernel_regularizer=l2(0.001)), Dropout(0.3), Dense(32, activation='relu', kernel_regularizer=l2(0.001)), Dropout(0.3), Dense(1, activation='sigmoid') ]) model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy', 'AUC']) Questi passaggi dovrebbero aiutarti a ottenere un modello piรน robusto e affidabile. Comunque senza divagarci in chiacchere, ho provato ad aggiungere io per te qualche cosetta, fammi sapere se con questo codice le cose migliorano. E' il file allegato Salvatore.txt Se hai bisogno di ulteriori dettagli o vuoi discutere altri aspetti, sono qui per aiutarti! ๐Ÿ’ช
2
1
Bot con conoscenze specifiche
In Machine Learning
Team I.A. Italia
Python
Python
19 giu 2023
Ciao!๐Ÿค— L'approccio che hai menzionato utilizza la libreria Langchain e il modulo VectorstoreIndexCreator per creare un indice basato su diversi file PDF. Questo approccio puรฒ funzionare, ma ci potrebbero essere alternative che potresti considerare per rendere il tuo bot piรน intelligente e controllato. Puoi creare agente che utilizzi un approccio zero-shot, dove gli fornisci un prompt e gli chiedi di generare una risposta basata sulle informazioni fornite nei documenti. Puoi configurare il prompt in modo che richieda al modello di fornire una risposta solo se l'informazione รจ presente nell'indice dei documenti forniti. Puoi anche impostare la temperatura a 0 per rendere le risposte del modello piรน deterministiche e limitare l'inclusione di informazioni esterne non desiderate. Inoltre, puoi personalizzare ulteriormente il comportamento del tuo bot scrivendo delle regole aggiuntive. Ad esempio, puoi aggiungere una regola che verifichi se l'informazione richiesta รจ presente nell'indice dei documenti e, in caso contrario, il bot puรฒ restituire un messaggio di avviso o richiedere ulteriori informazioni. Ricorda che, nonostante i tuoi sforzi per limitare le risposte del bot alle sole informazioni fornite, l'utilizzo di modelli di linguaggio basati su trasformatori come GPT-3.5 implica una certa capacitร  di generazione di contenuti basati sulle conoscenze acquisite dal modello durante l'addestramento su Internet. Pertanto, รจ possibile che il bot fornisca risposte che vanno oltre i documenti forniti, anche se hai impostato restrizioni come la temperatura a 0. Ecco un esempio di come potresti configurare un agente utilizzando Langchain, lo Zero Shot Agent e il Vectorstore come toolkit, basato sulla documentazione che mi hai fornito: from langchain.embeddings.openai import OpenAIEmbeddings from langchain.vectorstores import Chroma from langchain.text_splitter import CharacterTextSplitter from langchain import OpenAI, VectorDB from langchain.document_loaders import TextLoader from langchain.agents.agent_toolkits import ( create_vectorstore_agent, VectorStoreToolkit, VectorStoreInfo, ) # Carica il tuo documento loader = TextLoader("path_to_your_pdf_file.pdf") documents = loader.load() # Suddividi il testo in parti piรน piccole text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0) texts = text_splitter.split_documents(documents) # Crea gli embeddings embeddings = OpenAIEmbeddings() store = Chroma.from_documents(texts, embeddings, collection_name="your_collection_name") # Crea l'agente llm = OpenAI(temperature=0) # Imposta la temperatura a 0 per limitare la generazione di contenuti non pertinenti vectorstore_info = VectorStoreInfo( name="your_vectorstore_name", description="your_vectorstore_description", vectorstore=store, ) toolkit = VectorStoreToolkit(vectorstore_info=vectorstore_info) agent = create_vectorstore_agent(llm=llm, toolkit=toolkit, verbose=True) In questo esempio, l'agente รจ configurato per utilizzare solo le informazioni nel tuo documento PDF. Se l'agente non trova le informazioni nel tuo documento, non dovrebbe generare una risposta. Tuttavia, potrebbe essere necessario personalizzare ulteriormente l'agente per gestire specificamente i casi in cui non trova le informazioni richieste. Facci sapere se ti รจ stato utile ๐Ÿค—
0
0
Dataset machine learning: quale scegliere?
In Machine Learning
Team I.A. Italia
Python
Python
02 feb 2023
Ciao Alessandro e grazie per aver scritto sul nostro Forum. Allora esistono letteralmente un infinitร  di data set che puoi scegliere e che fanno al tuo caso. Nello specifico ricapitolando ti serve un dataset con una prediction e un tipo di classificazione binaria sul quale devi eseguire cleaning ed esplorazione dei dati, scelta di modello e algoritmo di classificazione, comparazione di due o piรน modelli. Per rimanere nel tema della Psicologia/Medicina ti consigliamo i seguenti set di Dati, alcuni piรน semplici altri piรน complessi : - Quรฌ troverai 130 set di dati riguardanti la psicologia - Previsione introversa vs estroversa 7K risponde a 282 domande sulla personalitร , informazioni tecniche [TE LO CONSIGLIAMO] - Maschi e Femmine Differiscono? Test di empatia-sistematizzazione 13K risposte a 125 domande sulla personalitร , informazioni tecniche - Cosa causa l'alta libido? Scala della compulsivitร  sessuale 3K risponde a 13 domande sulla personalitร , informazioni tecniche - Risultati del test della personalitร  DISC 1K risponde a 42 domande sulla personalitร , informazioni tecniche - Dataset del diabete , Predire l'insorgenza del diabete sulla base di misure diagnostiche - Set di dati (diagnostici) sul cancro al seno nel Wisconsin Prevedi se il cancro รจ benigno o maligno [TE LO CONSIGLIAMO] - Set di dati personali sui costi medici , Previsione assicurativa utilizzando la regressione lineare - Set di dati di previsione dell'ictus 11 caratteristiche cliniche per la previsione di eventi di ictus - Set di dati di previsione dell'insufficienza cardiaca, 11 caratteristiche cliniche per la previsione di eventi di malattie cardiache. [TE LO CONSIGLIAMO] - Repository su GITHUB Diciamo che questi pensiamo sono i dataset con piรน spiegazioni e con molte feautere da analizzare. Se riscontri dei problemi mentre li scarichi non farti problemi, indicaci il set di dati e te lo scarichiamo noi. Invece se vuoi provare con altri set di dati, che non riguardino per forza la psicologia o la medicina, ti segnaliamo DATASET una raccolta di oltre 1500 dataset pronti per essere utilizzati. Facci sapere se possiamo aiutarti in altro ๐Ÿ˜Š
1
0
Da Xml a dataFrame di pandas
In Machine Learning
Team I.A. Italia
Python
Python
20 dic 2020
Grazie per la segnalazione abbiamo risolto.
Da Xml a dataFrame di pandas
In Machine Learning
Team I.A. Italia
Python
Python
20 dic 2020
Risposta migliore
XML รจ un linguaggio di markup utilizzato per rappresentare e distribuire strutture di dati che possono essere spesso difficili da creare utilizzando formati tabulari piรน standard. Fondamentalmente, il formato XML รจ simile all'HTML (che รจ un altro linguaggio di markup, appunto), in quanto i dati sono organizzati in elementi, che definiscono il tipo di informazioni esposte, e ogni elemento contiene il valore effettivo sotto forma di contenuto o attributi. La pagina XML su Wikipedia offre una n visione completa di tutti i dettagli e aspetti tecnici di questo formato, ma i concetti chiave sono semplici. Ogni informazione รจ delimitata da un tag specifico, come questo: john@mail.com A 16 alice@mail.com B 17 bob@mail.com < / email> C 16 hannah@mail.com A 17 In questo esempio, ogni studente รจ rappresentato da un elemento, che ha un nameattributo contenente il nome di uno studente specifico. Ciascuno di questi elementi ha quindi sottoelementi definiti dai tag , e ; tra questi tag รจ presente il contenuto effettivo dei dati riferiti allo studente dato. Supponiamo che questi dati vengano salvati in un file XML chiamato "students.xml". Possiamo pensare a questa struttura come a un DataFrame panda in cui ogni studente rappresenta un'osservazione, con il suo nameattributo che รจ l'identificatore principale e i sottoelementi sono altre caratteristiche dell'osservazione. Una rappresentazione tabulare di questi dati sarebbe come questa: Quindi vogliamo trovare un modo per convertire i dati strutturati in XML in una tabella piรน funzionale. Data la struttura dei file XML, possiamo rappresentarli come un albero, e questo รจ l'approccio utilizzato dal modulo xml.etree.ElementTree Python. L'analisi del nostro file "students.xml" inizia dalla radice dell'albero, ovvero l' elemento, che contiene l'intera struttura dati. import xml.etree.ElementTree as et xtree = et.parse("students.xml") xroot = xtree.getroot() Ora possiamo iterare attraverso ogni nodo dell'albero, il che significa che otterremo ogni elemento studente e prenderemo il suo nameattributo e tutti i suoi sottoelementi per costruire il nostro dataframe. for node in xroot: s_name = node.attrib.get("name") s_mail = node.find("email").text s_grade = node.find("grade").text s_age = node.find("age").text Per ottenere l' nameattributo utilizziamo la attrib.get()funzione, mentre il contenuto testuale di ogni elemento puรฒ essere recuperato utilizzando la find()funzione dei nodi. Ogni iterazione restituirร  un set di dati che puรฒ essere pensato come un'osservazione in un DataFrame panda; possiamo costruire questa procedura come segue: import pandas as pd import xml.etree.ElementTree as et xtree = et.parse("students.xml") xroot = xtree.getroot() df_cols = ["name", "email", "grade", "age"] rows = [] for node in xroot: s_name = node.attrib.get("name") s_mail = node.find("email").text if node is not None else None s_grade = node.find("grade").text if node is not None else None s_age = node.find("age").text if node is not None else None rows.append({"name": s_name, "email": s_mail, "grade": s_grade, "age": s_age}) out_df = pd.DataFrame(rows, columns = df_cols) Lo svantaggio di questo approccio รจ che devi conoscere in anticipo la struttura del file XML e devi codificare i nomi delle colonne di conseguenza. Possiamo provare a convertire questo codice in una funzione piรน utile e versatile, senza dover codificare alcun valore: import pandas as pd import xml.etree.ElementTree as et def parse_XML (xml_file, df_cols): "" "Analizza il file XML di input e memorizza il risultato in un DataFrame panda con le colonne indicate. Il primo elemento di df_cols dovrebbe essere la variabile identificatore , che รจ un attributo di ogni elemento del nodo nei dati XML; altre caratteristiche verranno analizzate dal contenuto di testo di ogni sottoelemento. "" " xtree = et.parse(xml_file) xroot = xtree.getroot() rows = [] for node in xroot: res = [] res.append(node.attrib.get(df_cols[0])) for el in df_cols[1:]: if node is not None and node.find(el) is not None: res.append(node.find(el).text) else: res.append(None) rows.append({df_cols[i]: res[i] for i, _ in enumerate(df_cols)}) out_df = pd.DataFrame(rows, columns=df_cols) return out_df Un pezzo di codice interessante รจ la comprensione dei dettami in: {df_cols [i]: res [i] for i, _ in enumerate (df_cols)} dove viene creato un dizionario nel nome della colonna del modulo: il valore del nodo e aggiunto all'elenco delle righe. Questi verranno infine utilizzati per creare il dataframe completo. Utilizziamo ora la funzione parse_XML("students.xml", ["name", "email", "grade", "age"]) Questa รจ un'implementazione piรน efficiente della funzione di analisi XML, sebbene abbiamo ancora bisogno di conoscere la struttura di base del documento XML di input che vogliamo analizzare. Grazie per aver fatto qui la tua domanda, fammi sapere se funziona.
1
1
Forum Comments: Members_Page

Team I.A. Italia

Amministratore
Python
Creatore
Datasets
Importare File Excel
Importare File Csv
Importare pagine HTM
Scatterplot Python
LinePlot Python
Benvenuto ๐Ÿง ๐Ÿค–
+4
Altre azioni
bottom of page