Risultati Ricerca Intelligenza Artificiale Italia
452 risultati trovati per "intelligenza-artificlae"
- Elaborazione dei dati in tempo reale
Oggi, tuttavia, gran parte dell'elaborazione dei dati viene eseguita utilizzando algoritmi di intelligenza artificiale e machine learning (ML). Elaborazione: i dati grezzi vengono elaborati e manipolati utilizzando l'intelligenza artificiale (AI Questo è anche chiamato business intelligence o intelligence operativa.
- Cos'è la Statistica e che Correlazione c'è con il Machine Learning ?
preliminare primitiva come si può vedere in questa citazione dal ampiamente letto " Programmazione dell'Intelligenza
- Machine Learning nel Trading usando NEURAL NETWORK-PROPHET
le capacità di calcolo delle macchine siano grado di emulare il ragionamento umano; é chiamata AGI, Artificial General Intelligence. Ricordiamo che alla base dell’intelligenza artificiale c’é l’idea di trovare dei pattern storici semplicemente possiamo affermare che l’algoritmo pur analizzando bene i dati e le correlazioni, non comprende in maniera intelligente Da qualche anno lavora a sistemi di trading supportati da teorie sui Big Data e Intelligenza Artificiale
- Come utilizzare ChatGPT per il marketing nelle piccole e medie imprese
Google o Wikipedia, ma diversa, di cui parleremo tra poco) che si presenta sotto forma di un chatbot di intelligenza artificiale (AI). Sebbene sia una tecnologia avanzata, è nelle sue fasi iniziali e come qualsiasi computer, strumento di intelligenza artificiale o apprendimento automatico tecnologia, non viene fornito con una garanzia del 100% di accuratezza Modi per utilizzare ChatGPT per il marketing L'uso dell'intelligenza artificiale nel marketing , anche
- Prevedere i tempi di consegna con python e il deep learning
La capacità di prevedere i tempi di consegna è cruciale per molti settori, dall'e-commerce alla logistica. Questo perché conoscere in anticipo i tempi di consegna permette di gestire al meglio le risorse, sia in termini di personale che di mezzi di trasporto, e di fornire un servizio efficiente e puntuale ai clienti. In questo articolo, vedremo come utilizzare Python e il deep learning per sviluppare un modello in grado di prevedere i tempi di consegna con un'elevata accuratezza. Attraverso l'utilizzo di tecniche di data preprocessing, costruzione del modello e addestramento, mostreremo come è possibile ottenere risultati promettenti utilizzando questo approccio. I servizi di consegna di cibo come Zomato e Swiggy devono mostrare il tempo preciso necessario per consegnare il tuo ordine per mantenere la trasparenza con i loro clienti. Queste aziende utilizzano algoritmi di Machine Learning o Deep Learning per prevedere i tempi di consegna del cibo in base a quanto tempo i partner di consegna hanno impiegato per la stessa distanza in passato. Quindi, se vuoi imparare a utilizzare l'apprendimento automatico per la previsione dei tempi di consegna del cibo, questo articolo fa per te. Questo articolo ti illustrerà la previsione dei tempi di consegna del cibo con il Deep Learning utilizzando Python. Previsione dei tempi di consegna con Python Per prevedere il tempo di consegna del cibo in tempo reale, dobbiamo calcolare la distanza tra il punto di preparazione del cibo e il punto di consumo del cibo. Dopo aver trovato la distanza tra il ristorante e i luoghi di consegna, dobbiamo trovare le relazioni tra il tempo impiegato dai partner di consegna per consegnare il cibo in passato per la stessa distanza. Quindi, per questa attività, abbiamo bisogno di un set di dati contenente dati sul tempo impiegato dai corrieri per consegnare il cibo dal ristorante al luogo di consegna. Ho trovato un set di dati ideale con tutte le funzionalità per questa attività. È possibile scaricare il set di dati da qui . Nella sezione seguente, ti illustrerò l'attività di previsione dei tempi di consegna del cibo con l'apprendimento prodondo utilizzando Python. Se non ti va di seguire il tutorial perchè già sei esperto puoi passare direttamente a scaricare il progetto e i dati : Clicca qui per scaricare il progetto finito. Previsione dei tempi di consegna del cibo utilizzando Python Inizierò l'attività di previsione dei tempi di consegna del cibo importando le librerie Python necessarie e il set di dati : #importiamlo le librerie import pandas as pd import numpy as np import plotly.express as px #leggiamo il dataset data = pd.read_csv("deliverytime.txt") print(data.head()) Output : ID Delivery_person_ID Delivery_person_Age Delivery_person_Ratings \ 0 4607 INDORES13DEL02 37 4.9 1 B379 BANGRES18DEL02 34 4.5 2 5D6D BANGRES19DEL01 23 4.4 3 7A6A COIMBRES13DEL02 38 4.7 4 70A2 CHENRES12DEL01 32 4.6 Restaurant_latitude Restaurant_longitude Delivery_location_latitude \ 0 22,745049 75,892471 22,765049 1 12.913041 77.683237 13.043041 2 12,914264 77,678400 12,924264 3 11.003669 76.976494 11.053669 4 12.972793 80.249982 13.012793 Luogo_di_consegna_longitudine Tipo_di_ordine Tipo_di_veicolo Tempo_impiegato(min) 0 75.912471 Snack moto 24 1 77.813237 Monopattino snack 33 2 77.688400 Bevande moto 26 3 77.026494 Buffet moto 21 4 80.289982 Monopattino snack 30 Diamo un'occhiata agli approfondimenti della colonna prima di andare avanti: #stampiamo le info data.info() Output : RangeIndex: 45593 entries, 0 to 45592 Data columns (total 11 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 ID 45593 non-null object 1 Delivery_person_ID 45593 non-null object 2 Delivery_person_Age 45593 non-null int64 3 Delivery_person_Ratings 45593 non-null float64 4 Restaurant_latitude 45593 non-null float64 5 Restaurant_longitude 45593 non-null float64 6 Delivery_location_latitude 45593 non-null float64 7 Delivery_location_longitude 45593 non-null float64 8 Type_of_order 45593 non-null object 9 Type_of_vehicle 45593 non-null object 10 Time_taken(min) 45593 non-null int64 dtypes: float64(5), int64(2), object(4) memory usage: 3.8+ MB Ora diamo un'occhiata se questo set di dati contiene o meno valori nulli: #vediamo se questo set di dati contiene o meno valori nulli data.isnull().sum() Output : ID 0 Delivery_person_ID 0 Delivery_person_Age 0 Delivery_person_Ratings 0 Restaurant_latitude 0 Restaurant_longitude 0 Delivery_location_latitude 0 Delivery_location_longitude 0 Type_of_order 0 Type_of_vehicle 0 Time_taken(min) 0 dtype: int64 Il set di dati non ha valori Null. Andiamo oltre! Calcolo della distanza tra latitudine e longitudine con python Il set di dati non ha alcuna funzionalità che mostri la differenza tra il ristorante e il luogo di consegna. Tutto quello che abbiamo sono i punti di latitudine e longitudine del ristorante e il luogo di consegna. Possiamo usare la formula haversine per calcolare la distanza tra due posizioni in base alle loro latitudini e longitudini. Di seguito è riportato come possiamo trovare la distanza tra il ristorante e il luogo di consegna in base alle loro latitudini e longitudini utilizzando la formula haversine: #raggio terra in km R = 6371 # Converte i gradi in radianti def deg_to_rad(degrees): return degrees * (np.pi/180) # Funzione per calcolare la distanza tra due punti usando la haversine formula def distcalculate(lat1, lon1, lat2, lon2): d_lat = deg_to_rad(lat2-lat1) d_lon = deg_to_rad(lon2-lon1) a = np.sin(d_lat/2)**2 + np.cos(deg_to_rad(lat1)) * np.cos(deg_to_rad(lat2)) * np.sin(d_lon/2)**2 c = 2 * np.arctan2(np.sqrt(a), np.sqrt(1-a)) return R * c # Calcoliamo la distanza per ogni coppiaa di punti data['distance'] = np.nan for i in range(len(data)): data.loc[i, 'distance'] = distcalculate(data.loc[i, 'Restaurant_latitude'], data.loc[i, 'Restaurant_longitude'], data.loc[i, 'Delivery_location_latitude'], data.loc[i, 'Delivery_location_longitude']) Ora abbiamo calcolato la distanza tra il ristorante e il luogo di consegna. Abbiamo anche aggiunto una nuova funzionalità nel set di dati come distanza. Diamo un'occhiata di nuovo al set di dati: print(data.head()) Oputput: ID Delivery_person_ID Delivery_person_Age Delivery_person_Ratings \ 0 4607 INDORES13DEL02 37 4.9 1 B379 BANGRES18DEL02 34 4.5 2 5D6D BANGRES19DEL01 23 4.4 3 7A6A COIMBRES13DEL02 38 4.7 4 70A2 CHENRES12DEL01 32 4.6 Restaurant_latitude Restaurant_longitude Delivery_location_latitude \ 0 22.745049 75.892471 22.765049 1 12.913041 77.683237 13.043041 2 12.914264 77.678400 12.924264 3 11.003669 76.976494 11.053669 4 12.972793 80.249982 13.012793 Delivery_location_longitude Type_of_order Type_of_vehicle Time_taken(min) \ 0 75.912471 Snack motorcycle 24 1 77.813237 Snack scooter 33 2 77.688400 Drinks motorcycle 26 3 77.026494 Buffet motorcycle 21 4 80.289982 Snack scooter 30 distance 0 3.025149 1 20.183530 2 1.552758 3 7.790401 4 6.210138 Esplorazione dei dati Ora esploriamo i dati per trovare le relazioni tra le caratteristiche. Inizierò osservando la relazione tra la distanza e il tempo impiegato per consegnare il cibo: figure = px.scatter(data_frame = data, x="distance", y="Time_taken(min)", size="Time_taken(min)", trendline="ols", title = "Relationship Between Distance and Time Taken") figure.show() Esiste una relazione coerente tra il tempo impiegato e la distanza percorsa per consegnare il cibo. Significa che la maggior parte dei partner di consegna consegna il cibo entro 25-30 minuti, indipendentemente dalla distanza. Ora diamo un'occhiata al rapporto tra il tempo impiegato per consegnare il cibo e l'età del partner di consegna: figure = px.scatter(data_frame = data, x="Delivery_person_Age", y="Time_taken(min)", size="Time_taken(min)", color = "distance", trendline="ols", title = "Relationship Between Time Taken and Age") figure.show() Esiste una relazione lineare tra il tempo impiegato per consegnare il cibo e l'età del partner di consegna. Significa che i giovani partner di consegna impiegano meno tempo per consegnare il cibo rispetto ai partner più anziani. Ora diamo un'occhiata al rapporto tra il tempo impiegato per consegnare il cibo e le valutazioni del partner di consegna: figure = px.scatter(data_frame = data, x="Delivery_person_Ratings", y="Time_taken(min)", size="Time_taken(min)", color = "distance", trendline="ols", title = "Relationship Between Time Taken and Ratings") figure.show() Esiste una relazione lineare inversa tra il tempo impiegato per consegnare il cibo e le valutazioni del partner di consegna. Significa che i partner di consegna con valutazioni più elevate impiegano meno tempo a consegnare il cibo rispetto ai partner con valutazioni basse. Ora diamo un'occhiata se il tipo di cibo ordinato dal cliente e il tipo di veicolo utilizzato dal partner di consegna influisce o meno sui tempi di consegna: fig = px.box(data, x="Type_of_vehicle", y="Time_taken(min)", color="Type_of_order") fig.show() Non c'è molta differenza tra il tempo impiegato dai corrieri a seconda del veicolo che stanno guidando e il tipo di cibo che stanno consegnando. Quindi le caratteristiche che contribuiscono maggiormente ai tempi di consegna del cibo in base alla nostra analisi sono: età del partner di consegna valutazioni del partner di consegna distanza tra il ristorante e il luogo di consegna Nella sezione seguente, ti illustrerò come addestrare un modello di Machine Learning per la previsione dei tempi di consegna del cibo. Quindi le caratteristiche che contribuiscono maggiormente ai tempi di consegna del cibo in base alla nostra analisi sono: età del partner di consegna valutazioni del partner di consegna distanza tra il ristorante e il luogo di consegna Nella sezione seguente, ti illustrerò come addestrare un modello di Machine Learning per la previsione dei tempi di consegna del cibo. Modello di previsione dei tempi di consegna del cibo Ora addestriamo un modello di Machine Learning utilizzando un modello di rete neurale LSTM per l'attività di previsione del tempo di consegna del cibo: # dividiamo i dati from sklearn.model_selection import train_test_split x = np.array(data[["Delivery_person_Age", "Delivery_person_Ratings", "distance"]]) y = np.array(data[["Time_taken(min)"]]) xtrain, xtest, ytrain, ytest = train_test_split(x, y, test_size=0.10, random_state=42) # creiamo un LSTM neural network model from keras.models import Sequential from keras.layers import Dense, LSTM model = Sequential() model.add(LSTM(128, return_sequences=True, input_shape= (xtrain.shape[1], 1))) model.add(LSTM(64, return_sequences=False)) model.add(Dense(25)) model.add(Dense(1)) model.summary() Oputput: Modello: "sequenziale" _________________________________________________________________ Livello (tipo) Output Shape Param # =================================================== =============== lstm (LSTM) (Nessuno, 3, 128) 66560 lstm_1 (LSTM) (Nessuno, 64) 49408 denso (Denso) (Nessuno, 25) 1625 dense_1 (Dense) (Nessuno, 1) 26 =================================================== =============== Parametri totali: 117.619 Parametri addestrabili: 117.619 Parametri non addestrabili: 0 Penultimo passaggio, alleniamo il modello con queste linee di codice : # Alleniamo il modello model.compile(optimizer='adam', loss='mean_squared_error') model.fit(xtrain, ytrain, batch_size=1, epochs=9) l'output sarà questo : Epoch 1/9 41033/41033 [==============================] - 188s 4ms/step - loss: 68.9068 Epoch 2/9 41033/41033 [==============================] - 183s 4ms/step - loss: 64.1141 Epoch 3/9 41033/41033 [==============================] - 177s 4ms/step - loss: 61.7114 Epoch 4/9 41033/41033 [==============================] - 178s 4ms/step - loss: 60.5743 Epoch 5/9 41033/41033 [==============================] - 177s 4ms/step - loss: 59.7754 Epoch 6/9 41033/41033 [==============================] - 182s 4ms/step - loss: 59.5807 Epoch 7/9 41033/41033 [==============================] - 177s 4ms/step - loss: 59.0811 Epoch 8/9 41033/41033 [==============================] - 174s 4ms/step - loss: 59.3632 Epoch 9/9 41033/41033 [==============================] - 161s 4ms/step - loss: 59.2885 Ora testiamo le prestazioni del nostro modello fornendo input per prevedere il tempo di consegna del cibo: #divertiti a fare previsioni print("Food Delivery Time Prediction") a = int(input("Età del Delivery Partner: ")) b = float(input("Voto della precedente consegna: ")) c = int(input("Distanza totale: ")) features = np.array([[a, b, c]]) print("Tempo previsto dal modello da aspettare in minuti = ", model.predict(features)) l'output sarà questo : Food Delivery Time Prediction Età del Delivery Partner: 28 Voto della precedente consegna: 2.8 Distanza totale: 5 1/1 [==============================] - 1s 782ms/step Tempo previsto dal modello da aspettare in minuti = [[32.381138]] Quindi è così che puoi utilizzare Deep Learning per l'attività di previsione dei tempi di consegna del cibo utilizzando il linguaggio di programmazione Python. Riepilogo Per prevedere il tempo di consegna del cibo in tempo reale, è necessario calcolare la distanza tra il punto di preparazione del cibo e il punto di consumo del cibo. Dopo aver trovato la distanza tra il ristorante e i luoghi di consegna, è necessario trovare le relazioni tra il tempo impiegato dai corrieri a consegnare il cibo in passato per la stessa distanza. Naturalmente questo si limita ad essere un semplice esempio. Per renderlo più realistico si potrebbe collegare alle api di google maps per aggiungere dati come il traffico, il numero di strade o percorsi disponibili, la velocità media percorsa in quelle strade e molto altro. Se ti va di estendere il progetto o di scaricarlo clica il bottone qui sotto:
- Cos'è la prompt engineering o ingegneria dei prompt ?
Alex Shoop, un ingegnere di DataRobot ed esperto di progettazione di sistemi di intelligenza artificiale Il prompt non era una funzionalità sviluppata dagli esperti di intelligenza artificiale.
- Prevedere il traffico di un sito web utilizzando Python
Le previsioni possono offrire un grande valore in SEO. Prevedere il traffico su un sito Web durante un determinato periodo è uno dei migliori casi d'uso della previsione di serie temporali. Se vuoi imparare a prevedere il traffico su un sito web, questo articolo è per te. In questo articolo, ti guiderò attraverso l'attività di previsione del traffico del sito Web utilizzando Python. Allora perché prevedere il traffico di un sito web utilizzando Python? Per rispondere a una domanda con una domanda, perché non dovresti farlo? Queste tecniche sono state a lungo utilizzate nella finanza per i prezzi delle azioni, ad esempio, e in altri campi. Perché la SEO dovrebbe essere diversa? Il traffico web è fondamentalmente il numero di sessioni in un dato intervallo di tempo, e varia molto rispetto a che ora del giorno è, che giorno della settimana è e così via, e quanto traffico web della piattaforma può resistere dipende dalle dimensioni dei server che supportano la piattaforma. Se il traffico è superiore a quello che i server possono gestire, il sito Web potrebbe mostrare questo errore 404, che è qualcosa che non vogliamo che accada. Farà andare via i visitatori. Previsione del traffico del sito Web utilizzando Python Il set di dati che sto utilizzando per la previsione del traffico del sito Web viene raccolto dai dati sul traffico giornaliero di intelligenzaartificialeitalia.net . Ricorda che puoi semplicemente scaricare i dati del tuo sito web andando su : https://search.google.com/search-console?hl=IT e cliccare in alto a destra su "ESPORTA": una volta fatto ciò vi troverete una cartella .zip contenente i seguenti file : A noi interesserà solo Date.csv Ora iniziamo con l'attività di previsione del traffico del sito Web importando le librerie Python necessarie e il set di dati: import pandas as pd import matplotlib.pyplot as plt import plotly.express as px import plotly.graph_objects as go from statsmodels.tsa.seasonal import seasonal_decompose from statsmodels.graphics.tsaplots import plot_pacf from statsmodels.tsa.arima_model import ARIMA import statsmodels.api as sm data = pd.read_csv("Date.csv") print(data.head()) Output : Data Clic 0 2022-10-08 **** 1 2022-10-07 ***** 2 2022-10-06 ***** 3 2022-10-05 ***** 4 2022-10-04 ***** Il set di dati contiene due colonne, data e traffico. Prima di andare avanti, convertirò la colonna Date nel tipo di dati Datetime: data["Data"] = pd.to_datetime(data["Data"], format="%Y-%m-%d") print(data.info()) Output : RangeIndex: 486 entries, 0 to 485 Data columns (total 2 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Data 486 non-null datetime64[ns] 1 Clic 486 non-null object dtypes: datetime64[ns](1), object(1) memory usage: 7.7+ KB None Inizialmente la colonna Datetime era un oggetto, quindi l'ho convertita in una colonna Datetime. Ora diamo un'occhiata al traffico giornaliero del sito web: plt.style.use('fivethirtyeight') plt.figure(figsize=(15, 10)) plt.plot(data["Data"], data["Clic"]) plt.title("traffico giornaliero intelligenzaartificialeitalia.net") plt.show() Output : I dati sul traffico del nostro sito Web sono stagionali perché il traffico sul sito Web aumenta durante i giorni feriali e diminuisce durante i fine settimana. È importante sapere se il set di dati è stagionale o meno mentre si lavora sul problema della previsione delle serie temporali. Di seguito è riportato come possiamo dare un'occhiata se il nostro set di dati è stazionario o stagionale: Userò il modello stagionale ARIMA (SARIMA) per prevedere il traffico sul sito web. Prima di utilizzare il modello SARIMA, è necessario trovare i valori p, d e q. Poiché i dati non sono stazionari, il valore di d è 1. Per trovare i valori di p e q, possiamo utilizzare i grafici di autocorrelazione e autocorrelazione parziale: pd.plotting.autocorrelation_plot(data["Clic"]) plot_pacf(data["Clic"], lags = 100) Output : Ora ecco come possiamo addestrare un modello SARIMA per il compito di previsione del traffico del sito web: p, d, q = 5, 1, 2 model=sm.tsa.statespace.SARIMAX(data['Clic'], order=(p, d, q), seasonal_order=(p, d, q, 12)) model=model.fit() print(model.summary()) Output : SARIMAX Results ========================================================================================== Dep. Variable: Clic No. Observations: 486 Model: SARIMAX(5, 1, 2)x(5, 1, 2, 16) Log Likelihood -2750.823 Date: Mon, 10 Oct 2022 AIC 5531.646 Time: 15:59:06 BIC 5593.905 Sample: 0 HQIC 5556.143 - 486 Covariance Type: opg ============================================================================== coef std err z P>|z| [0.025 0.975] ------------------------------------------------------------------------------ ar.L1 0.2189 0.078 2.795 0.005 0.065 0.372 ar.L2 -0.6501 0.065 -10.061 0.000 -0.777 -0.523 ar.L3 -0.3116 0.077 -4.047 0.000 -0.462 -0.161 ar.L4 -0.3608 0.058 -6.238 0.000 -0.474 -0.247 ar.L5 -0.4415 0.077 -5.768 0.000 -0.592 -0.292 ma.L1 -0.9748 0.073 -13.360 0.000 -1.118 -0.832 ma.L2 0.7034 0.066 10.614 0.000 0.574 0.833 ar.S.L16 -1.9088 1.075 -1.776 0.076 -4.015 0.198 ar.S.L32 -1.8938 1.655 -1.144 0.253 -5.138 1.350 ar.S.L48 -1.0791 1.073 -1.005 0.315 -3.183 1.024 ar.S.L64 -0.4224 0.562 -0.751 0.452 -1.525 0.680 ar.S.L80 -0.0785 0.226 -0.347 0.729 -0.522 0.365 ma.S.L16 1.1405 1.076 1.060 0.289 -0.969 3.250 ma.S.L32 0.6541 0.888 0.736 0.462 -1.087 2.395 sigma2 1.049e+04 936.123 11.206 0.000 8655.763 1.23e+04 =================================================================================== Ljung-Box (L1) (Q): 0.14 Jarque-Bera (JB): 21.38 Prob(Q): 0.71 Prob(JB): 0.00 Heteroskedasticity (H): 9.08 Skew: 0.07 Prob(H) (two-sided): 0.00 Kurtosis: 4.04 =================================================================================== Warnings: [1] Covariance matrix calculated using the outer product of gradients (complex-step). Ora prevediamo il traffico sul sito web per i prossimi 50 giorni: predictions = model.predict(len(data), len(data)+50) print(predictions) Ecco come possiamo vedere graficamente le previsioni: data["Clic"].plot(legend=True, label="Training Data", figsize=(15, 10)) predictions.plot(legend=True, label="Predictions") Output : Riepilogo su come Prevedere il traffico di un sito web utilizzando Python Quindi è così che puoi prevedere il traffico del sito Web per un determinato periodo. La previsione del traffico del sito Web è una delle migliori idee per progetti di data science che puoi menzionare nel tuo curriculum. Spero che questo articolo ti sia stato utile per imparare la previsione del traffico del sito web usando il linguaggio di programmazione Python. Sentiti libero di porre domande preziose nella sezione commenti qui sotto.
- Addestrare e Monitorare più modelli di machine learning insieme
Quando si lavora a un progetto di machine learning si possono incontrare tantissimi problemi. Soprattutto quando dobbiamo andare a selezionare il modello... Però i data scientist più navigati sanno che può capitare che un modello che inizialmente sembrava preformare meglio degli altri nel lungo periodo può essere battuto da un altro. Ma come fare ad allenare e monitorare più di un modello insieme ? Oggi parleremo proprio di questo. Vedremo praticamente ( con il codice ) come allenare e monitorare le prestazioni di due modelli allenati su uno stesso dataset ! E ti mostrerò quanto è semplice. introduzione , perchè Addestrare e Monitorare più modelli di machine learning insieme ? È possibile che ogni modello abbia caratteristiche o parametri unici. La valutazione e lo sfruttamento di questi modelli senza adeguati strumenti di monitoraggio delle prestazioni e di controllo della versione del modello diventa complicato. Anche condividere questi modelli con il resto del team per i test è impegnativo. Se abbiamo uno strumento che possiamo usare per tenere traccia dei nostri modelli, diventa più conveniente. Una piattaforma che semplifica la collaborazione tra i team per lo sviluppo di pipeline di machine learning automatizzate efficaci. In questo articolo impareremo sull'apprendimento automatico collaborativo e su come addestrare, tracciare e condividere i nostri modelli di apprendimento automatico utilizzando una piattaforma chiamata "Layer" Procedure consigliate da ricordare mentre si lavora su un progetto ML in un team. Archiviazione centralizzata dei dati: è necessario un archivio centralizzato dei dati a cui un membro del team possa accedere per salvare e utilizzare il set di dati per il progetto. Per risparmiare tempo nell'esecuzione dell'intero processo di pulizia per gli altri membri del team, tutti i dati puliti e preelaborati devono essere salvati in un'unica posizione. Convalida dei dati: le proprietà statistiche dei dati possono variare nel tempo man mano che vengono aggiunti sempre più campioni. Questo è fondamentale poiché può influire sulla precisione del modello nel tempo. Accessibilità del modello: il modello addestrato deve essere archiviato da qualche parte per essere caricato durante la creazione di previsioni. Dovrebbe essere utile per altri membri del team da utilizzare per la sperimentazione nei loro progetti. Monitoraggio del modello: come menzionato nella convalida dei dati, le proprietà dei dati possono cambiare nel tempo, influenzando l'accuratezza del modello. Quindi le prestazioni del modello dovrebbero essere monitorate continuamente per rilevare il degrado delle sue prestazioni. Versioning del modello: durante l'addestramento del modello, è possibile utilizzare funzionalità, modelli o iperparametri diversi per creare modelli diversi. Diventa quindi fondamentale tracciare questi modelli per misurarne le prestazioni e migliorarne l'accessibilità a chi li utilizza. Cos'è Layer e perchè ci aiuta a Addestrare e Monitorare più modelli di machine learning insieme? Layer è una piattaforma per la creazione di pipeline di machine learning a livello di produzione. Dopo aver caricato i nostri dati e il nostro modello su questa piattaforma, possiamo facilmente addestrare e riqualificare i nostri modelli. Supporta perfettamente il controllo della versione del modello e il monitoraggio delle prestazioni. Possiamo condividere dati e modelli, rendendola una semplice piattaforma di machine learning collaborativa. I membri del team possono rivedere e valutare i cicli di sviluppo del modello dei loro colleghi utilizzando il controllo delle versioni del modello. A causa della mancanza di coordinamento, i team spesso trascorrono del tempo a svolgere lavori ridondanti. Layer funziona come un repository centrale per dati e modelli, consentendo ai membri del team di accedere ai dati utilizzati nel processo senza doverli preelaborare nuovamente, riducendo gli sforzi ripetitivi. Il controllo automatico della versione consente di tornare rapidamente alle versioni precedenti del modello e ricreare i risultati acquisiti in precedenza. La cosa meravigliosa di Layer è che non dobbiamo modificare i nostri attuali metodi o piattaforme di programmazione. Possiamo usare le capacità di Layer con poche righe di codice. Addestrare e Monitorare più modelli di machine learning insieme con Python e Layer Utilizzeremo il set di dati sulla qualità dell'acqua per addestrare un modello di classificazione per sondare la potabilità dell'acqua utilizzando fattori come pH, durezza e altre proprietà chimiche nel nostro progetto di apprendimento automatico. per scaricare il set di dati clicca qui o l'immagine e segui i passaggi nella foto quì sotto Durante la riqualificazione del nostro modello, cambieremo alcuni parametri. Nella maggior parte dei casi, le versioni precedenti del modello vengono perse durante questa procedura. Tuttavia, in questo caso, utilizzeremo la piattaforma Layer per facilitare il controllo della versione del modello e confrontare le prestazioni di diverse versioni del modello. Per installare Layer, digita questo codice sul terminale !pip install -U layer -q Registrati e accedi è GRATIS Layer richiede prima la registrazione e l'accesso. Quando si esegue il codice seguente, verrà visualizzato un messaggio per incollare una chiave e verrà visualizzato anche il collegamento alla chiave. Copia e incolla l'URL nel tuo browser, quindi accedi al tuo account Layer per trovare la chiave; copia questa chiave e inseriscila nel prompt. import layer layer.login() Ora crea un nuovo file e copia e incolla il codice ( tutto in un unico file, oppure se utilizzi Jupyter o Coolab copia il codice diviso nelle varie sezioni ) seguendo la spiegazione. Importa le librerie necessarie from layer.decorators import dataset, model,resources from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score import pandas as pd import numpy as np import layer from layer import Dataset Inizializza il tuo progetto di primo livello È ora di iniziare a lavorare sul tuo primo progetto Layer. L'intero progetto può essere trovato su app.layer.ai layer.init("new_project") Carica il set di dati Per caricare i dati nel progetto Layer, utilizzeremo il decoratore @dataset e specificheremo il nome del set di dati e il percorso ad esso utilizzando il decoratore @resources. @dataset("water_dataset") @resources(path="./") def create_dataset(): data = pd.read_csv('water_potability.csv') return data Esegui questo per creare il set di dati nel tuo progetto di livello layer.run([create_dataset]) Puoi navigare all'interno del tuo progetto per accedere al set di dati. Difiniamo e Alleniamo i nostri modelli Alla nostra funzione di training train(), aggiungeremo il decoratore @model per registrarlo con Layer. Per fare ciò, la funzione deve restituire l'oggetto modello. La funzione layer.log() registra tutti i parametri definiti nella dashboard Layer. @model(name='classification_model',dependencies=[Dataset('water_dataset')]) def train(): import seaborn as sns import matplotlib.pyplot as plt from sklearn.metrics import accuracy_score from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay from sklearn.metrics import average_precision_score, roc_auc_score, roc_curve,precision_recall_curve parameters = { "test_size": 0.20, "random_state": 20, "n_estimators": 150 } layer.log(parameters) # load the dataset from layer df = layer.get_dataset("water_dataset").to_pandas() df.dropna(inplace=True) features_x = df.drop(["Potability"], axis=1) target_y = df["Potability"] X_train, X_test, y_train, y_test = train_test_split(features_x, target_y, test_size=parameters["test_size"], random_state=parameters["random_state"]) random_forest = RandomForestClassifier(n_estimators=parameters["n_estimators"]) random_forest.fit(X_train, y_train) y_pred = random_forest.predict(X_test) layer.log({"accuracy":accuracy_score(y_test, y_pred)}) cm = confusion_matrix(y_test, y_pred, labels=random_forest.classes_) disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=random_forest.classes_) disp.plot() layer.log({"Confusion metrics" : plt.gcf()}) probs = random_forest.predict(X_test) # Calculate ROC AUC auc = roc_auc_score(y_test, probs) layer.log({"AUC":f'{auc:.4f}'}) sample_preds = X_test sample_preds["predicted"] = y_pred layer.log({"Sample predictions":sample_preds.head(100)}) return random_forest Per registrare il parametro e caricare il modello addestrato, passare la funzione di training a Layer useremo questa linea di codice. layer.run([train]) Confronto dei risultati dei modelli allenati Apri il progetto Layer lì vedrai i modelli caricati e i set di dati. Tutti i parametri e i grafici che hai registrato saranno lì, insieme alla versione del modello. Ogni volta che si esegue la funzione di training, viene caricata una nuova versione del modello insieme a tutti i parametri registrati. In questo modo è facile confrontare le prestazioni di tutti i modelli e utilizzare la versione precedente. Possiamo confrontare i parametri e i risultati registrati come la dimensione dei dati del test, gli iperparametri, l'accuratezza e il punteggio ROC-AUC. È inoltre possibile visualizzare e confrontare i grafici registrati di diverse versioni del modello. Di seguito vengono mostrate le previsioni di esempio. Scaricare i modelli da Layer Dopo aver formato e caricato il modello sulla piattaforma Layer, è possibile caricare la versione desiderata del modello per fare previsioni. Con l'aiuto di questo codice, possiamo ottenere la versione del modello necessaria dall'app di livello. import layer model = layer.get_model("IAItlia/new_project/models/classification_model:2.1").get_train() Questo oggetto modello può essere un modello normale per eseguire previsioni basate sui dati di input. Conclusione In questo articolo, abbiamo appreso i numerosi problemi che i team possono incontrare nel settore dell'apprendimento automatico durante la collaborazione e la gestione delle versioni del modello. Successivamente, abbiamo visto alcune delle migliori pratiche per lavorare su progetti ML in gruppo. In questo post, abbiamo progettato un progetto Layer che considera tutte le sfide che i team devono affrontare in un progetto ML. Premesse importanti da questo articolo: Abbiamo imparato a utilizzare Layer, una piattaforma ML collaborativa. Abbiamo utilizzato il controllo automatico della versione del modello con l'aiuto di questa piattaforma. Registrando i parametri del modello e i risultati, potremmo confrontare i risultati di diverse versioni del modello.
- Come fare un chat bot robotico
si identificano i/le chabot come macchine virtuali ovvero software che in base a degli algoritmi di “intelligenza Per quanto riguarda alcune applicazioni di intelligenza artificiale, nell’ambito della computer vision A questo punto subentrano le librerie specifiche di Intelligenza artificiale, che, nel caso della computervision La libreria python, per quanto concerne l’intelligenza artificiale è vastissima e permette di arrivare OpenAI GPT-3 è un software di intelligenza artificiale particolarmente efficiente nella produzione automatica
- Come utilizzare GRATIS GPT 4 e ChatGPT PLUS
offrendo agli utenti la possibilità di interagire con un potente assistente di scrittura alimentato dall'intelligenza artificiale. mai desiderato poter confrontare facilmente i modelli di linguaggio naturale offerti dalle aziende di intelligenza artificiale in tutto il mondo?
- Cos'è una matrice di confusione? Spiegazione e implementazione in Python
Una matrice di confusione è uno strumento utile per valutare le prestazioni di un modello di machine learning. È una tabella che mostra il numero di previsioni corrette e errate effettuate dal modello su un set di dati di test e fornisce un riepilogo delle prestazioni del modello. In questo articolo spiegheremo cos'è una matrice di confusione, perché è utile e come implementarla in Python. Indice articolo spiegazione matrice di confusione Introduzione alla matrice di confusione Come leggere una matrice di confusione Interpretazione di una matrice di confusione Implementazione di una matrice di confusione in Python Esempi di utilizzo della matrice di confusione Conclusione Introduzione alla matrice di confusione Innanzitutto, definiamo alcuni termini chiave che verranno utilizzati in tutto l'articolo. Nel contesto dell'apprendimento automatico, un modello è una rappresentazione matematica di un sistema o di un processo che può essere utilizzato per fare previsioni. Il processo di addestramento di un modello implica la fornitura di un set di dati etichettato, in cui ogni esempio nel set di dati ha un risultato o un'etichetta noti. Il modello utilizza queste informazioni per apprendere le relazioni tra le caratteristiche (input) e le etichette (output), quindi applica questa conoscenza per fare previsioni su dati nuovi e invisibili. L'accuratezza delle previsioni di un modello viene in genere valutata utilizzando un set di dati di test, costituito da esempi che non sono stati utilizzati durante l'addestramento. Le previsioni fatte dal modello sul set di dati di test vengono quindi confrontate con le vere etichette e viene utilizzata una matrice di confusione per riepilogare i risultati. La matrice di confusione mostra il numero di veri positivi, veri negativi, falsi positivi e falsi negativi, nonché l'accuratezza complessiva e altre metriche delle prestazioni del modello. Nelle sezioni seguenti, forniremo una spiegazione più dettagliata di ciascuno di questi termini e mostreremo come implementare una matrice di confusione in Python. Come leggere una matrice di confusione? Una matrice di confusione è una tabella che visualizza il numero di previsioni corrette e errate effettuate da un modello su un set di dati di test. Viene in genere utilizzato per valutare le prestazioni di un modello di classificazione binaria, ma può anche essere applicato a attività di classificazione multiclasse. Gli elementi di una matrice di confusione sono: Veri positivi (TP): il numero di esempi che sono stati previsti come positivi (etichetta 1) e sono effettivamente positivi (vera etichetta 1). Veri negativi (TN): il numero di esempi che sono stati previsti come negativi (etichetta 0) e sono effettivamente negativi (vera etichetta 0). Falsi positivi (FP): il numero di esempi previsti come positivi (etichetta 1) ma in realtà negativi (etichetta vera 0). Falsi negativi (FN): il numero di esempi previsti come negativi (etichetta 0) ma in realtà positivi (etichetta vera 1). Per costruire una matrice di confusione, abbiamo prima bisogno di una serie di previsioni fatte da un modello su un set di dati di test, insieme alle vere etichette per quegli esempi. Supponiamo di avere un set di dati di test con 100 esempi e che il modello abbia effettuato le seguenti previsioni: Per calcolare gli elementi della matrice di confusione, possiamo utilizzare le seguenti formule: TP = numero di esempi in cui etichetta vera = 1 e etichetta prevista = 1 TN = numero di esempi in cui etichetta vera = 0 e etichetta prevista = 0 FP = numero di esempi in cui etichetta vera = 0 e etichetta prevista = 1 FN = numero di esempi in cui etichetta vera = 1 e etichetta prevista = 0 Per il nostro esempio, la matrice di confusione sarebbe: Dalla matrice di confusione, possiamo vedere che il modello ha predetto correttamente 63 esempi in cui la vera etichetta era 0 e 30 esempi in cui la vera etichetta era 1. Tuttavia, ha anche prodotto 7 falsi positivi (previsti come 1 ma in realtà 0) e 7 falsi negativi (previsti come 0 ma in realtà 1). Interpretazione di una matrice di confusione Una matrice di confusione fornisce un riepilogo delle previsioni fatte da un modello su un set di dati di test, ma può essere difficile da interpretare e comprendere solo osservando i numeri grezzi. Per rendere i risultati più significativi e utilizzabili, possiamo derivare diverse metriche dalla matrice di confusione che forniscono diverse prospettive sulle prestazioni del modello. Le metriche più comunemente utilizzate derivate da una matrice di confusione sono: Accuratezza: l'accuratezza complessiva del modello, definita come il rapporto tra le previsioni corrette (TP + TN) e il numero totale di previsioni (TP + TN + FP + FN). Indica la proporzione di esempi che sono stati previsti correttamente. Precisione: la precisione del modello, definita come il rapporto tra i veri positivi (TP) e il numero totale di esempi previsti come positivi (TP + FP). Indica la proporzione di esempi previsti come positivi e che sono effettivamente positivi. Richiamo: il richiamo del modello, definito come il rapporto tra i veri positivi (TP) e il numero totale di esempi effettivamente positivi (TP + FN). Indica la proporzione di esempi positivi che sono stati previsti correttamente come positivi. Punteggio F1: il punteggio F1 è una media ponderata della precisione e del richiamo ed è calcolato come 2 * (precisione * richiamo) / (precisione + richiamo). Fornisce un'unica metrica che bilancia sia la precisione che il richiamo. Per interpretare una matrice di confusione, possiamo utilizzare queste metriche per valutare le prestazioni del modello e identificare potenziali aree di miglioramento. Ad esempio, se l'accuratezza del modello è bassa, significa che molte delle previsioni fatte dal modello non sono corrette. In questo caso, potremmo voler indagare sul motivo per cui il modello sta commettendo errori e provare a migliorarne le prestazioni. D'altra parte, se la precisione del modello è bassa, significa che molti degli esempi previsti come positivi sono in realtà negativi. In questo caso, potremmo voler concentrarci sulla riduzione dei falsi positivi, ad esempio regolando la soglia utilizzata per fare previsioni o migliorando le funzionalità utilizzate dal modello. Per illustrare l'uso di queste metriche, supponiamo di avere una matrice di confusione per un modello di classificazione binaria come mostrato di seguito: Per calcolare l'accuratezza del modello, possiamo usare la formula: accuracy = (TP + TN) / (TP + TN + FP + FN) = (30 + 63) / (30 + 63 + 7 + 7) = 0.85 L'accuratezza del modello è 0,85, il che significa che ha effettuato previsioni corrette per l'85% degli esempi nel set di dati di test. Per calcolare la precisione del modello, possiamo usare la formula: precision = TP / (TP + FP) = 30 / (30 + 7) = 0.81 La precisione del modello è 0,81, il che significa che l'81% degli esempi previsti come positivi sono effettivamente positivi. Per calcolare il richiamo del modello, possiamo utilizzare la formula: recall = TP / (TP + FN) = 30 / (30 + 7) = 0.81 Il richiamo del modello è 0,81 questo significa che il modello ha previsto correttamente l'81% degli esempi positivi nel set di dati di test. Per calcolare il punteggio F1 del modello, possiamo utilizzare la formula: f1 score = 2 * (precision * recall) / (precision + recall) = 2 * (0.81 * 0.81) / (0.81 + 0.81) = 0.81 Il punteggio F1 del modello è 0,81, che è la media ponderata della precisione e del richiamo. In conclusione, le metriche derivate da una matrice di confusione possono fornire preziose informazioni sulle prestazioni di un modello di apprendimento automatico e possono essere utilizzate per identificare potenziali aree di miglioramento. Comprendendo i punti di forza e di debolezza di un modello, possiamo prendere decisioni informate su come ottimizzarlo e perfezionarlo per ottenere risultati migliori. Implementare una matrice di confusione con Python Per creare una matrice di confusione in Python, possiamo usare la funzione confusion_matrix() dalla libreria sklearn. Questa funzione accetta come input le etichette vere e le etichette previste per un set di dati e restituisce la matrice di confusione come matrice NumPy. Ecco un esempio di come utilizzare questa funzione per creare una matrice di confusione per un modello di classificazione binaria: from sklearn.metrics import confusion_matrix y_true = [1, 1, 0, 0, 1, 0, 1, 0, 0, 1] y_pred = [1, 0, 0, 0, 1, 0, 1, 0, 1, 1] cm = confusion_matrix(y_true, y_pred) print(cm) L'output di questo codice sarebbe: [[3 2] [1 4]] Puoi provare questo codice copiandolo e incollandolo sul nostre editor python online Questa matrice di confusione mostra che il modello ha previsto correttamente 3 esempi in cui l'etichetta vera era 0 e 4 esempi in cui l'etichetta vera era 1. Tuttavia, ha prodotto anche 2 falsi positivi (previsti come 1 ma in realtà 0) e 1 falso negativo (previsti come come 0 ma in realtà 1). Per visualizzare la matrice di confusione in modo più intuitivo, possiamo utilizzare la libreria matplotlib per rappresentarla come mappa termica. Ecco un esempio di come eseguire questa operazione: import matplotlib.pyplot as plt import seaborn as sns sns.heatmap(cm, annot=True, fmt="d") plt.xlabel("Predicted Label") plt.ylabel("True Label") plt.show() L'output di questo codice sarebbe una mappa termica come questa: | | Predicted Label | |------------|-----------------| | True Label | 0 | 1 | |------------|-----------------| | 0 | 3 | 2 | |------------|-----------------| | 1 | 1 | 4 | Questa heatmap fornisce una visualizzazione chiara e intuitiva della matrice di confusione e semplifica l'interpretazione dei risultati del modello. In conclusione, la libreria sklearn fornisce un modo semplice e conveniente per creare e visualizzare una matrice di confusione per un modello di machine learning in Python. Utilizzando questo strumento, possiamo valutare rapidamente e facilmente le prestazioni di un modello e identificare potenziali aree di miglioramento. Esempi di utilizzo della matrice di confusione Supponiamo che un ospedale stia sviluppando un modello di apprendimento automatico per prevedere se un paziente ha una determinata malattia in base alle cartelle cliniche e ai risultati dei test. L'obiettivo del modello è identificare i pazienti a rischio di malattia, in modo che possano essere trattati precocemente e prevenire la progressione della malattia. Per valutare le prestazioni del modello, l'ospedale raccoglie un set di dati di test di pazienti con stato di malattia noto (positivo o negativo) e utilizza il modello per fare previsioni su questo set di dati. L'ospedale quindi costruisce una matrice di confusione per riassumere i risultati delle previsioni, come mostrato di seguito: Da questa matrice di confusione, l'ospedale può calcolare l'accuratezza, la precisione, il richiamo e il punteggio F1 del modello e utilizzare queste metriche per valutarne le prestazioni. Ad esempio, se l'accuratezza del modello è elevata (ad esempio 0,85), significa che il modello sta effettuando previsioni corrette per la maggior parte dei pazienti nel set di dati del test. Tuttavia, se la precisione del modello è bassa (ad es. 0,81), significa che molti dei pazienti previsti come positivi sono in realtà negativi, il che potrebbe portare a trattamenti non necessari e potenziali danni ai pazienti. Sulla base dei risultati della matrice di confusione, l'ospedale può decidere se il modello è pronto per essere implementato nella clinica o se è necessaria un'ulteriore ottimizzazione e messa a punto. L'ospedale può anche utilizzare la matrice di confusione per identificare potenziali distorsioni o errori nei dati e intraprendere azioni correttive per migliorare le prestazioni del modello. In conclusione, la matrice di confusione è uno strumento prezioso per valutare le prestazioni di un modello di machine learning in uno scenario reale. Analizzando la matrice di confusione, possiamo identificare i punti di forza e di debolezza del modello e prendere decisioni informate su come ottimizzare e migliorare le sue prestazioni. Conclusione e riassunto sulla matrice di confusione In questo articolo, abbiamo discusso il concetto di matrice di confusione e come può essere utilizzata per valutare le prestazioni di un modello di machine learning. Abbiamo spiegato i diversi elementi di una matrice di confusione e mostrato come calcolarli da un insieme di previsioni ed etichette vere. Abbiamo anche discusso le diverse metriche che possono essere derivate da una matrice di confusione e come utilizzarle per interpretare e comprendere i risultati di un modello. Abbiamo anche dimostrato come implementare una matrice di confusione in Python utilizzando la libreria sklearn e come visualizzare i risultati utilizzando matplotlib. Infine, abbiamo fornito alcuni esempi di diversi scenari in cui è possibile applicare una matrice di confusione e mostrato come interpretare i risultati in ciascun caso. In conclusione, la matrice di confusione è uno strumento potente e versatile per valutare le prestazioni di un modello di machine learning. Comprendendo i punti di forza e di debolezza di un modello, possiamo prendere decisioni informate su come ottimizzare e migliorare le sue prestazioni e ottenere risultati migliori nelle applicazioni del mondo reale. Ti ringraziamo per aver dedicato del tempo a leggere il nostro articolo sulla matrice di confusione. Il tuo supporto e feedback sono preziosi per noi e ti saremmo grati se potessi condividere l'articolo con altri che potrebbero essere interessati all'argomento. Grazie!
- La scienza dei dati
sviluppo di tecnologie come motori di raccomandazione, sistemi di personalizzazione e strumenti di intelligenza artificiale (AI) come chatbot e veicoli autonomi. un impatto dannoso su gruppi di persone, ad esempio nel caso di pregiudizi razziali nei sistemi di intelligenza artificiale . I data scientist creano anche strumenti e tecnologie di intelligenza artificiale per l'implementazione
- Migliori tecniche di analisi dei dati
Le diverse tecnichedi analisi dei dati includono descrittiva, esplorativa, inferenziale, predittiva, causale e meccanicistica. Ecco cosa devi sapere su ciascuno di essi. L'analisi dei dati è una disciplina che si occupa di estrarre informazioni dai dati raccolti e di utilizzarle per supportare le decisioni aziendali o per identificare nuove opportunità. Con la crescita esponenziale dei dati generati dalle attività quotidiane, diventa sempre più importante utilizzare tecniche di analisi efficaci per trarre informazioni significative. In questo articolo esploreremo alcune delle migliori tecniche di analisi dei dati disponibili attualmente, comprese l'analisi descrittiva, l'analisi esplorativa, l'analisi inferenziale e l'analisi predittiva. Ti mostreremo come queste tecniche possono essere utilizzate per risolvere problemi aziendali specifici e come possono aiutarti a ottenere una comprensione più profonda dei tuoi dati. Inoltre, esploreremo alcuni degli strumenti e delle librerie disponibili in Python per aiutarti a eseguire queste analisi. QUALI SONO LE TECNICHE DI ANALISI DEI DATI? Analisi descrittiva Analisi esplorativa Analisi inferenziale Analisi predittiva Analisi causale Analisi meccanicistica Con le sue molteplici sfaccettature, metodologie e tecniche, l'analisi dei dati viene utilizzata in una varietà di campi, tra cui - affari, scienza e scienze sociali, tra gli altri. Poiché le aziende prosperano sotto l'influenza di molti progressi tecnologici, l'analisi dei dati gioca un ruolo enorme nel processo decisionale , fornendo un sistema migliore, più rapido ed efficace che riduce al minimo i rischi e riduce i pregiudizi umani . Detto questo, esistono diverse tecbniche di analisi con obiettivi diversi. Esamineremo ognuno di seguito. Due campi di analisi dei dati L'analisi dei dati può essere divisa in due campi, secondo il libro R per Data Science : Generazione di ipotesi : comporta un'analisi approfondita dei dati e la combinazione delle conoscenze del dominio per generare ipotesi sul motivo per cui i dati si comportano in un determinato modo. Conferma dell'ipotesi - Ciò comporta l' utilizzo di un modello matematico preciso per generare previsioni falsificabili con sofisticazione statistica per confermare le ipotesi precedenti. Tecniche di analisi dei dati : L'analisi dei dati può essere separata e organizzata in sei tecniche, disposti in ordine crescente di complessità. Analisi descrittiva Analisi esplorativa Analisi inferenziale Analisi predittiva Analisi causale Analisi meccanicistica 1. ANALISI DESCRITTIVA L'obiettivo dell'analisi descrittiva è descrivere o riassumere un insieme di dati. Ecco cosa devi sapere: L'analisi descrittiva è la primissima analisi eseguita. Genera semplici riepiloghi su campioni e misurazioni. Coinvolge statistiche descrittive comuni come misure di tendenza centrale, variabilità, frequenza e posizione. Esempio di analisi descrittiva Prendiamo ad esempio la pagina delle statistiche COVID-19 su Google. Il grafico a linee è un puro riepilogo dei casi/decessi, una presentazione e descrizione della popolazione di un determinato Paese infettato dal virus. L'analisi descrittiva è il primo passaggio dell'analisi in cui riassumi e descrivi i dati che hai utilizzando le statistiche descrittive e il risultato è una semplice presentazione dei tuoi dati. Tecniche di analisi dei dati 1) Analisi Descrittiva esempio python Ecco un esempio di codice Python per eseguire una semplice analisi descrittiva su un set di dati: import pandas as pd # Carica il dataset data = pd.read_csv("dataset.csv") # Mostra un riepilogo delle informazioni del dataset print(data.info()) # Mostra le statistiche di base per ogni colonna numerica del dataset print(data.describe()) # Mostra la frequenza delle occorrenze per ogni colonna categoriale del dataset print(data.describe(include=['object'])) Il codice utilizza la libreria Pandas per leggere il file "dataset.csv" e creare un oggetto DataFrame. Quindi utilizziamo i metodi info(), describe() e include=['object'] per mostrare un riepilogo delle informazioni, delle statistiche di base e delle frequenze delle occorrenze per ogni colonna del DataFrame. Nota: Assumiamo che il tuo dataset sia salvato come un file CSV chiamato "dataset.csv" nella stessa directory del tuo script Python e che il dataset abbia le colonne necessarie per poter fare l'analisi descrittiva 2. ANALISI ESPLORATIVA (EDA) L'analisi esplorativa comporta l'esame o l'esplorazione dei dati e la ricerca di relazioni tra variabili precedentemente sconosciute. Ecco cosa devi sapere: EDA ti aiuta a scoprire le relazioni tra le misure nei tuoi dati. È utile per scoprire nuove connessioni e formulare ipotesi. Guida la pianificazione della progettazione e la raccolta dei dati. Esempio di analisi esplorativa Il cambiamento climatico è un argomento sempre più importante poiché la temperatura globale sta gradualmente aumentando nel corso degli anni. Un esempio di un'analisi esplorativa dei dati sul cambiamento climatico implica prendere l'aumento della temperatura negli anni dal 1950 al 2020 e l'aumento delle attività umane e dell'industrializzazione per trovare relazioni dai dati. Ad esempio, puoi aumentare il numero di fabbriche, auto in circolazione e voli aerei per vedere come ciò è correlato all'aumento della temperatura. L'analisi esplorativa esplora i dati per trovare relazioni tra le misure senza identificare la causa. È molto utile quando si formulano ipotesi. Tecniche di analisi dei dati 2) Analisi Esplorativa esempio python Ecco un esempio di codice Python per eseguire una semplice analisi esplorativa su un set di dati: import pandas as pd import pandas_profiling # Carica il dataset data = pd.read_csv("dataset.csv") # Crea un report di analisi esplorativa profile = pandas_profiling.ProfileReport(data) # Mostra il report in una finestra del browser profile.to_widgets() In questo esempio utilizziamo la libreria pandas_profiling per generare un report di analisi esplorativa su un dataset che abbiamo importato usando la libreria pandas e leggendolo dal file CSV. Il report mostra una serie di statistiche, grafici e informazioni sulle colonne del DataFrame e possiamo visualizzarlo chiamando il metodo to_widgets() del profilo generato. Il report di analisi esplorativa può aiutarci a comprendere meglio i dati, rilevare eventuali problemi o anomalie, e identificare i modelli o relazioni nascosti nei dati. Con la libreria pandas profiling possiamo generare il report in modo facile e veloce senza dover scrivere il codice necessario per generare il report da soli. 3. ANALISI INFERENZIALE L'analisi inferenziale implica l'utilizzo di un piccolo campione di dati per dedurre informazioni su una popolazione di dati più ampia. L'obiettivo della modellazione statistica stessa consiste nell'utilizzare una piccola quantità di informazioni per estrapolare e generalizzare le informazioni a un gruppo più ampio. Ecco cosa devi sapere: L'analisi inferenziale comporta l'utilizzo di dati stimati rappresentativi di una popolazione e fornisce una misura dell'incertezza o della deviazione standard della stima. L' accuratezza dell'inferenza dipende fortemente dal tuo schema di campionamento. Se il campione non è rappresentativo della popolazione, la generalizzazione sarà imprecisa. Questo è noto come teorema del limite centrale . Esempio di analisi inferenziale L'idea di trarre un'inferenza sulla popolazione in generale con un campione più piccolo è intuitiva. Molte statistiche che vedi sui media e su Internet sono deduzioni; una previsione di un evento basata su un piccolo campione. Ad esempio, uno studio psicologico sui benefici del sonno potrebbe coinvolgere un totale di 500 persone. Quando hanno seguito i candidati, i candidati hanno riferito di avere una migliore capacità di attenzione e benessere generale con sette-nove ore di sonno, mentre quelli con meno sonno e più sonno rispetto all'intervallo dato hanno sofferto di una riduzione della durata dell'attenzione e dell'energia . Questo studio tratto da 500 persone era solo una piccola parte dei 7 miliardi di persone nel mondo, ed è quindi un'inferenza della popolazione più ampia. L'analisi inferenziale estrapola e generalizza le informazioni del gruppo più ampio con un campione più piccolo per generare analisi e previsioni. Tecniche di analisi dei dati 3) Analisi Inferenziale esempio python Ecco un esempio di codice Python per eseguire una classificazione utilizzando la libreria scikit-learn: from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score # Carica i dati data = pd.read_csv("dataset.csv") # Scegli una colonna del dataset come variabile indipendente X = data.drop('colonna_target', axis=1) # Scegli la colonna target come variabile dipendente y = data['colonna_target'] # Dividi i dati in un set di addestramento e uno di test X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) # Crea un modello di regressione logistica clf = LogisticRegression() # Addestra il modello sul set di addestramento clf.fit(X_train, y_train) # Fai le previsioni sul set di test y_pred = clf.predict(X_test) # Calcola la precisione del modello accuracy = accuracy_score(y_test, y_pred) # Stampa la precisione del modello print("Accuracy: ", accuracy) In questo esempio utilizziamo la libreria scikit-learn per eseguire una classificazione utilizzando un modello di regressione logistica. Dividiamo il nostro dataset in un set di addestramento e uno di test in modo da valutare la precisione del modello. Poi addestriamo il modello con i dati di addestramento e facciamo le previsioni con il set di test, compariamo le predizioni con i dati reali e otteniamo la precisione del modello. 4. ANALISI PREDITTIVA L'analisi predittiva implica l' utilizzo di dati storici o attuali per trovare modelli e fare previsioni sul futuro. Ecco cosa devi sapere: L'accuratezza delle previsioni dipende dalle variabili di input. La precisione dipende anche dai tipi di modelli. Un modello lineare potrebbe funzionare bene in alcuni casi e in altri no. Usare una variabile per prevederne un'altra non denota una relazione causale. Esempio di analisi predittiva Le elezioni statunitensi del 2020 sono un argomento popolare e molti modelli di previsione sono costruiti per prevedere il candidato vincente. FiveThirtyEight ha fatto questo per prevedere le elezioni del 2016 e del 2020. L'analisi della previsione per un'elezione richiederebbe variabili di input come dati storici dei sondaggi, tendenze e dati dei sondaggi attuali per restituire una buona previsione. Qualcosa di grande come un'elezione non userebbe solo un modello lineare, ma un modello complesso con determinate regolazioni per servire al meglio il suo scopo. L'analisi predittiva prende dati dal passato e dal presente per fare previsioni sul futuro. Tecniche di analisi dei dati 4) Analisi predittiva esempio python L'analisi predittiva è una tecnica utilizzata per prevedere eventi futuri o valori di una variabile di interesse in base ai dati storici disponibili. Ecco un esempio di codice Python per eseguire una previsione utilizzando la libreria scikit-learn: Copy code from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error # Carica i dati data = pd.read_csv("dataset.csv") # Scegli una colonna del dataset come variabile indipendente X = data.drop('colonna_target', axis=1) # Scegli la colonna target come variabile dipendente y = data['colonna_target'] # Dividi i dati in un set di addestramento e uno di test X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) # Crea un modello di regressione lineare regr = LinearRegression() # Addestra il modello sul set di addestramento regr.fit(X_train, y_train) # Fai le previsioni sul set di test y_pred = regr.predict(X_test) # Calcola l'errore quadratico medio mse = mean_squared_error(y_test, y_pred) # Stampa l'errore quadratico medio print("Mean Squared Error: ", mse) In questo esempio utilizziamo la libreria scikit-learn per eseguire una previsione utilizzando un modello di regressione lineare. Dividiamo il nostro dataset in un set di addestramento e uno di test in modo da valutare l'errore quadratico medio del modello. Poi addestriamo il modello con i dati di addestramento e facciamo le previsioni con il set di test, compariamo le predizioni con i dati reali e otteniamo l'errore quadratico medio. Come puoi vedere, l'analisi predittiva utilizza un modello matematico per prevedere un valore futuro in base ai dati storici e gli algoritmi di regressione sono molto utilizzati per questo tipo di analisi, esistono però anche altri metodi di previsione come ad esempio gli alberi decisionali, Random Forest, SVR e cosi via. L'analisi inferenziale e l'analisi predittiva sono due diverse tecniche di analisi statistica che hanno obiettivi e utilizzi diversi: L'analisi inferenziale è utilizzata per trarre conclusioni su una popolazione a partire da un campione. In altre parole, ci permette di estendere le informazioni ottenute da una piccola parte dei dati a un insieme più grande. In genere, l'analisi inferenziale viene utilizzata per valutare l'effetto di una determinata variabile su un'altra o per testare un'ipotesi sui dati. L'analisi predittiva invece, è utilizzata per fare previsioni su una o più variabili in base ai dati storici disponibili. In altre parole, utilizziamo i dati passati per prevedere ciò che potrebbe accadere in futuro. L'analisi predittiva utilizza i dati storici per costruire un modello che può essere utilizzato per prevedere eventi futuri. In sintesi, l'analisi inferenziale ci permette di estendere le informazioni ottenute da un campione a una popolazione mentre l'analisi predittiva ci permette di fare previsioni su eventi futuri utilizzando i dati passati. 5. ANALISI CAUSALE L'analisi causale esamina la causa e l'effetto delle relazioni tra le variabili e si concentra sulla ricerca della causa di una correlazione . Ecco cosa devi sapere: Per trovare la causa, devi chiederti se le correlazioni osservate che guidano la tua conclusione sono valide. Osservare solo i dati di superficie non ti aiuterà a scoprire i meccanismi nascosti alla base delle correlazioni. L'analisi causale viene applicata in studi randomizzati incentrati sull'identificazione della causalità. L'analisi causale è il gold standard nell'analisi dei dati e negli studi scientifici in cui la causa del fenomeno deve essere estratta e individuata, come separare il grano dalla pula. Buoni dati sono difficili da trovare e richiedono ricerche e studi costosi. Questi studi sono analizzati in forma aggregata (gruppi multipli) e le relazioni osservate sono solo effetti medi (media) dell'intera popolazione. Ciò significa che i risultati potrebbero non essere applicabili a tutti. Esempio di analisi causale Supponiamo che tu voglia verificare se un nuovo farmaco migliora la forza e la concentrazione umana. Per fare ciò, esegui prove di controllo randomizzate per il farmaco per testarne l'effetto. Confronti il campione di candidati per il tuo nuovo farmaco con i candidati che ricevono un finto farmaco di controllo attraverso alcuni test incentrati sulla forza e sulla concentrazione e attenzione generale. Questo ti permetterà di osservare come il farmaco influisce sul risultato. L'analisi causale riguarda la scoperta della relazione causale tra le variabili e l'esame di come un cambiamento in una variabile influisce su un'altra. 6. ANALISI MECCANICISTICA L'analisi meccanicistica viene utilizzata per comprendere i cambiamenti esatti nelle variabili che portano ad altri cambiamenti in altre variabili. Ecco cosa devi sapere: Viene applicato nelle scienze fisiche o ingegneristiche, situazioni che richiedono alta precisione e poco margine di errore, solo il rumore nei dati è errore di misurazione. È progettato per comprendere un processo biologico o comportamentale, la fisiopatologia di una malattia o il meccanismo d'azione di un intervento. Esempio di analisi meccanicistica Molte ricerche a livello universitario e argomenti complessi sono esempi adatti, ma per dirla in termini semplici, diciamo che viene fatto un esperimento per simulare una fusione nucleare sicura ed efficace per alimentare il mondo. Un'analisi meccanicistica dello studio comporterebbe un preciso equilibrio tra il controllo e la manipolazione delle variabili con misure altamente accurate di entrambe le variabili e dei risultati desiderati. È questo intricato e meticoloso modus operandi verso questi grandi argomenti che consente scoperte scientifiche e il progresso della società. L'analisi meccanicistica è in qualche modo un'analisi predittiva, ma modificata per affrontare studi che richiedono metodologie di alta precisione e meticolose per la scienza fisica o ingegneristica . Quando utilizzare le diverse tecniche di analisi dei dati L'analisi descrittiva riassume i dati a portata di mano e li presenta in modo comprensibile. L'analisi esplorativa dei dati ti aiuta a scoprire correlazioni e relazioni tra le variabili nei tuoi dati. L'analisi inferenziale serve a generalizzare la popolazione più ampia con un campione di dati di dimensioni inferiori. L'analisi predittiva ti aiuta a fare previsioni sul futuro con i dati. L'analisi causale pone l'accento sulla ricerca della causa di una correlazione tra le variabili. L'analisi meccanicistica serve a misurare i cambiamenti esatti nelle variabili che portano ad altri cambiamenti in altre variabili.
- AutoEncoder cosa sono e come funzionano
Mentre il mondo si sviluppa rapidamente con i progressi nell'apprendimento automatico e nell'intelligenza artificiale , presto ci troveremo ad affrontare una situazione di aumento incontrollabile dei dati.
- Cos'è un data warehouse ?
Pertanto, DW fungerà da motore di back-end per gli strumenti di Business Intelligence che mostrano report di data warehouse è operativo, un'azienda ottiene i seguenti vantaggi: Miglioramento della business intelligence Molteplici fonti di business intelligence Accesso ai dati in tempo reale Intelligenza del passato Eccezionale (BI) , come applicarla alla tua impresa Esempi di Dashboard Power BI I Migliori Libri Sull’ Intelligenza Artificiale in Italiano da Leggere 2022 Big Data, Data Science e Machine Learning i Migliori Libri per