Desmitificar valores atípicos en series temporales 2/4
Derrumbando valores atípicos en series temporales 2/4
Descifrando los valores atípicos en la serie temporal de las redes sociales del fútbol
¿Qué sucedió ayer?
Después de distribuir café a todos, Morelli, Zappa y yo repasamos lo que sucedió ayer:
Desmitificando los valores atípicos en las series temporales: 1/4
Rovella y los Datos Rebeldes
pub.towardsai.net
- Maestría de Anotación Integración perfecta de Detectron con LabelImg
- ¿Qué es MLOps?
- ¿Cómo supera Bing Chat a ChatGPT en proporcionar conocimiento en tiempo real actualizado? Conoce la Generación con Recuperación Mejorada (RAG)
Comenzamos con los tweets relacionados con #rovella, una serie temporal densamente poblada de valores atípicos, y los localizamos de una manera muy sencilla utilizando solo dos piezas básicas de información: la media y la desviación estándar.
import pandas as pd
import numpy as np
link = 'https://raw.githubusercontent.com/ianni-phd/Datasets/main/rovella_tweets.csv'
tweets = pd.read_csv(link, sep=';', decimal=',', index_col='date', parse_dates=['date'])
tweets_series = tweets['target']
Luego comenzamos a eliminarlos sin piedad, como si estuviéramos usando una motosierra.
![El trabajo de cortar puntos: 3 2 1... ¡ya!](https://ai.miximages.com/miro.medium.com/v2/resize:fit:640/format:webp/1*26DYUD3vElFSHag55FbEoQ.png)
# DEFINICIÓN de la función
def detect_outliers_zscore(ts, thres=3, points_not_to_touch=60, max_window=40, outliers_param=0.9):
'''
param ts : Serie temporal con índice de fecha y hora
param thres : Umbral mayor de 3 para hacer que la detección de valores atípicos sea más estricta
param points_not_to_touch : Puntos que no manipulas al principio de la serie
param max_window : Ventana considerada para calcular el máximo local
param outliers_param : [0, 1] menor si quiero seguir los valores atípicos
'''
ts_reworked = ts.copy(deep=True)
outliers = []
dates = []
for i, d in zip(ts, ts.index):
ts_so_far = ts[ts.index <= d]
ts_so_far = ts_so_far.iloc[points_not_to_touch:]
ts_so_far = ts_so_far[~ts_so_far.index.isin(dates)]
length_so_far = ts_so_far.shape[0]
mean = np.mean(ts_so_far)
std = np.std(ts_so_far)
max_so_far = np.max(ts_so_far.iloc[:-max_window])
surplus = (outliers_param * (i - max_so_far))...
We will continue to update Zepes; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Explorando alternativas de código abierto a los modelos de OpenAI
- La suite de referencia más grande de LLM MEGAVERSE
- Aprende Probabilidad en Ciencias de la Computación con la Universidad de Stanford de forma GRATUITA
- Más allá de los límites humanos El surgimiento de la SuperInteligencia
- IA generativa basada en datos Beneficios para los datos y el análisis
- Examinando y detectando sesgos en un conjunto de datos de incumplimiento de tarjetas de crédito
- Inflection-2 supera a PaLM-2 de Google Un avance en los modelos de lenguaje de IA