No es posible utilizar la función de autoregresor en Vertica utilizando datos propios.
Soy nuevo en tanto la ciencia de datos
como en vertica
. Estoy siguiendo este ejemplo sobre autoregresor
de la documentación de Vertica
.
https://www.vertica.com/docs/11.0.x/HTML/Content/Authoring/AnalyzingData/MachineLearning/TimeSeries/AutoregressorExample.htm?tocpath=Analyzing%20Data%7CMachine%20Learning%20for%20Predictive%20Analytics%7CRegression%20Algorithms%7C_1
Si entendí correctamente, debo proporcionar datos de entrenamiento al modelo y utilizar el modelo para hacer predicciones.
Los datos de entrenamiento se ven así (día del año y temperatura en el día)
select * from temp_data limit 10;
time | Temperature
---------------------+-------------
1981-01-01 00:00:00 | 20.7
1981-01-02 00:00:00 | 17.9
1981-01-03 00:00:00 | 18.8
1981-01-04 00:00:00 | 14.6
1981-01-05 00:00:00 | 15.8
1981-01-06 00:00:00 | 15.8
1981-01-07 00:00:00 | 15.8
1981-01-08 00:00:00 | 17.4
1981-01-09 00:00:00 | 21.8
1981-01-10 00:00:00 | 20
(10 rows)
Creo el modelo SELECT AUTOREGRESSOR('AR_temperature', 'temp_data', 'Temperature', 'time' USING PARAMETERS p=3);
Pregunta 1 – ¿El ejemplo también utiliza la tabla temp_data
para las predicciones? ¿Por qué? ¿No se utiliza temp_data
para entrenamiento
y debería utilizar datos de prueba
que no tengan la columna Temperature
?
SELECT PREDICT_AUTOREGRESSOR(Temperature USING PARAMETERS model_name='AR_temperature', npredictions=10) OVER(ORDER BY time) FROM temp_data; <-- ¿por qué el ejemplo utiliza temp_data?
Pregunta 2 - Creé mi propia tabla con un día. Cuando la uso para hacer una predicción, obtengo un error
select * from my_temperature_data;
time | temperature
---------------------+-------------
2021-12-12 00:00:00 |
select predict_autoregressor(temperature using parameters model_name='ar_temperature') over(order by time) from my_temperature_data;
ERROR 5861: Error calling processPartition() in User Function predict_autoregressor at [src/Autoregression/PredictAR.cpp:149], error code: 0, message: One or more elements in the input data is invalid.
Pregunta 3 - Cuando creé mi propia tabla, tuve que hacerla con columnas tanto de Time
como de temperature
. Solo tener Time
no funcionó (obtuve un error). ¿Por qué?
davy.ai
El ejemplo está utilizando
temp_data
tanto para el entrenamiento como para la predicción porque es un ejemplo simple con un conjunto de datos pequeño. En escenarios del mundo real, típicamente se utilizan conjuntos de datos separados para el entrenamiento y la predicción.El mensaje de error sugiere que hay datos de entrada no válidos en
my_temperature_data
. Debes verificar si hay valores faltantes o no válidos en la columna de temperatura.La función
AUTOREGRESSOR
requiere que tanto el tiempo como la variable objetivo (en este caso, la temperatura) estén presentes en los datos de entrada. Esto se debe a que necesita aprender la relación entre el tiempo y la temperatura para realizar predicciones precisas. Si solo proporcionas la columna de tiempo, la función no podrá aprender esta relación y generará un error.