data-processing-agent / index.html
Jurk06's picture
Add 2 files
1911281 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Data Processing Agent | Automated Data Pipeline</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
:root {
--primary: #4a6bff;
--secondary: #6c5ce7;
--success: #00b894;
--danger: #d63031;
--warning: #fdcb6e;
--dark: #2d3436;
--light: #f5f6fa;
--gray: #636e72;
--white: #ffffff;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background-color: #f8f9fa;
color: var(--dark);
line-height: 1.6;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 20px;
}
header {
background: linear-gradient(135deg, var(--primary), var(--secondary));
color: white;
padding: 2rem 0;
text-align: center;
border-radius: 10px;
margin-bottom: 30px;
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}
header h1 {
font-size: 2.5rem;
margin-bottom: 1rem;
}
header p {
font-size: 1.2rem;
opacity: 0.9;
}
.agent-icon {
font-size: 4rem;
margin-bottom: 1rem;
animation: pulse 2s infinite;
}
@keyframes pulse {
0% { transform: scale(1); }
50% { transform: scale(1.1); }
100% { transform: scale(1); }
}
.pipeline-container {
display: flex;
flex-direction: column;
gap: 30px;
}
.pipeline-step {
background-color: var(--white);
border-radius: 10px;
padding: 25px;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
transition: transform 0.3s, box-shadow 0.3s;
position: relative;
overflow: hidden;
}
.pipeline-step:hover {
transform: translateY(-5px);
box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);
}
.pipeline-step-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 20px;
}
.step-number {
background-color: var(--primary);
color: white;
width: 40px;
height: 40px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-weight: bold;
flex-shrink: 0;
margin-right: 15px;
}
.step-title {
flex-grow: 1;
}
.step-title h2 {
color: var(--primary);
font-size: 1.5rem;
margin-bottom: 5px;
}
.step-title p {
color: var(--gray);
font-size: 0.9rem;
}
.step-actions {
margin-left: auto;
}
.btn {
padding: 10px 20px;
border: none;
border-radius: 5px;
cursor: pointer;
font-weight: 600;
transition: all 0.3s;
display: inline-flex;
align-items: center;
gap: 8px;
}
.btn-primary {
background-color: var(--primary);
color: white;
}
.btn-primary:hover {
background-color: #3a5aed;
transform: translateY(-2px);
}
.btn-outline {
background-color: transparent;
border: 1px solid var(--primary);
color: var(--primary);
}
.btn-outline:hover {
background-color: var(--primary);
color: white;
}
.form-group {
margin-bottom: 20px;
}
.form-group label {
display: block;
margin-bottom: 8px;
font-weight: 600;
color: var(--dark);
}
.form-control {
width: 100%;
padding: 12px;
border: 1px solid #ddd;
border-radius: 5px;
font-size: 1rem;
transition: border-color 0.3s;
}
.form-control:focus {
outline: none;
border-color: var(--primary);
}
.checkbox-group {
margin-top: 10px;
}
.checkbox-item {
display: flex;
align-items: center;
margin-bottom: 8px;
}
.checkbox-item input {
margin-right: 10px;
}
.progress-container {
margin-top: 30px;
background-color: #f1f1f1;
border-radius: 5px;
height: 10px;
overflow: hidden;
}
.progress-bar {
height: 100%;
background: linear-gradient(90deg, var(--primary), var(--secondary));
width: 0%;
transition: width 1s ease-in-out;
}
.status-message {
margin-top: 10px;
font-size: 0.9rem;
color: var(--gray);
}
.visualization-area {
margin-top: 20px;
padding: 15px;
border: 1px dashed #ddd;
border-radius: 5px;
min-height: 200px;
background-color: #f9f9f9;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
}
.visualization-placeholder {
text-align: center;
color: var(--gray);
}
.visualization-placeholder i {
font-size: 2rem;
margin-bottom: 10px;
}
.file-upload {
border: 2px dashed #ddd;
border-radius: 5px;
padding: 30px;
text-align: center;
cursor: pointer;
transition: all 0.3s;
}
.file-upload:hover {
border-color: var(--primary);
background-color: rgba(74, 107, 255, 0.05);
}
.file-upload i {
font-size: 3rem;
color: var(--primary);
margin-bottom: 15px;
}
.file-upload p {
color: var(--gray);
margin-bottom: 15px;
}
.file-info {
margin-top: 15px;
padding: 10px;
background-color: #f1f1f1;
border-radius: 5px;
display: none;
}
.data-preview {
margin-top: 20px;
overflow-x: auto;
}
table {
width: 100%;
border-collapse: collapse;
}
th, td {
padding: 12px 15px;
text-align: left;
border-bottom: 1px solid #ddd;
}
th {
background-color: #f8f9fa;
font-weight: 600;
}
tr:hover {
background-color: #f5f5f5;
}
.params-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
gap: 15px;
margin-top: 15px;
}
.alert {
padding: 15px;
border-radius: 5px;
margin-bottom: 20px;
}
.alert-info {
background-color: #e3f2fd;
color: #1976d2;
}
.alert-success {
background-color: #e8f5e9;
color: #388e3c;
}
.alert-warning {
background-color: #fff8e1;
color: #ffa000;
}
footer {
text-align: center;
margin-top: 50px;
padding: 20px 0;
color: var(--gray);
font-size: 0.9rem;
}
@media (max-width: 768px) {
.pipeline-step-header {
flex-direction: column;
align-items: flex-start;
}
.step-actions {
margin-top: 15px;
width: 100%;
}
.btn {
width: 100%;
margin-bottom: 10px;
}
.params-grid {
grid-template-columns: 1fr;
}
}
</style>
</head>
<body>
<div class="container">
<header>
<div class="agent-icon">
<i class="fas fa-robot"></i>
</div>
<h1>Data Processing Agent</h1>
<p>Automated end-to-end data pipeline processing with AI assistance</p>
</header>
<div class="pipeline-container">
<!-- Data Collection Step -->
<div class="pipeline-step" id="data-collection">
<div class="pipeline-step-header">
<div style="display: flex; align-items: center;">
<div class="step-number">1</div>
<div class="step-title">
<h2>Data Collection</h2>
<p>Gather data from various sources</p>
</div>
</div>
<div class="step-actions">
<button class="btn btn-primary" onclick="runStep('data-collection')">
<i class="fas fa-play"></i> Run
</button>
</div>
</div>
<div class="form-group">
<label>Data Sources</label>
<div class="checkbox-group">
<div class="checkbox-item">
<input type="checkbox" id="source-csv" checked>
<label for="source-csv">CSV Files</label>
</div>
<div class="checkbox-item">
<input type="checkbox" id="source-database">
<label for="source-database">Databases (SQL, NoSQL)</label>
</div>
<div class="checkbox-item">
<input type="checkbox" id="source-api">
<label for="source-api">APIs (REST, GraphQL)</label>
</div>
<div class="checkbox-item">
<input type="checkbox" id="source-web">
<label for="source-web">Web Scraping</label>
</div>
</div>
</div>
<div class="file-upload" id="file-upload-area" onclick="document.getElementById('file-input').click()">
<input type="file" id="file-input" style="display: none;" accept=".csv,.json,.xlsx,.parquet" multiple>
<i class="fas fa-cloud-upload-alt"></i>
<h3>Upload Dataset Files</h3>
<p>Click to browse or drag and drop your files</p>
<button class="btn btn-outline">
<i class="fas fa-folder-open"></i> Select Files
</button>
<div class="file-info" id="file-info">
<i class="fas fa-file-alt"></i> <span id="file-name">0 files selected</span>
</div>
</div>
<div class="progress-container" id="collection-progress" style="display: none;">
<div class="progress-bar" id="collection-progress-bar"></div>
</div>
<div class="status-message" id="collection-status"></div>
</div>
<!-- Data Preparation Step -->
<div class="pipeline-step" id="data-preparation">
<div class="pipeline-step-header">
<div style="display: flex; align-items: center;">
<div class="step-number">2</div>
<div class="step-title">
<h2>Data Preparation</h2>
<p>Structure the raw data for processing</p>
</div>
</div>
<div class="step-actions">
<button class="btn btn-outline" onclick="autoConfigure('preparation')">
<i class="fas fa-magic"></i> Auto-Configure
</button>
<button class="btn btn-primary" onclick="runStep('data-preparation')">
<i class="fas fa-play"></i> Run
</button>
</div>
</div>
<div class="alert alert-info">
<i class="fas fa-info-circle"></i> The agent will analyze your data structure and suggest appropriate preparation steps.
</div>
<div class="form-group">
<label>Data Format</label>
<select class="form-control" id="data-format">
<option value="tabular">Tabular (CSV, Excel, etc.)</option>
<option value="json">JSON (Nested/Flattened)</option>
<option value="time-series">Time Series</option>
<option value="image">Image (Pixel/Matrix data)</option>
<option value="text">Text/NLP</option>
</select>
</div>
<div class="params-grid">
<div class="form-group">
<label>Encoding</label>
<select class="form-control" id="encoding-type">
<option value="auto">Auto-detect</option>
<option value="utf-8">UTF-8</option>
<option value="latin1">ISO-8859-1 (Latin-1)</option>
<option value="windows-1252">Windows-1252</option>
</select>
</div>
<div class="form-group">
<label>Header Row</label>
<select class="form-control" id="has-header">
<option value="auto">Auto-detect</option>
<option value="yes">Yes</option>
<option value="no">No</option>
</select>
</div>
<div class="form-group">
<label>Delimiter</label>
<select class="form-control" id="delimiter">
<option value="auto">Auto-detect</option>
<option value="comma">Comma (CSV)</option>
<option value="semicolon">Semicolon</option>
<option value="tab">Tab (TSV)</option>
</select>
</div>
</div>
<div class="data-preview" id="preparation-preview" style="display: none;">
<h3>Data Preview</h3>
<div class="visualization-area">
<div class="visualization-placeholder">
<i class="fas fa-table"></i>
<p>Run data preparation to see a preview of your structured data</p>
</div>
</div>
</div>
<div class="progress-container" id="preparation-progress" style="display: none;">
<div class="progress-bar" id="preparation-progress-bar"></div>
</div>
<div class="status-message" id="preparation-status"></div>
</div>
<!-- Data Cleaning Step -->
<div class="pipeline-step" id="data-cleaning">
<div class="pipeline-step-header">
<div style="display: flex; align-items: center;">
<div class="step-number">3</div>
<div class="step-title">
<h2>Data Cleaning</h2>
<p>Identify and handle missing, incorrect, or inconsistent data</p>
</div>
</div>
<div class="step-actions">
<button class="btn btn-outline" onclick="autoConfigure('cleaning')">
<i class="fas fa-magic"></i> Auto-Configure
</button>
<button class="btn btn-primary" onclick="runStep('data-cleaning')">
<i class="fas fa-play"></i> Run
</button>
</div>
</div>
<div class="alert alert-warning" id="cleaning-alert" style="display: none;">
<i class="fas fa-exclamation-triangle"></i> <span id="cleaning-issues-count">0</span> potential data quality issues detected
</div>
<div class="form-group">
<label>Handling Missing Values</label>
<div class="checkbox-group">
<div class="checkbox-item">
<input type="checkbox" id="remove-nulls" checked>
<label for="remove-nulls">Remove rows with missing values</label>
</div>
<div class="checkbox-item">
<input type="checkbox" id="impute-mean">
<label for="impute-mean">Impute with mean (numeric)</label>
</div>
<div class="checkbox-item">
<input type="checkbox" id="impute-mode">
<label for="impute-mode">Impute with mode (categorical)</label>
</div>
<div class="checkbox-item">
<input type="checkbox" id="mark-nulls">
<label for="mark-nulls">Mark missing values as 'Unknown'</label>
</div>
</div>
</div>
<div class="form-group">
<label>Handling Outliers</label>
<div class="checkbox-group">
<div class="checkbox-item">
<input type="checkbox" id="remove-outliers">
<label for="remove-outliers">Remove statistical outliers (z-score > 3)</label>
</div>
<div class="checkbox-item">
<input type="checkbox" id="winsorize">
<label for="winsorize">Winsorize (cap extreme values)</label>
</div>
<div class="checkbox-item">
<input type="checkbox" id="log-transform">
<label for="log-transform">Apply log transformation</label>
</div>
</div>
</div>
<div class="form-group">
<label>Text Normalization</label>
<div class="checkbox-group">
<div class="checkbox-item">
<input type="checkbox" id="lowercase" checked>
<label for="lowercase">Convert to lowercase</label>
</div>
<div class="checkbox-item">
<input type="checkbox" id="remove-whitespace">
<label for="remove-whitespace">Trim whitespace</label>
</div>
<div class="checkbox-item">
<input type="checkbox" id="remove-special-chars">
<label for="remove-special-chars">Remove special characters</label>
</div>
</div>
</div>
<div class="visualization-area" id="cleaning-visualization">
<div class="visualization-placeholder">
<i class="fas fa-broom"></i>
<p>Run data cleaning to visualize the cleaning process</p>
</div>
</div>
<div class="progress-container" id="cleaning-progress" style="display: none;">
<div class="progress-bar" id="cleaning-progress-bar"></div>
</div>
<div class="status-message" id="cleaning-status"></div>
</div>
<!-- Continue with other steps in the same pattern -->
<!-- Data Transformation - Step 4 -->
<div class="pipeline-step" id="data-transformation">
<div class="pipeline-step-header">
<div style="display: flex; align-items: center;">
<div class="step-number">4</div>
<div class="step-title">
<h2>Data Transformation</h2>
<p>Convert data into appropriate formats and scales</p>
</div>
</div>
<div class="step-actions">
<button class="btn btn-outline" onclick="autoConfigure('transformation')">
<i class="fas fa-magic"></i> Auto-Configure
</button>
<button class="btn btn-primary" onclick="runStep('data-transformation')">
<i class="fas fa-play"></i> Run
</button>
</div>
</div>
<div class="form-group">
<label>Feature Scaling</label>
<div class="checkbox-group">
<div class="checkbox-item">
<input type="radio" name="scaling" id="standard-scaling" checked>
<label for="standard-scaling">Standard Scaling (Z-score)</label>
</div>
<div class="checkbox-item">
<input type="radio" name="scaling" id="minmax-scaling">
<label for="minmax-scaling">Min-Max Scaling (0-1)</label>
</div>
<div class="checkbox-item">
<input type="radio" name="scaling" id="robust-scaling">
<label for="robust-scaling">Robust Scaling (median/IQR)</label>
</div>
<div class="checkbox-item">
<input type="radio" name="scaling" id="no-scaling">
<label for="no-scaling">No Scaling</label>
</div>
</div>
</div>
<div class="form-group">
<label>Encoding Categorical Variables</label>
<div class="checkbox-group">
<div class="checkbox-item">
<input type="radio" name="encoding" id="onehot-encoding" checked>
<label for="onehot-encoding">One-Hot Encoding</label>
</div>
<div class="checkbox-item">
<input type="radio" name="encoding" id="label-encoding">
<label for="label-encoding">Label Encoding</label>
</div>
<div class="checkbox-item">
<input type="radio" name="encoding" id="target-encoding">
<label for="target-encoding">Target Encoding</label>
</div>
<div class="checkbox-item">
<input type="radio" name="encoding" id="frequency-encoding">
<label for="frequency-encoding">Frequency Encoding</label>
</div>
</div>
</div>
<div class="form-group">
<label>Date/Time Features</label>
<div class="checkbox-group">
<div class="checkbox-item">
<input type="checkbox" id="extract-year">
<label for="extract-year">Extract year</label>
</div>
<div class="checkbox-item">
<input type="checkbox" id="extract-month">
<label for="extract-month">Extract month</label>
</div>
<div class="checkbox-item">
<input type="checkbox" id="extract-day">
<label for="extract-day">Extract day</label>
</div>
<div class="checkbox-item">
<input type="checkbox" id="extract-dow">
<label for="extract-dow">Extract day of week</label>
</div>
<div class="checkbox-item">
<input type="checkbox" id="extract-hour">
<label for="extract-hour">Extract hour</label>
</div>
</div>
</div>
<!-- Visualization for pre-post transformation comparison -->
<div class="visualization-area" id="transformation-visualization">
<div class="visualization-placeholder">
<i class="fas fa-exchange-alt"></i>
<p>Run data transformation to see before/after comparison</p>
</div>
</div>
<div class="progress-container" id="transformation-progress" style="display: none;">
<div class="progress-bar" id="transformation-progress-bar"></div>
</div>
<div class="status-message" id="transformation-status"></div>
</div>
<!-- Data Integration - Step 5 -->
<div class="pipeline-step" id="data-integration">
<div class="pipeline-step-header">
<div style="display: flex; align-items: center;">
<div class="step-number">5</div>
<div class="step-title">
<h2>Data Integration</h2>
<p>Combine data from multiple sources</p>
</div>
</div>
<div class="step-actions">
<button class="btn btn-outline" onclick="autoConfigure('integration')">
<i class="fas fa-magic"></i> Auto-Configure
</button>
<button class="btn btn-primary" onclick="runStep('data-integration')">
<i class="fas fa-play"></i> Run
</button>
</div>
</div>
<div class="alert alert-info">
<i class="fas fa-info-circle"></i> Upload additional datasets to integrate with your main dataset.
</div>
<div class="file-upload" id="secondary-upload-area" onclick="document.getElementById('secondary-input').click()">
<input type="file" id="secondary-input" style="display: none;" accept=".csv,.json,.xlsx,.parquet" multiple>
<i class="fas fa-plus-circle"></i>
<h3>Upload Additional Datasets</h3>
<p>Click to browse or drag and drop your files</p>
<button class="btn btn-outline">
<i class="fas fa-folder-plus"></i> Add Files
</button>
<div class="file-info" id="secondary-file-info">
<i class="fas fa-file-alt"></i> <span id="secondary-file-name">0 additional files</span>
</div>
</div>
<div class="form-group">
<label>Integration Method</label>
<select class="form-control" id="integration-method">
<option value="join">Join (on common columns)</option>
<option value="concat">Concatenate (same structure)</option>
<option value="merge">Merge (complex matching)</option>
</select>
</div>
<div id="join-settings" class="form-group" style="display: block;">
<label>Join Parameters</label>
<div class="params-grid">
<div class="form-group">
<label>Join Type</label>
<select class="form-control" id="join-type">
<option value="inner">Inner Join</option>
<option value="left">Left Join</option>
<option value="right">Right Join</option>
<option value="outer">Full Outer Join</option>
</select>
</div>
<div class="form-group">
<label>Left Join Key</label>
<select class="form-control" id="left-join-key">
<option value="">Select column...</option>
</select>
</div>
<div class="form-group">
<label>Right Join Key</label>
<select class="form-control" id="right-join-key">
<option value="">Select column...</option>
</select>
</div>
</div>
</div>
<!-- Visualization for integrated data -->
<div class="visualization-area" id="integration-visualization">
<div class="visualization-placeholder">
<i class="fas fa-object-group"></i>
<p>Run data integration to see the combined dataset</p>
</div>
</div>
<div class="progress-container" id="integration-progress" style="display: none;">
<div class="progress-bar" id="integration-progress-bar"></div>
</div>
<div class="status-message" id="integration-status"></div>
</div>
<!-- Data Reduction - Step 6 -->
<div class="pipeline-step" id="data-reduction">
<div class="pipeline-step-header">
<div style="display: flex; align-items: center;">
<div class="step-number">6</div>
<div class="step-title">
<h2>Data Reduction</h2>
<p>Reduce data size while preserving important information</p>
</div>
</div>
<div class="step-actions">
<button class="btn btn-outline" onclick="autoConfigure('reduction')">
<i class="fas fa-magic"></i> Auto-Configure
</button>
<button class="btn btn-primary" onclick="runStep('data-reduction')">
<i class="fas fa-play"></i> Run
</button>
</div>
</div>
<div class="form-group">
<label>Dimensionality Reduction</label>
<div class="checkbox-group">
<div class="checkbox-item">
<input type="radio" name="dim-reduction" id="pca-reduction" checked>
<label for="pca-reduction">PCA (Principal Component Analysis)</label>
</div>
<div class="checkbox-item">
<input type="radio" name="dim-reduction" id="tsne-reduction">
<label for="tsne-reduction">t-SNE (t-Distributed Stochastic Neighbor Embedding)</label>
</div>
<div class="checkbox-item">
<input type="radio" name="dim-reduction" id="umap-reduction">
<label for="umap-reduction">UMAP (Uniform Manifold Approximation)</label>
</div>
<div class="checkbox-item">
<input type="radio" name="dim-reduction" id="no-dim-reduction">
<label for="no-dim-reduction">No Dimensionality Reduction</label>
</div>
</div>
</div>
<div class="form-group" id="pca-settings">
<label>PCA Settings</label>
<div class="params-grid">
<div class="form-group">
<label>Number of Components</label>
<select class="form-control" id="pca-components">
<option value="auto">Auto (Keep 95% variance)</option>
<option value="2">2 Components</option>
<option value="3">3 Components</option>
<option value="custom">Custom</option>
</select>
</div>
<div class="form-group" id="custom-components-group" style="display: none;">
<label>Custom Components</label>
<input type="number" class="form-control" id="custom-components" min="1" max="50" placeholder="Enter number">
</div>
</div>
</div>
<div class="form-group">
<label>Feature Selection</label>
<div class="checkbox-group">
<div class="checkbox-item">
<input type="checkbox" id="remove-low-variance">
<label for="remove-low-variance">Remove low variance features</label>
</div>
<div class="checkbox-item">
<input type="checkbox" id="remove-correlated">
<label for="remove-correlated">Remove highly correlated features (>0.9)</label>
</div>
<div class="checkbox-item">
<input type="checkbox" id="select-kbest">
<label for="select-kbest">Select K best features (statistical tests)</label>
</div>
</div>
</div>
<div id="kbest-settings" class="form-group" style="display: none;">
<label>Select K Best Features Settings</label>
<div class="params-grid">
<div class="form-group">
<label>Number of Features (K)</label>
<input type="number" class="form-control" id="kbest-number" min="1" placeholder="e.g., 10">
</div>
<div class="form-group">
<label>Scoring Function</label>
<select class="form-control" id="kbest-score">
<option value="f_classif">ANOVA F-value (classification)</option>
<option value="mutual_info_classif">Mutual info (classification)</option>
<option value="f_regression">F-value (regression)</option>
<option value="mutual_info_regression">Mutual info (regression)</option>
</select>
</div>
</div>
</div>
<!-- Visualization for reduced data -->
<div class="visualization-area" id="reduction-visualization">
<div class="visualization-placeholder">
<i class="fas fa-compress-alt"></i>
<p>Run data reduction to see the feature importance and components</p>
</div>
</div>
<div class="progress-container" id="reduction-progress" style="display: none;">
<div class="progress-bar" id="reduction-progress-bar"></div>
</div>
<div class="status-message" id="reduction-status"></div>
</div>
<!-- Data Exploration (EDA) - Step 7 -->
<div class="pipeline-step" id="data-exploration">
<div class="pipeline-step-header">
<div style="display: flex; align-items: center;">
<div class="step-number">7</div>
<div class="step-title">
<h2>Exploratory Data Analysis</h2>
<p>Understand patterns, relationships, and statistics</p>
</div>
</div>
<div class="step-actions">
<button class="btn btn-primary" onclick="runStep('data-exploration')">
<i class="fas fa-chart-line"></i> Analyze
</button>
</div>
</div>
<div class="form-group">
<label>Analysis Types</label>
<div class="checkbox-group">
<div class="checkbox-item">
<input type="checkbox" id="summary-stats" checked>
<label for="summary-stats">Summary Statistics</label>
</div>
<div class="checkbox-item">
<input type="checkbox" id="distributions" checked>
<label for="distributions">Feature Distributions</label>
</div>
<div class="checkbox-item">
<input type="checkbox" id="correlations" checked>
<label for="correlations">Correlation Analysis</label>
</div>
<div class="checkbox-item">
<input type="checkbox" id="missing-analysis" checked>
<label for="missing-analysis">Missing Values Analysis</label>
</div>
<div class="checkbox-item">
<input type="checkbox" id="outlier-analysis">
<label for="outlier-analysis">Outlier Analysis</label>
</div>
<div class="checkbox-item">
<input type="checkbox" id="time-trends">
<label for="time-trends">Time Trends (if applicable)</label>
</div>
</div>
</div>
<div id="exploration-results">
<div class="visualization-area">
<div class="visualization-placeholder">
<i class="fas fa-search"></i>
<p>Run EDA to generate interactive visualizations and insights</p>
</div>
</div>
<div class="data-preview" id="eda-summary" style="display: none; margin-top: 20px;">
<h3>Summary Statistics</h3>
<div class="visualization-area" id="summary-stats-vis">
<!-- Will be filled with summary stats table -->
</div>
</div>
<div class="data-preview" id="eda-distributions" style="display: none; margin-top: 20px;">
<h3>Feature Distributions</h3>
<div class="visualization-area" id="distributions-vis">
<!-- Will be filled with distribution charts -->
</div>
</div>
<div class="data-preview" id="eda-correlations" style="display: none; margin-top: 20px;">
<h3>Correlation Analysis</h3>
<div class="visualization-area" id="correlations-vis">
<!-- Will be filled with correlation matrix -->
</div>
</div>
</div>
<div class="progress-container" id="exploration-progress" style="display: none;">
<div class="progress-bar" id="exploration-progress-bar"></div>
</div>
<div class="status-message" id="exploration-status"></div>
</div>
<!-- Feature Engineering - Step 8 -->
<div class="pipeline-step" id="feature-engineering">
<div class="pipeline-step-header">
<div style="display: flex; align-items: center;">
<div class="step-number">8</div>
<div class="step-title">
<h2>Feature Engineering</h2>
<p>Create new informative features from existing data</p>
</div>
</div>
<div class="step-actions">
<button class="btn btn-outline" onclick="autoConfigure('feature-engineering')">
<i class="fas fa-magic"></i> Auto-Configure
</button>
<button class="btn btn-primary" onclick="runStep('feature-engineering')">
<i class="fas fa-play"></i> Run
</button>
</div>
</div>
<div class="alert alert-info">
<i class="fas fa-lightbulb"></i> Feature engineering suggestions are based on your data characteristics from EDA.
</div>
<div class="form-group">
<label>Automated Feature Creation</label>
<div class="checkbox-group">
<div class="checkbox-item">
<input type="checkbox" id="polynomial-features">
<label for="polynomial-features">Polynomial Features (degree 2)</label>
</div>
<div class="checkbox-item">
<input type="checkbox" id="interaction-features">
<label for="interaction-features">Interaction Features</label>
</div>
<div class="checkbox-item">
<input type="checkbox" id="binning-features">
<label for="binning-features">Binning/Numeric Discretization</label>
</div>
<div class="checkbox-item">
<input type="checkbox" id="datetime-features">
<label for="datetime-features">Date/Time Features</label>
</div>
</div>
</div>
<div id="custom-features-section" class="form-group">
<label>Custom Feature Creation</label>
<div class="visualization-area" style="min-height: 150px;">
<div id="custom-features-container">
<div class="form-group" id="feature-template" style="display: none;">
<div class="params-grid">
<div class="form-group">
<input type="text" class="form-control" placeholder="Feature name">
</div>
<div class="form-group">
<input type="text" class="form-control" placeholder="Formula (e.g. col1 / col2)">
</div>
<div class="form-group">
<button class="btn btn-outline" onclick="removeFeature(this)"><i class="fas fa-trash"></i></button>
</div>
</div>
</div>
<button class="btn btn-outline" onclick="addFeature()">
<i class="fas fa-plus"></i> Add Custom Feature
</button>
</div>
</div>
</div>
<!-- Feature importance visualization -->
<div class="visualization-area" id="feature-importance-vis">
<div class="visualization-placeholder">
<i class="fas fa-star"></i>
<p>Run feature engineering to see feature importance rankings</p>
</div>
</div>
<div class="progress-container" id="feature-progress" style="display: none;">
<div class="progress-bar" id="feature-progress-bar"></div>
</div>
<div class="status-message" id="feature-status"></div>
</div>
<!-- Data Splitting - Step 9 -->
<div class="pipeline-step" id="data-splitting">
<div class="pipeline-step-header">
<div style="display: flex; align-items: center;">
<div class="step-number">9</div>
<div class="step-title">
<h2>Data Splitting</h2>
<p>Divide data into training, validation and test sets</p>
</div>
</div>
<div class="step-actions">
<button class="btn btn-primary" onclick="runStep('data-splitting')">
<i class="fas fa-cut"></i> Split
</button>
</div>
</div>
<div class="form-group">
<label>Splitting Strategy</label>
<div class="checkbox-group">
<div class="checkbox-item">
<input type="radio" name="split-strategy" id="default-split" checked>
<label for="default-split">Default (70% train, 15% validation, 15% test)</label>
</div>
<div class="checkbox-item">
<input type="radio" name="split-strategy" id="custom-split">
<label for="custom-split">Custom Ratios</label>
</div>
<div class="checkbox-item">
<input type="radio" name="split-strategy" id="time-split">
<label for="time-split">Time-Based Split</label>
</div>
<div class="checkbox-item">
<input type="radio" name="split-strategy" id="group-split">
<label for="group-split">Group-Based Split</label>
</div>
</div>
</div>
<div id="custom-split-settings" class="form-group" style="display: none;">
<label>Custom Split Ratios</label>
<div class="params-grid">
<div class="form-group">
<label>Training Set (%)</label>
<input type="number" class="form-control" id="train-percent" min="1" max="98" value="70">
</div>
<div class="form-group">
<label>Validation Set (%)</label>
<input type="number" class="form-control" id="val-percent" min="1" max="98" value="15">
</div>
<div class="form-group">
<label>Test Set (%)</label>
<input type="number" class="form-control" id="test-percent" min="1" max="98" value="15">
</div>
</div>
</div>
<div id="time-split-settings" class="form-group" style="display: none;">
<label>Time-Based Split Settings</label>
<div class="params-grid">
<div class="form-group">
<label>Date/Time Column</label>
<select class="form-control" id="time-column">
<option value="">Select column...</option>
</select>
</div>
<div class="form-group">
<label>Training Period</label>
<input type="text" class="form-control" id="train-period" placeholder="e.g., first 70%">
</div>
<div class="form-group">
<label>Validation Period</label>
<input type="text" class="form-control" id="val-period" placeholder="e.g., next 15%">
</div>
</div>
</div>
<div id="group-split-settings" class="form-group" style="display: none;">
<label>Group-Based Split Settings</label>
<div class="params-grid">
<div class="form-group">
<label>Group Column</label>
<select class="form-control" id="group-column">
<option value="">Select column...</option>
</select>
</div>
</div>
</div>
<div class="form-group">
<label>Stratification</label>
<div class="checkbox-item">
<input type="checkbox" id="stratified-split" checked>
<label for="stratified-split">Preserve target variable distribution across splits</label>
</div>
</div>
<div id="target-column-group" class="form-group" style="display: block;">
<label>Target Column (For Stratification)</label>
<select class="form-control" id="target-column">
<option value="">Select column...</option>
</select>
</div>
<!-- Split visualization -->
<div class="visualization-area" id="split-visualization">
<div class="visualization-placeholder">
<i class="fas fa-chart-pie"></i>
<p>Run data splitting to see the distribution of your datasets</p>
</div>
</div>
<div class="progress-container" id="split-progress" style="display: none;">
<div class="progress-bar" id="split-progress-bar"></div>
</div>
<div class="status-message" id="split-status"></div>
</div>
<!-- Data Modeling - Step 10 -->
<div class="pipeline-step" id="data-modeling">
<div class="pipeline-step-header">
<div style="display: flex; align-items: center;">
<div class="step-number">10</div>
<div class="step-title">
<h2>Modeling</h2>
<p>Build and evaluate machine learning models</p>
</div>
</div>
<div class="step-actions">
<button class="btn btn-outline" onclick="autoConfigure('modeling')">
<i class="fas fa-magic"></i> Auto-Configure
</button>
<button class="btn btn-primary" onclick="runStep('data-modeling')">
<i class="fas fa-rocket"></i> Run Models
</button>
</div>
</div>
<div class="alert alert-info">
<i class="fas fa-info-circle"></i> The agent will automatically select appropriate models based on your problem type.
</div>
<div class="form-group">
<label>Problem Type</label>
<div class="checkbox-group">
<div class="checkbox-item">
<input type="radio" name="problem-type" id="classification" checked>
<label for="classification">Classification</label>
</div>
<div class="checkbox-item">
<input type="radio" name="problem-type" id="regression">
<label for="regression">Regression</label>
</div>
<div class="checkbox-item">
<input type="radio" name="problem-type" id="clustering">
<label for="clustering">Clustering</label>
</div>
<div class="checkbox-item">
<input type="radio" name="problem-type" id="anomaly">
<label for="anomaly">Anomaly Detection</label>
</div>
</div>
</div>
<div id="classification-models" class="form-group" style="display: block;">
<label>Classification Models (Auto-Selected)</label>
<div class="params-grid">
<div class="form-group">
<div class="checkbox-item">
<input type="checkbox" id="model-rf" checked>
<label for="model-rf">Random Forest</label>
</div>
</div>
<div class="form-group">
<div class="checkbox-item">
<input type="checkbox" id="model-xgboost" checked>
<label for="model-xgboost">XGBoost</label>
</div>
</div>
<div class="form-group">
<div class="checkbox-item">
<input type="checkbox" id="model-logistic" checked>
<label for="model-logistic">Logistic Regression</label>
</div>
</div>
<div class="form-group">
<div class="checkbox-item">
<input type="checkbox" id="model-svm">
<label for="model-svm">SVM</label>
</div>
</div>
</div>
</div>
<div id="regression-models" class="form-group" style="display: none;">
<label>Regression Models (Auto-Selected)</label>
<div class="params-grid">
<div class="form-group">
<div class="checkbox-item">
<input type="checkbox" id="model-rf-reg" checked>
<label for="model-rf-reg">Random Forest Regressor</label>
</div>
</div>
<div class="form-group">
<div class="checkbox-item">
<input type="checkbox" id="model-xgb-reg" checked>
<label for="model-xgb-reg">XGBoost Regressor</label>
</div>
</div>
<div class="form-group">
<div class="checkbox-item">
<input type="checkbox" id="model-linear" checked>
<label for="model-linear">Linear Regression</label>
</div>
</div>
</div>
</div>
<div class="form-group">
<label>Cross-Validation</label>
<div class="params-grid">
<div class="form-group">
<select class="form-control" id="cv-type">
<option value="kfold">K-Fold (K=5)</option>
<option value="stratified">Stratified K-Fold</option>
<option value="timeseries">Time Series Split</option>
<option value="none">No Cross-Validation</option>
</select>
</div>
<div class="form-group">
<input type="number" class="form-control" id="cv-folds" min="2" max="20" value="5">
</div>
</div>
</div>
<div class="form-group">
<label>Hyperparameter Tuning</label>
<div class="params-grid">
<div class="form-group">
<select class="form-control" id="hpt-method">
<option value="grid">Grid Search</option>
<option value="random">Random Search</option>
<option value="bayesian">Bayesian Optimization</option>
<option value="none">No Tuning</option>
</select>
</div>
</div>
</div>
<!-- Model comparison visualization -->
<div class="visualization-area" id="model-comparison-vis">
<div class="visualization-placeholder">
<i class="fas fa-trophy"></i>
<p>Run modeling to see model performance comparison</p>
</div>
</div>
<div class="progress-container" id="model-progress" style="display: none;">
<div class="progress-bar" id="model-progress-bar"></div>
</div>
<div class="status-message" id="model-status"></div>
</div>
<!-- Final step - Export/Deploy -->
<div class="pipeline-step" id="export-deploy">
<div class="pipeline-step-header">
<div style="display: flex; align-items: center;">
<div class="step-number">11</div>
<div class="step-title">
<h2>Export & Deployment</h2>
<p>Save your processed data and models</p>
</div>
</div>
<div class="step-actions">
<button class="btn btn-primary" onclick="exportPipeline()">
<i class="fas fa-download"></i> Export
</button>
</div>
</div>
<div class="form-group">
<label>Export Options</label>
<div class="checkbox-group">
<div class="checkbox-item">
<input type="checkbox" id="export-processed-data" checked>
<label for="export-processed-data">Processed Dataset</label>
</div>
<div class="checkbox-item">
<input type="checkbox"
</html>