# Pv Power Forecasting Eval

> Evaluates machine learning models for predicting photovoltaic (PV) output power in smart buildings across multiple time frames (30 min, 1 hour, 4 hours) using location-specific meteorological and temporal features. Use when the user wants to benchmark on Tartu, Estonia PV dataset, or asks about evaluating this task. Reports MAPE.

- Skill: `qhjqhj00/pv-power-forecasting-eval` (Agent Skill)
- Install (CLI): `npx skillmds add qhjqhj00/pv-power-forecasting-eval`
- Raw SKILL.md: https://api.skillmd.com/api/skills/qhjqhj00/pv-power-forecasting-eval/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: qhjqhj00 (https://skillmd.com/u/qhjqhj00)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/qhjqhj00/pv-power-forecasting-eval

---


# pv-power-forecasting-eval

> Location-aware green energy availability forecasting for multiple time frames in smart buildings: The case of Estonia — Hatamian et al. (2022) (arXiv:2210.01619, 2022)

## What this evaluates

Evaluates machine learning models for predicting photovoltaic (PV) output power in smart buildings across multiple time frames (30 min, 1 hour, 4 hours) using location-specific meteorological and temporal features.

## Datasets

- **Tartu, Estonia PV dataset** — total ?; splits: test (-1), cv (-1); repo https://github.com/chinmaya-dehury/Loc_Green_Energy_Availability_Pred

## Metrics

- `MAPE` **(primary)** — range: percent
  - Mean Absolute Percentage Error. Calculated as the average of |actual - predicted| / actual, with all instances where actual equals zero explicitly excluded to avoid undefined values.
- `MAE` — range: other
  - Mean Absolute Error. The average of the absolute differences between predicted and actual output power values.
- `RMSE` — range: other
  - Root Mean Squared Error. The square root of the average of squared differences between predicted and actual output power values.
- `R2` — range: [0, 1]
  - Coefficient of determination. Represents the proportion of variance in the actual output power that is predictable from the model's predictions.

## Input / output format

**Input**: Meteorological features (GHI, temperature, humidity), temporal features (month, hour), and one prior output power value. Target: current output power in kWh.

**Output**: Predicted output power in kWh.

## Scoring recipe

```python
def compute_metrics(actual, predicted):
    mask = actual != 0
    mape = np.mean(np.abs((actual[mask] - predicted[mask]) / actual[mask])) * 100
    mae = np.mean(np.abs(actual - predicted))
    rmse = np.sqrt(np.mean((actual - predicted) ** 2))
    ss_res = np.sum((actual - predicted) ** 2)
    ss_tot = np.sum((actual - np.mean(actual)) ** 2)
    r2 = 1 - (ss_res / ss_tot)
    return {'MAPE': mape, 'MAE': mae, 'RMSE': rmse, 'R2': r2}
```

## Common pitfalls

- MAPE is undefined when actual values are zero, so the paper excludes zeros, which can bias the metric if zero-generation periods are significant.
- Accuracy naturally decreases as the forecasting time frame increases (30 min to 4 hours) due to reduced data size and longer prediction horizons.
- Cross-validation is performed per model/time-frame but the exact train/val/test split sizes are not disclosed.

## Evidence (verbatim from paper)

> To calculate MAPE, zeros are excluded since MAPE takes undefined values when actual data points are zero. Moreover, as the time frame increases, the data size decreases, and accuracy tends to decrease. All in all, the figures outline a very good accuracy regarding obtained results. Table 12 presents the performance metric results.

## Citation

```bibtex
@misc{hatamian2022location,
  title={Location-aware green energy availability forecasting for multiple time frames in smart buildings: The case of Estonia},
  author={Hatamian et al. (2022)},
  year={2022},
  note={arXiv:2210.01619}
}
```

- arXiv: 2210.01619

