Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
__pycache__/
*.py[cod]
.pytest_cache/
.env
venv/
.venv/
.git/
.github/
output/
*.db
.DS_Store

34 changes: 34 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
name: Bug report
about: Report something that is not working as expected
title: '[BUG] '
labels: bug
---

## Description

A clear and concise description of the bug.

## Steps to Reproduce

1.
2.
3.

## Expected Behavior

What you expected to happen.

## Actual Behavior

What actually happened. Include the full error message or stack trace if applicable.

## Environment

- OS:
- Python version:
- Project commit / version:

## Additional Context

Any other context, screenshots, or sample inputs.
22 changes: 22 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
name: Feature request
about: Suggest an idea or improvement
title: '[FEATURE] '
labels: enhancement
---

## Problem

What problem does this solve? Who would benefit?

## Proposed Solution

How could it work?

## Alternatives Considered

Any other approaches you considered.

## Additional Context

Mockups, references, or related issues.
17 changes: 17 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
version: 2
updates:
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 5
labels:
- "dependencies"

- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
labels:
- "dependencies"
- "ci"
23 changes: 23 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
## Summary

<!-- Brief description of what this PR does and why. -->

## Changes

<!-- Bullet list of changes. -->
-
-

## Testing

- [ ] All existing tests pass (`pytest -v`)
- [ ] Added or updated tests for new behavior
- [ ] Manually verified end-to-end pipeline

## Screenshots (if UI / report changes)

<!-- Drag images here if relevant. -->

## Related Issues

<!-- Closes #N -->
30 changes: 30 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Tests

on:
push:
branches: [main]
pull_request:
branches: [main]

jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12"]

steps:
- uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt

- name: Run tests
run: pytest -v
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,10 @@ Thumbs.db

# Output
output/

# ML artifacts
*.pkl
*.joblib
*.h5
*.parquet
*.npy
42 changes: 42 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Contributing

Thanks for your interest! This is primarily a personal portfolio project, but contributions are welcome.

## Getting Started

1. Fork the repository and clone your fork.
2. Create and activate a virtual environment:
```bash
python3 -m venv venv
source venv/bin/activate
```
3. Install dependencies:
```bash
pip install -r requirements.txt
```
4. Run the test suite to confirm your environment is set up:
```bash
pytest -v
```
5. Try a demo run:
```bash
python main.py
```

## Submitting Changes

1. Create a feature branch from `main`:
```bash
git checkout -b feature/your-feature
```
2. Make focused, well-described commits.
3. Make sure the test suite passes locally before pushing.
4. Open a pull request against `main` with a clear description of what you changed and why. Reference any related issues.

## Code Style

- Follow PEP 8 for Python code.
- Add tests for any new behavior — especially in the model training and evaluation pipeline.
- Do not commit pickled models, large datasets, or generated reports.
- Update the README if user-facing behavior changes.
- Keep changes focused — one PR, one concern.
12 changes: 12 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
FROM python:3.11-slim

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

EXPOSE 8501

CMD ["streamlit", "run", "app.py", "--server.address", "0.0.0.0", "--server.port", "8501"]
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2026
Copyright (c) 2026 Eugen Goebel

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
18 changes: 18 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,24 @@

An automated machine learning pipeline that profiles datasets, preprocesses data, selects features, trains and compares multiple models, and generates a professional evaluation report — all without requiring an API key.

![CI](https://github.com/eugen-goebel/predictive-analytics-agent/actions/workflows/tests.yml/badge.svg)
![Python](https://img.shields.io/badge/Python-3.10+-blue)
![Tests](https://img.shields.io/badge/Tests-35_passed-brightgreen)
![scikit--learn](https://img.shields.io/badge/scikit--learn-1.5+-f7931e)
![Streamlit](https://img.shields.io/badge/Streamlit-1.40+-red)
![License](https://img.shields.io/badge/License-MIT-green)

## Screenshots

**Data Analysis** — auto-detected target column, task type, and preprocessing pipeline
![Data Analysis](docs/screenshots/01-data-analysis.png)

**Model Comparison** — cross-validated accuracy, standard deviation, and training time across 4 models
![Model Comparison](docs/screenshots/02-model-comparison.png)

**Evaluation Results** — test/train scores, overfitting detection, and accuracy comparison chart
![Evaluation](docs/screenshots/03-evaluation.png)

## Features

- **Auto-Detection**: Automatically identifies the target column and task type (classification or regression)
Expand Down
15 changes: 15 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Security Policy

## Reporting a Vulnerability

If you discover a security vulnerability in this project, please report it privately by emailing **eugen-goebel@hotmail.de**.

Please do not file public GitHub issues for security vulnerabilities, as this could expose users to risk before a fix is available.

## Response Time

I aim to acknowledge reports within 7 days and provide an initial assessment within 14 days.

## Supported Versions

This is a portfolio project; only the latest commit on `main` is supported.
Loading
Loading