top of page
Team I.A. Italia

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.


Prevedere il traffico di un sito web utilizzando Python
Prevedere il traffico di un 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 :



e cliccare in alto a destra su "ESPORTA":


Prevedere il traffico di un sito web utilizzando Python
Prevedere il traffico di un sito web utilizzando Python

una volta fatto ciò vi troverete una cartella .zip contenente i seguenti file :

Prevedere il traffico di un sito web utilizzando Python
Prevedere il traffico di un sito web utilizzando Python

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 :

<class 'pandas.core.frame.DataFrame'> 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 :


Prevedere il traffico di un sito web utilizzando Python
Prevedere il traffico di un sito web utilizzando Python

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:


Prevedere il traffico di un sito web utilizzando Python
Prevedere il traffico di un sito web utilizzando Python

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 :


Prevedere il traffico di un sito web utilizzando Python
Prevedere il traffico di un sito web utilizzando Python
Prevedere il traffico di un sito web utilizzando Python
Prevedere il traffico di un sito web utilizzando Python

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 :

Prevedere il traffico di un sito web utilizzando Python
Prevedere il traffico di un sito web utilizzando Python



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.



Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating
PCR (5).gif
PCR (4).gif
PCR.gif
PCR.gif
PCR.gif
PCR.gif
PCR (5).gif
3.gif
Vediamo se riesci a cliccarmi ! Nascondo una Sorpresa... (2).png

Ciao 

🤗 Articoli consigliati dalla nostra
Intelligenza Artificiale in base ai tuoi interessi

Correlazione Alta

Correlazione Media

Correlazione Bassa

Iscriviti

VUOI DIVENTARE UN MEMBRO DI INTELLIGENZA ARTIFICIALE ITALIA GRATUITAMENTE E TRARNE I SEGUENTI BENEFICI?

Corsi Gratis

più di 150 lezioni online

Dataset Gratis

più di 150o dataset

Ebook Gratis

più di 10 libri da leggere

Editor Gratis

un editor python online

Progetti Gratis

più di 25 progetti python

App Gratis

4 servizi web con I.A.

Unisciti Ora a oltre
1.000.000
di lettori e appassionanti d'I.A.

Tutto ciò che riguarda l'intelligenza Artificiale, in unico posto, in italiano e gratis.

MEGLIO DI COSI' NON SI PUO' FARE

Dopo l'iscrizione riceverai diversi Regali

VUOI SCRIVERE ARTICOLI INSIEME A NOI.

Grazie

bottom of page