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 :
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 :
<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 :
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.
Comments