LLM-powered modular data science pipeline
Project description
๐ Data Science Pro
AI-Powered Automated Data Science Pipeline
Transform your data science workflow with an intelligent pipeline that automates EDA, preprocessing, model selection, training, and evaluation - all powered by LLM suggestions.
๐ Key Features
- ๐ง AI-Powered Chain-of-Thought Suggestions: Get intelligent recommendations with detailed reasoning at every stage
- ๐ Comprehensive Data Analysis: Deep CSV profiling with quality scores and modeling readiness assessment
- ๐ Interactive Workflows: Engage in multi-turn conversations with AI about your data
- ๐ฏ Context-Aware Recommendations: Suggestions adapt based on your entire pipeline history
- ๐ Multi-Stage Reasoning: Complex decision-making across preprocessing, training, and evaluation phases
- ๐ฌ Natural Language Queries: Ask any question about your data and get intelligent responses
๐ Prerequisites
Before installing, ensure you have:
- Python 3.8 or higher
- OpenAI API key (for AI-powered features)
- Git installed on your system
๐ฆ Step 1: Complete Installation Guide
Option A: Install from Source (Development Mode)
# Step 1.1: Clone the repository
git clone <your-repo-url>
cd data_science_pro
# Step 1.2: Create virtual environment (HIGHLY RECOMMENDED)
python -m venv venv
# Step 1.3: Activate virtual environment
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate
# Step 1.4: Install the package in development mode
pip install -e .
# Step 1.5: Verify installation
python -c "import data_science_pro; print('โ
Installation successful!')"
Option B: Install from PyPI (when published)
pip install data-science-pro
Installation Verification
# Step 1.6: Test the installation
import data_science_pro
print("โ
Data Science Pro installed successfully!")
# Step 1.7: Check available components
from data_science_pro.data import DataAnalyzer, DataLoader, DataOperations
from data_science_pro.modeling import Trainer, Evaluator, ModelRegistry
from data_science_pro.cycle import IntelligentController, ChainOfThoughtSuggester
print("โ
All modules imported successfully!")
๐ Step 2: Quick Start - Your First AI-Powered Analysis
Method 1: Command Line Interface (CLI)
# Step 2.1: Basic usage with your data
data-science-pro --data your_data.csv --target target_column --api_key your_openai_key
# What this does automatically:
# 1. Load your dataset
# 2. Generate comprehensive EDA report
# 3. Apply smart preprocessing (handle missing values, encode categoricals, scale features)
# 4. Train multiple models and select the best one
# 5. Display detailed evaluation metrics and insights
Method 2: Python API (Interactive Mode)
# Step 2.2: Initialize pipeline with OpenAI API key
import data_science_pro
pipeline = data_science_pro.DataSciencePro(api_key='your-openai-key')
# Step 2.3: Load your data
pipeline.input_data('your_data.csv', target_col='target_column')
# Step 2.4: Get AI-powered analysis
report = pipeline.report()
print("๐ Data Analysis Report:")
print(report)
# Step 2.5: Get intelligent suggestions
suggestions = pipeline.suggestions("How can I improve my model accuracy?")
print("๐ค AI Suggestions:", suggestions)
๐ง Step 3: Deep Dive - All Preprocessing Actions
Execute Each Preprocessing Step Individually:
# Step 3.1: Load sample data (Titanic dataset example)
import pandas as pd
import numpy as np
from sklearn.datasets import fetch_openml
# Load Titanic dataset as example
titanic = fetch_openml('titanic', version=1, as_frame=True)
df = titanic.frame
print(f"Dataset shape: {df.shape}")
print(f"Missing values: {df.isnull().sum().sum()}")
# Save for testing
df.to_csv('titanic_sample.csv', index=False)
# Step 3.2: Initialize pipeline
pipeline = data_science_pro.DataSciencePro(api_key='your-openai-key')
pipeline.input_data('titanic_sample.csv', target_col='survived')
# Step 3.3: Execute each preprocessing action
preprocessing_actions = [
('fill_na', 'Handle missing values'),
('drop_constant', 'Remove constant columns'),
('drop_high_na', 'Remove columns with >50% missing values'),
('encode_categorical', 'Encode categorical variables'),
('scale_numeric', 'Scale numeric features'),
('drop_duplicates', 'Remove duplicate rows'),
('feature_gen', 'Generate interaction features')
]
for action, description in preprocessing_actions:
print(f"\n๐ {description}...")
result = pipeline.apply_action(action)
print(f"โ
{action} completed")
print(f" Data shape after {action}: {pipeline.data.shape}")
๐ค Step 4: Model Training & Evaluation
Available Models with Parameters
# Step 4.1: Train Random Forest with custom parameters
print("๐ฒ Training Random Forest...")
pipeline.set_model('randomforest', {
'n_estimators': 200,
'max_depth': 15,
'min_samples_split': 5,
'min_samples_leaf': 2,
'random_state': 42
})
pipeline.train_model()
# Step 4.2: Evaluate the model
print("๐ Evaluating Random Forest...")
rf_results = pipeline.evaluate()
print("Random Forest Results:", rf_results)
# Step 4.3: Train Logistic Regression
print("๐ Training Logistic Regression...")
pipeline.set_model('logisticregression', {
'C': 1.0,
'max_iter': 1000,
'random_state': 42,
'solver': 'liblinear'
})
pipeline.train()
lr_results = pipeline.evaluate()
print("Logistic Regression Results:", lr_results)
# Step 4.4: Compare models
print("\n๐ Model Comparison:")
print(f"Random Forest - Accuracy: {rf_results.get('accuracy', 0):.3f}, F1: {rf_results.get('f1_score', 0):.3f}")
print(f"Logistic Regression - Accuracy: {lr_results.get('accuracy', 0):.3f}, F1: {lr_results.get('f1_score', 0):.3f}")
# Choose best model
best_model = 'randomforest' if rf_results.get('accuracy', 0) > lr_results.get('accuracy', 0) else 'logisticregression'
print(f"๐ฅ Best Model: {best_model}")
๐ Step 5: Advanced Cyclic Workflow
Automated Iteration Until Target Performance
# Step 5.1: Import cycle components
from data_science_pro.cycle.controller import IntelligentController
from data_science_pro.cycle.suggester import ChainOfThoughtSuggester
# Step 5.2: Initialize cycle controller
controller = IntelligentController()
suggester = ChainOfThoughtSuggester()
# Step 5.3: Define your performance goal
target_accuracy = 0.85
max_iterations = 10
print(f"๐ฏ Target: Achieve {target_accuracy} accuracy in max {max_iterations} iterations")
# Step 5.4: Run automated improvement cycle
for iteration in range(max_iterations):
print(f"\n๐ Iteration {iteration + 1}")
# Current performance
current_results = pipeline.evaluate_model()
current_accuracy = current_results.get('accuracy', 0)
print(f"Current Accuracy: {current_accuracy:.3f}")
if current_accuracy >= target_accuracy:
print(f"โ
Target achieved! Final accuracy: {current_accuracy:.3f}")
break
# Get AI suggestions for improvement
suggestions = suggester.suggest_improvements(
current_results=current_results,
data_info=pipeline.report()
)
print("๐ค AI Suggestions:", suggestions)
# Apply suggested improvements based on AI recommendations
if 'different model' in suggestions.lower() or 'xgboost' in suggestions.lower():
try:
print("Trying XGBoost...")
import xgboost as xgb
pipeline.set_model('xgboost', {'max_depth': 6, 'n_estimators': 300})
pipeline.train_model()
except ImportError:
print("XGBoost not available, trying different RandomForest parameters")
pipeline.set_model('randomforest', {'n_estimators': 300, 'max_depth': 20})
pipeline.train_model()
elif 'feature' in suggestions.lower():
print("Applying feature engineering...")
pipeline.apply_action('feature_gen')
pipeline.train_model()
elif 'hyperparameter' in suggestions.lower():
print("Trying different hyperparameters...")
pipeline.set_model('randomforest', {
'n_estimators': 400,
'max_depth': 25,
'min_samples_split': 3
})
pipeline.train_model()
print("\n๐ Cyclic workflow completed!")
๐พ Step 6: Model Management & Registry
Save, Load, and Version Models
# Step 6.1: Import model registry
from data_science_pro.modeling.registry import ModelRegistry
# Step 6.2: Initialize registry
registry = ModelRegistry()
# Step 6.3: Save current model with metadata
model_info = {
'model_name': 'titanic_survival_rf',
'version': 'v1.0',
'accuracy': pipeline.evaluate_model()['accuracy'],
'f1_score': pipeline.evaluate_model()['f1_score'],
'features_used': list(pipeline.data.columns),
'preprocessing_steps': ['fill_na', 'encode_categorical', 'scale_numeric']
}
# Step 6.4: Save model
registry.save_model(
model=pipeline.model,
model_name=model_info['model_name'],
version=model_info['version'],
metadata=model_info
)
print(f"๐พ Model saved: {model_info['model_name']} {model_info['version']}")
# Step 6.5: List all saved models
saved_models = registry.list_models()
print("๐ Saved Models:", saved_models)
# Step 6.6: Load a specific model
loaded_model = registry.load_model('titanic_survival_rf', 'v1.0')
print("โ
Model loaded successfully!")
# Step 6.7: Load model with metadata
loaded_model, metadata = registry.load_model_with_metadata('titanic_survival_rf', 'v1.0')
print("Model Metadata:", metadata)
๐ Step 7: Comprehensive Data Analysis
Deep Dive into Your Data
# Step 7.1: Import analysis components
from data_science_pro.data.data_analyzer import DataAnalyzer
from data_science_pro.data.data_loader import DataLoader
# Step 7.2: Initialize components
analyzer = DataAnalyzer()
loader = DataLoader()
# Step 7.3: Load data with advanced options
data = loader.load_data('titanic_sample.csv',
file_type='csv',
encoding='utf-8',
parse_dates=True)
# Step 7.4: Comprehensive analysis
print("๐ Comprehensive Data Analysis:")
print("=" * 50)
# Basic statistics
basic_stats = analyzer.get_basic_stats(data)
print("1๏ธโฃ Basic Statistics:")
for key, value in basic_stats.items():
print(f" {key}: {value}")
# Missing value analysis
missing_analysis = analyzer.analyze_missing_values(data)
print("\n2๏ธโฃ Missing Value Analysis:")
for col, info in missing_analysis.items():
print(f" {col}: {info['count']} missing ({info['percentage']:.1f}%)")
# Data quality report
quality_report = analyzer.generate_data_quality_report(data)
print("\n3๏ธโฃ Data Quality Report:")
print(quality_report)
# Correlation analysis for numeric columns
numeric_cols = data.select_dtypes(include=['int64', 'float64']).columns
if len(numeric_cols) > 1:
correlation_matrix = analyzer.analyze_correlations(data[numeric_cols])
print("\n4๏ธโฃ Top Correlations:")
print(correlation_matrix.head(10))
# Categorical analysis
categorical_cols = data.select_dtypes(include=['object', 'category']).columns
if len(categorical_cols) > 0:
print("\n5๏ธโฃ Categorical Analysis:")
for col in categorical_cols:
unique_count = data[col].nunique()
print(f" {col}: {unique_count} unique values")
if unique_count <= 10:
print(f" Top categories: {data[col].value_counts().head(3).to_dict()}")
๐ฏ Step 8: Advanced Chain-of-Thought Examples with Comprehensive CSV Analysis
Example 1: Multi-Stage Titanic Analysis with Complex Queries
# ๐ข TITANIC COMPREHENSIVE ANALYSIS - 8 STAGES
import data_science_pro
from data_science_pro.cycle.controller import Controller
import pandas as pd
print("๐ข TITANIC COMPREHENSIVE ANALYSIS WORKFLOW")
print("=" * 80)
# Initialize controller with enhanced chain-of-thought suggester
controller = Controller()
# STAGE 1: Initial Comprehensive Analysis with Complex Query
print("\n๐ STAGE 1: Initial Comprehensive Data Analysis")
print("-" * 60)
# Create realistic Titanic dataset (or load your own)
titanic_data = controller._create_titanic_sample_data()
# Initialize pipeline with comprehensive context
pipeline = data_science_pro.DataSciencePro(api_key='your-openai-key')
pipeline.load_data(titanic_data)
# Complex multi-part query for comprehensive analysis
stage1_query = """
I need a complete analysis of this Titanic dataset for survival prediction.
Please provide comprehensive data quality assessment, feature distribution analysis,
correlation analysis, data modeling readiness score, critical issues, and key insights
about passenger demographics and survival patterns. Also analyze missing data patterns
and their impact on model performance.
"""
print(f"๐ Complex Query: Initial comprehensive analysis")
suggestions_1 = pipeline.suggestions(user_query=stage1_query, interactive=True)
# The system will provide:
# - Data quality score and modeling readiness
# - Feature distribution insights
# - Correlation strength analysis
# - Critical modeling issues identification
# - Comprehensive preprocessing recommendations
# STAGE 2: Intelligent Preprocessing Strategy
print("\n๐ง STAGE 2: Intelligent Preprocessing Strategy")
print("-" * 60)
stage2_query = """
Based on the data analysis, what preprocessing strategy should I implement?
Address missing value handling (especially for Age and Cabin), feature engineering opportunities,
categorical encoding strategies, outlier treatment, class balancing strategy,
and provide specific implementation steps with reasoning for each decision.
"""
suggestions_2 = pipeline.suggestions(user_query=stage2_query, interactive=True)
pipeline.preprocess()
# STAGE 3: Post-Preprocessing Validation with Deep Analysis
print("\n๐ STAGE 3: Post-Preprocessing Validation")
print("-" * 60)
stage3_query = """
Now that preprocessing is complete, analyze the transformed dataset comprehensively.
Validate imputation effectiveness, assess feature engineering impact,
check for new data quality issues, evaluate feature importance changes,
identify optimal feature selection strategy, and predict expected model performance improvement.
"""
suggestions_3 = pipeline.suggestions(user_query=stage3_query, interactive=True)
# STAGE 4: Model Selection with Business Context
print("\n๐ฏ STAGE 4: Intelligent Model Selection")
print("-" * 60)
stage4_query = """
Given the preprocessed Titanic data characteristics (survival prediction, class imbalance,
mixed feature types), recommend the optimal modeling approach. Provide primary algorithm
recommendation with reasoning, alternative algorithms ranked by suitability, hyperparameter
starting points based on data characteristics, cross-validation strategy, ensemble possibilities,
and expected performance benchmarks with confidence intervals.
"""
suggestions_4 = pipeline.suggestions(user_query=stage4_query, interactive=True)
# STAGE 5: Training and Performance Analysis
print("\n๐ STAGE 5: Model Training and Initial Evaluation")
print("-" * 60)
# Train initial model
pipeline.train_model()
initial_metrics = pipeline.evaluate()
stage5_query = f"""
My Random Forest achieved {initial_metrics.get('accuracy', 0):.1%} accuracy on Titanic survival prediction.
Provide comprehensive performance assessment including overfitting detection,
class imbalance impact analysis, feature importance insights with business interpretation,
hyperparameter optimization strategy, cross-validation recommendations,
and specific suggestions for achieving >85% accuracy.
"""
suggestions_5 = pipeline.suggestions(user_query=stage5_query, metrics=initial_metrics, interactive=True)
# STAGE 6: Cross-Validation and Stability Analysis
print("\nโ
STAGE 6: Cross-Validation and Stability Analysis")
print("-" * 60)
cv_metrics = pipeline.cross_validate(cv_folds=5)
stage6_query = f"""
Cross-validation shows {cv_metrics.get('mean_accuracy', 0):.1%} ยฑ {cv_metrics.get('std_accuracy', 0):.1%} accuracy.
Analyze model stability comprehensively, interpret variance across folds,
assess overfitting vs underfitting, evaluate generalization capability,
recommend stability improvements, determine deployment readiness score,
and provide confidence intervals for production performance.
"""
suggestions_6 = pipeline.suggestions(user_query=stage6_query, metrics=cv_metrics, interactive=True)
# STAGE 7: Business Insights and Interpretation
print("\n๐ผ STAGE 7: Business Insights and Interpretation")
print("-" * 60)
stage7_query = """
Transform technical Titanic survival results into actionable business insights.
Provide key factors affecting survival with statistical significance,
actionable maritime safety recommendations, risk assessment for different passenger profiles,
economic implications of survival factors, historical validation of findings,
and modern ship safety policy recommendations with implementation strategies.
"""
suggestions_7 = pipeline.suggestions(user_query=stage7_query, metrics=cv_metrics, interactive=True)
# STAGE 8: Deployment Strategy and Risk Assessment
print("\n๐ STAGE 8: Deployment Strategy and Final Recommendations")
print("-" * 60)
stage8_query = """
Provide comprehensive deployment strategy for Titanic survival prediction model.
Include monitoring plan with specific metrics, performance tracking methodology,
data drift detection algorithms, retraining triggers and schedules, A/B testing framework,
risk mitigation strategies, documentation requirements, regulatory compliance considerations,
and post-deployment validation procedures.
"""
suggestions_8 = pipeline.suggestions(user_query=stage8_query, metrics=cv_metrics, interactive=True)
# Final Summary with All Insights
print("\n" + "="*80)
print("๐ TITANIC COMPREHENSIVE ANALYSIS COMPLETE")
print("="*80)
print(f"๐ฏ Final Model Performance: {cv_metrics.get('mean_accuracy', 0):.1%} ยฑ {cv_metrics.get('std_accuracy', 0):.1%}")
print(f"๐ Total Analysis Stages: 8")
print(f"๐ Complex Queries Processed: Multi-part analytical questions")
print(f"๐ก Business Insights: Maritime safety recommendations generated")
print(f"๐ Deployment Ready: Complete strategy with risk assessment")
Example 2: Real-Time Interactive Data Exploration
# ๐ REAL-TIME INTERACTIVE EXPLORATION
import data_science_pro
print("๐ REAL-TIME INTERACTIVE DATA EXPLORATION")
print("=" * 60)
# Initialize pipeline
pipeline = data_science_pro.DataSciencePro(api_key='your-openai-key')
# Load any dataset
data = pd.read_csv('your_data.csv')
pipeline.load_data(data)
# Interactive exploration loop
while True:
print("\n๐ค Available exploration modes:")
print("1. Data Quality Assessment")
print("2. Feature Relationship Analysis")
print("3. Anomaly Detection")
print("4. Pattern Discovery")
print("5. Predictive Insights")
print("6. Custom Query")
choice = input("\n๐ค Select exploration mode (1-6) or 'q' to quit: ")
if choice == 'q':
break
elif choice == '1':
query = "Provide comprehensive data quality assessment including missing value patterns, data consistency, outlier analysis, and recommendations for improvement."
elif choice == '2':
query = "Analyze all feature relationships, identify strongest correlations, detect multicollinearity, and suggest feature engineering opportunities."
elif choice == '3':
query = "Detect anomalies and outliers in the dataset, classify them by type, assess their impact on modeling, and recommend treatment strategies."
elif choice == '4':
query = "Discover hidden patterns in the data including clusters, trends, seasonality, and provide business interpretations for each pattern found."
elif choice == '5':
query = "Generate predictive insights about the target variable, identify key drivers, assess prediction confidence, and recommend modeling approaches."
elif choice == '6':
query = input("๐ Enter your custom analytical question: ")
# Get comprehensive analysis with chain-of-thought reasoning
suggestions = pipeline.suggestions(user_query=query, interactive=True)
print(f"\n๐ฏ Analysis Results:")
if 'csv_analysis' in suggestions:
print(f"๐ Data Quality Score: {suggestions['csv_analysis'].get('data_quality_score', 'N/A')}")
print(f"๐ฏ Modeling Readiness: {suggestions['csv_analysis'].get('modeling_readiness', 'N/A')}")
if 'key_insights' in suggestions:
print(f"๐ก Key Insights: {suggestions['key_insights']}")
if 'context_summary' in suggestions:
print(f"๐ Context Summary: {suggestions['context_summary']}")
Example 3: Multi-Model Ensemble Strategy with AI Reasoning
# ๐ค MULTI-MODEL ENSEMBLE STRATEGY
import data_science_pro
from sklearn.ensemble import VotingClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier
from sklearn.svm import SVC
print("๐ค MULTI-MODEL ENSEMBLE STRATEGY WITH AI REASONING")
print("=" * 70)
# Initialize pipeline
pipeline = data_science_pro.DataSciencePro(api_key='your-openai-key')
pipeline.load_data(your_data)
pipeline.preprocess()
# Get AI recommendations for ensemble strategy
ensemble_query = """
Based on my dataset characteristics, recommend an optimal ensemble strategy.
Provide specific model combinations, voting weights, hyperparameter ranges,
cross-validation approach, and expected performance improvement over individual models.
Include reasoning for each model selection and weight assignment.
"""
ensemble_suggestions = pipeline.suggestions(user_query=ensemble_query, interactive=True)
# Train individual models based on AI recommendations
models = {
'logistic_regression': LogisticRegression(random_state=42, max_iter=1000),
'random_forest': RandomForestClassifier(n_estimators=200, random_state=42),
'svm': SVC(probability=True, random_state=42)
}
individual_results = {}
for name, model in models.items():
print(f"\n๐ฏ Training {name}...")
pipeline.set_model(name, model.get_params())
pipeline.train_model()
individual_results[name] = pipeline.evaluate()
print(f" Accuracy: {individual_results[name].get('accuracy', 0):.3f}")
# Create ensemble based on AI recommendations
print("\n๐ Creating AI-Recommended Ensemble...")
voting_clf = VotingClassifier(
estimators=[
('lr', LogisticRegression(random_state=42, max_iter=1000)),
('rf', RandomForestClassifier(n_estimators=200, random_state=42)),
('svc', SVC(probability=True, random_state=42))
],
voting='soft', # AI recommended soft voting
weights=[1, 2, 1] # AI recommended weights based on performance
)
# Train ensemble
pipeline.set_model('voting_classifier', voting_clf.get_params())
pipeline.model_instance = voting_clf
pipeline.train_model()
ensemble_results = pipeline.evaluate()
print(f"\n๐ Ensemble Results:")
print(f" Ensemble Accuracy: {ensemble_results.get('accuracy', 0):.3f}")
print(f" Performance Improvement: {ensemble_results.get('accuracy', 0) - max(individual_results.values(), key=lambda x: x.get('accuracy', 0)).get('accuracy', 0):.3f}")
# Get post-ensemble analysis
post_ensemble_query = f"""
Ensemble achieved {ensemble_results.get('accuracy', 0):.1%} accuracy vs {max(individual_results.values(), key=lambda x: x.get('accuracy', 0)).get('accuracy', 0):.1%} best individual model.
Analyze ensemble performance, identify which models contributed most,
assess overfitting risk, recommend weight adjustments, and suggest
optimization strategies for production deployment.
"""
post_analysis = pipeline.suggestions(user_query=post_ensemble_query, metrics=ensemble_results, interactive=True)
Example 4: Advanced Hyperparameter Optimization with Chain-of-Thought
# โ๏ธ ADVANCED HYPERPARAMETER OPTIMIZATION
import data_science_pro
from sklearn.model_selection import RandomizedSearchCV, GridSearchCV
import numpy as np
print("โ๏ธ ADVANCED HYPERPARAMETER OPTIMIZATION WITH REASONING")
print("=" * 70)
# Initialize pipeline
pipeline = data_science_pro.DataSciencePro(api_key='your-openai-key')
pipeline.load_data(your_data)
pipeline.preprocess()
# Get AI recommendations for hyperparameter strategy
hp_query = """
For my dataset with {pipeline.data.shape[0]} samples and {pipeline.data.shape[1]} features,
recommend optimal hyperparameter optimization strategy.
Include parameter ranges for RandomForest, search method selection (Grid vs Random vs Bayesian),
number of iterations, cross-validation strategy, computational budget allocation,
and expected performance gains with confidence intervals.
"""
hp_suggestions = pipeline.suggestions(user_query=hp_query, interactive=True)
# Implement AI-recommended hyperparameter search
print("\n๐ Implementing AI-Recommended Hyperparameter Search...")
# Define parameter distributions based on AI recommendations
param_distributions = {
'n_estimators': [100, 200, 300, 400, 500], # AI recommended range
'max_depth': [3, 5, 7, 10, 15, 20, None], # AI recommended
'min_samples_split': [2, 5, 10, 15], # AI recommended
'min_samples_leaf': [1, 2, 4, 6], # AI recommended
'max_features': ['sqrt', 'log2', None], # AI recommended
'bootstrap': [True, False] # AI recommended
}
# AI recommended RandomizedSearch over GridSearch for efficiency
random_search = RandomizedSearchCV(
estimator=pipeline.model_instance,
param_distributions=param_distributions,
n_iter=50, # AI recommended iterations
cv=5, # AI recommended cross-validation
scoring='accuracy',
n_jobs=-1,
random_state=42,
verbose=1
)
print("\n๐ฏ Starting Randomized Search...")
random_search.fit(pipeline.X_train, pipeline.y_train)
print(f"\n๐ Best Parameters: {random_search.best_params_}")
print(f"๐ฏ Best CV Score: {random_search.best_score_:.4f}")
# Update pipeline with optimized model
pipeline.model_instance = random_search.best_estimator_
optimized_results = pipeline.evaluate()
print(f"\n๐ Optimized Model Performance:")
print(f" Optimized Accuracy: {optimized_results.get('accuracy', 0):.4f}")
print(f" Improvement: {optimized_results.get('accuracy', 0) - baseline_results.get('accuracy', 0):.4f}")
# Get optimization analysis
optimization_analysis_query = f"""
Hyperparameter optimization improved accuracy from {baseline_results.get('accuracy', 0):.3f} to {optimized_results.get('accuracy', 0):.3f}.
Analyze which parameters contributed most to improvement, assess optimization efficiency,
recommend further tuning strategies, identify potential overfitting in parameter selection,
and suggest production monitoring for hyperparameter drift.
"""
optimization_insights = pipeline.suggestions(user_query=optimization_analysis_query, metrics=optimized_results, interactive=True)
Example 5: Comprehensive Model Diagnostics and Explainability
# ๐ฌ COMPREHENSIVE MODEL DIAGNOSTICS
import data_science_pro
import shap
import matplotlib.pyplot as plt
print("๐ฌ COMPREHENSIVE MODEL DIAGNOSTICS AND EXPLAINABILITY")
print("=" * 75)
# Initialize pipeline
pipeline = data_science_pro.DataScience_pro(api_key='your-openai-key')
pipeline.load_data(your_data)
pipeline.preprocess()
pipeline.train_model()
# Get comprehensive diagnostics recommendations
diagnostics_query = """
Provide comprehensive model diagnostics including bias detection, fairness assessment,
feature importance validation, prediction confidence analysis, edge case identification,
model stability evaluation, and recommendations for improving model interpretability
and trustworthiness in production environment.
"""
diagnostics_suggestions = pipeline.suggestions(user_query=diagnostics_query, interactive=True)
# Implement SHAP analysis for explainability
print("\n๐ฏ Generating SHAP Explainability Analysis...")
explainer = shap.TreeExplainer(pipeline.model_instance)
shap_values = explainer.shap_values(pipeline.X_test)
# Get SHAP interpretation from AI
shap_query = f"""
SHAP analysis shows feature importance rankings. Interpret these results in business context,
identify potential biases, assess feature interaction effects, validate business logic alignment,
and provide recommendations for improving model transparency and stakeholder communication.
"""
shap_interpretation = pipeline.suggestions(user_query=shap_query, metrics=pipeline.evaluate(), interactive=True)
# Generate comprehensive fairness assessment
fairness_query = """
Assess model fairness across different demographic groups, identify potential discrimination,
measure equalized odds and demographic parity, recommend bias mitigation strategies,
and provide compliance guidance for regulated industries.
"""
fairness_assessment = pipeline.suggestions(user_query=fairness_query, interactive=True)
print(f"\n๐ Complete Diagnostics Summary:")
print(f"๐ฏ Model Performance: {pipeline.evaluate().get('accuracy', 0):.3f}")
print(f"๐ Explainability: SHAP analysis completed")
print(f"โ๏ธ Fairness Assessment: Comprehensive evaluation provided")
print(f"๐ Production Readiness: Complete diagnostics available")
Example 6: Real-Time Model Monitoring and Drift Detection
# ๐ REAL-TIME MODEL MONITORING
import data_science_pro
from datetime import datetime, timedelta
import time
print("๐ REAL-TIME MODEL MONITORING AND DRIFT DETECTION")
print("=" * 70)
# Initialize pipeline with production model
pipeline = data_science_pro.DataSciencePro(api_key='your-openai-key')
pipeline.load_model('production_model.pkl') # Load your production model
# Get monitoring strategy recommendations
monitoring_query = """
Design comprehensive real-time monitoring strategy for production ML model.
Include data drift detection algorithms, model performance tracking,
alert thresholds, automated retraining triggers, A/B testing framework,
rollback procedures, and compliance reporting requirements.
"""
monitoring_strategy = pipeline.suggestions(user_query=monitoring_query, interactive=True)
def comprehensive_monitoring_loop():
"""Real-time monitoring with AI-powered insights"""
while True:
print(f"\n๐ Monitoring Check - {datetime.now()}")
# Simulate new data (replace with actual data ingestion)
new_data = get_new_production_data() # Your data source
# Comprehensive drift analysis
drift_query = f"""
Analyze new batch of {len(new_data)} records for data drift.
Compare feature distributions, detect covariate shift,
assess prediction confidence changes, identify emerging patterns,
and recommend corrective actions if drift detected.
"""
drift_analysis = pipeline.suggestions(user_query=drift_query, csv_data=new_data, interactive=True)
# Performance monitoring
if 'drift_detected' in drift_analysis and drift_analysis['drift_detected']:
print("๐จ DRIFT DETECTED - Initiating Analysis...")
# Get corrective action recommendations
corrective_query = f"""
Data drift detected with severity {drift_analysis.get('drift_severity', 'unknown')}.
Recommend immediate corrective actions including model retraining strategy,
data validation procedures, stakeholder notification protocols,
and rollback decision criteria.
"""
corrective_actions = pipeline.suggestions(user_query=corrective_query, interactive=True)
# Log comprehensive monitoring event
monitoring_event = {
'timestamp': datetime.now(),
'drift_detected': True,
'drift_analysis': drift_analysis,
'corrective_actions': corrective_actions,
'action_taken': 'monitoring_alert_sent'
}
log_monitoring_event(monitoring_event)
# Wait for next monitoring cycle
time.sleep(3600) # Check every hour
# Start monitoring (in production, run as separate service)
# comprehensive_monitoring_loop()
print("โ
Real-time monitoring system configured and ready!")
๐ฏ Step 9: Advanced Agent AI and LLM Integration Examples
Example 1: Multi-Agent Collaborative Analysis
# ๐ค MULTI-AGENT COLLABORATIVE ANALYSIS
import data_science_pro
from data_science_pro.cycle.controller import Controller
import pandas as pd
print("๐ค MULTI-AGENT COLLABORATIVE ANALYSIS")
print("=" * 60)
# Initialize multi-agent controller
controller = Controller()
# Define specialized agent roles
agents = {
'data_quality_agent': 'Specialized in data quality assessment and cleaning',
'feature_engineering_agent': 'Expert in feature creation and selection',
'model_selection_agent': 'ML algorithm selection and hyperparameter optimization',
'evaluation_agent': 'Model validation and performance assessment',
'business_insights_agent': 'Business interpretation and recommendations'
}
# Load complex dataset
complex_data = pd.read_csv('complex_business_data.csv')
# Multi-stage collaborative analysis
def collaborative_analysis(data, agents):
"""Orchestrate multi-agent analysis"""
# Stage 1: Data Quality Agent Analysis
print("๐ Agent 1: Data Quality Assessment")
dq_query = """
Conduct comprehensive data quality audit. Identify missing patterns, outliers,
data inconsistencies, schema violations, and provide cleaning recommendations
with implementation priority and expected impact on downstream modeling.
"""
dq_results = controller.intelligent_workflow(
data=data,
user_query=dq_query,
stage='data_quality_assessment'
)
# Stage 2: Feature Engineering Agent
print("๐ง Agent 2: Feature Engineering Strategy")
fe_query = f"""
Based on data quality findings: {dq_results.get('key_insights', 'N/A')},
design optimal feature engineering pipeline. Create new features,
select most relevant variables, handle categorical encoding,
and provide feature importance rankings with business context.
"""
fe_results = controller.intelligent_workflow(
data=data,
user_query=fe_query,
stage='feature_engineering',
previous_insights=dq_results
)
# Stage 3: Model Selection Agent
print("๐ฏ Agent 3: Algorithm Selection")
ms_query = f"""
Given data characteristics from quality: {dq_results.get('data_profile', 'N/A')}
and engineered features: {fe_results.get('feature_summary', 'N/A')},
recommend optimal ML algorithms with hyperparameter ranges,
ensemble strategies, and expected performance benchmarks.
"""
ms_results = controller.intelligent_workflow(
data=data,
user_query=ms_query,
stage='model_selection',
previous_insights={**dq_results, **fe_results}
)
# Stage 4: Evaluation Agent
print("๐ Agent 4: Comprehensive Evaluation")
eval_query = f"""
Evaluate selected models: {ms_results.get('model_recommendations', 'N/A')}
using appropriate validation strategies. Assess overfitting, bias, fairness,
cross-validation stability, and provide deployment readiness assessment.
"""
eval_results = controller.intelligent_workflow(
data=data,
user_query=eval_query,
stage='model_evaluation',
previous_insights={**dq_results, **fe_results, **ms_results}
)
# Stage 5: Business Insights Agent
print("๐ผ Agent 5: Business Interpretation")
bi_query = f"""
Transform technical findings into business insights:
Model Performance: {eval_results.get('performance_summary', 'N/A')}
Key Features: {fe_results.get('important_features', 'N/A')}
Provide actionable recommendations, ROI projections, risk assessment,
and implementation roadmap with stakeholder communication strategy.
"""
bi_results = controller.intelligent_workflow(
data=data,
user_query=bi_query,
stage='business_insights',
previous_insights={**dq_results, **fe_results, **ms_results, **eval_results}
)
return {
'data_quality': dq_results,
'feature_engineering': fe_results,
'model_selection': ms_results,
'evaluation': eval_results,
'business_insights': bi_results
}
# Execute collaborative analysis
results = collaborative_analysis(complex_data, agents)
print("\n" + "="*60)
print("๐ MULTI-AGENT ANALYSIS COMPLETE")
print("="*60)
for agent, result in results.items():
print(f"โ
{agent}: {result.get('status', 'completed')}")
print(f" Key Insight: {result.get('key_insight', 'N/A')}")
Example 2: Conversational AI for Data Science
# ๐ฌ CONVERSATIONAL AI DATA SCIENCE ASSISTANT
import data_science_pro
print("๐ฌ CONVERSATIONAL AI DATA SCIENCE ASSISTANT")
print("=" * 60)
class ConversationalDataScientist:
def __init__(self, api_key):
self.pipeline = data_science_pro.DataSciencePro(api_key=api_key)
self.conversation_history = []
self.context = {}
def chat(self, user_message):
"""Natural language conversation interface"""
# Add to conversation history
self.conversation_history.append({
'role': 'user',
'message': user_message,
'timestamp': pd.Timestamp.now()
})
# Context-aware query processing
enhanced_query = self._enhance_query_with_context(user_message)
# Get AI response with conversation context
response = self.pipeline.suggestions(
user_query=enhanced_query,
interactive=True,
conversation_history=self.conversation_history
)
# Add AI response to history
self.conversation_history.append({
'role': 'assistant',
'message': response.get('comprehensive_context', ''),
'timestamp': pd.Timestamp.now(),
'technical_details': response
})
return self._format_natural_response(response)
def _enhance_query_with_context(self, user_message):
"""Enhance user query with conversation context"""
# Extract key context from history
recent_topics = self._extract_recent_topics()
data_state = self._get_current_data_state()
return f"""
User Question: {user_message}
Conversation Context:
- Recent topics discussed: {recent_topics}
- Current data state: {data_state}
- Previous insights: {self._get_relevant_insights(user_message)}
Provide comprehensive answer with specific technical details and actionable recommendations.
"""
def _format_natural_response(self, technical_response):
"""Convert technical response to natural language"""
# Extract key information
key_insights = technical_response.get('key_insights', '')
recommendations = technical_response.get('recommendations', [])
# Generate conversational response
natural_response = f"""
Based on my analysis, here's what I found:
{key_insights}
Here are my recommendations:
{self._format_recommendations(recommendations)}
Would you like me to dive deeper into any specific aspect or help you implement these suggestions?
"""
return natural_response
# Example conversation
ai_assistant = ConversationalDataScientist(api_key='your-openai-key')
# Load data
ai_assistant.pipeline.load_data(your_data)
# Natural conversation examples
conversation_examples = [
"What do you think about the quality of my data?",
"Which features are most important for prediction?",
"Should I use Random Forest or Neural Networks?",
"How can I improve my model's accuracy?",
"What are the business implications of these results?",
"Help me prepare this model for production deployment"
]
print("๐ฃ๏ธ Example Conversations:")
for question in conversation_examples:
print(f"\n๐ค User: {question}")
response = ai_assistant.chat(question)
print(f"๐ค AI: {response}")
Example 3: Automated Research and Development Pipeline
# ๐ฌ AUTOMATED R&D PIPELINE
import data_science_pro
import json
print("๐ฌ AUTOMATED RESEARCH & DEVELOPMENT PIPELINE")
print("=" * 60)
class AutomatedResearchPipeline:
def __init__(self, api_key):
self.controller = data_science_pro.cycle.controller.Controller()
self.research_log = []
def research_hypothesis(self, hypothesis, dataset):
"""Automated hypothesis testing and research"""
print(f"๐ Research Hypothesis: {hypothesis}")
# Stage 1: Hypothesis Analysis
hypothesis_query = f"""
Analyze research hypothesis: "{hypothesis}"
Provide theoretical background, expected outcomes,
required data characteristics, experimental design,
statistical tests needed, and potential limitations.
"""
hypothesis_analysis = self.controller.intelligent_workflow(
data=dataset,
user_query=hypothesis_query,
stage='hypothesis_analysis'
)
# Stage 2: Experimental Design
experiment_query = f"""
Design comprehensive experiment to test: "{hypothesis}"
Based on analysis: {hypothesis_analysis.get('research_framework', 'N/A')}
Include methodology, control variables, success metrics,
sample size requirements, validation strategies.
"""
experiment_design = self.controller.intelligent_workflow(
data=dataset,
user_query=experiment_query,
stage='experimental_design'
)
# Stage 3: Automated Experimentation
print("๐งช Conducting Automated Experiments...")
experiments = self._run_automated_experiments(
dataset,
experiment_design.get('experiment_plan', [])
)
# Stage 4: Results Analysis and Publication
results_query = f"""
Analyze experimental results: {json.dumps(experiments, indent=2)}
Provide statistical significance testing, effect size calculations,
confidence intervals, practical significance assessment,
and research publication recommendations.
"""
research_results = self.controller.intelligent_workflow(
data=dataset,
user_query=results_query,
stage='results_analysis'
)
return {
'hypothesis': hypothesis,
'research_framework': hypothesis_analysis,
'experiment_design': experiment_design,
'experimental_results': experiments,
'final_analysis': research_results
}
def _run_automated_experiments(self, dataset, experiment_plan):
"""Execute automated experiments"""
results = []
for experiment in experiment_plan:
print(f"๐งช Running: {experiment.get('name', 'Unknown Experiment')}")
# Execute experiment with AI guidance
experiment_result = self.controller.intelligent_workflow(
data=dataset,
user_query=f"Execute experiment: {experiment.get('description', '')}",
stage='experiment_execution'
)
results.append({
'experiment_name': experiment.get('name', ''),
'result': experiment_result,
'timestamp': pd.Timestamp.now()
})
return results
# Example R&D usage
rd_pipeline = AutomatedResearchPipeline(api_key='your-openai-key')
# Define research hypotheses
research_hypotheses = [
"Customer churn is primarily driven by service quality rather than pricing",
"Feature engineering can improve model performance by at least 15%",
"Ensemble methods outperform individual algorithms on imbalanced datasets",
"Cross-validation provides better generalization than simple train-test split"
]
# Conduct automated research
print("๐ Starting Automated Research Pipeline")
research_results = []
for hypothesis in research_hypotheses:
print(f"\n{'='*60}")
print(f"๐งช Testing: {hypothesis}")
print('='*60)
result = rd_pipeline.research_hypothesis(hypothesis, your_data)
research_results.append(result)
print(f"โ
Research Complete!")
print(f"๐ Results: {result['final_analysis'].get('research_conclusion', 'N/A')}")
# Generate research summary
print(f"\n{'='*80}")
print("๐ AUTOMATED RESEARCH SUMMARY")
print('='*80)
for i, result in enumerate(research_results, 1):
print(f"{i}. {result['hypothesis']}")
print(f" Status: {result['final_analysis'].get('significance_level', 'N/A')}")
print(f" Impact: {result['final_analysis'].get('practical_significance', 'N/A')}")
๐ฏ Step 10: Production-Ready Advanced Examples
Example 1: Enterprise-Scale MLOps Pipeline
# ๐ญ ENTERPRISE-SCALE MLOPS PIPELINE
import data_science_pro
import mlflow
import pandas as pd
print("๐ญ ENTERPRISE-SCALE MLOPS PIPELINE")
print("=" * 60)
class EnterpriseMLOpsPipeline:
def __init__(self, api_key, mlflow_uri):
self.controller = data_science_pro.cycle.controller.Controller()
self.mlflow_uri = mlflow_uri
self.setup_mlflow()
def setup_mlflow(self):
"""Configure MLflow for enterprise tracking"""
mlflow.set_tracking_uri(self.mlflow_uri)
mlflow.set_experiment("enterprise_ml_pipeline")
def run_production_pipeline(self, data_path, business_requirements):
"""Complete enterprise MLOps pipeline"""
with mlflow.start_run():
print("๐ Starting Enterprise MLOps Pipeline")
# Stage 1: Business Requirements Analysis
print("๐ Stage 1: Business Requirements Analysis")
requirements_analysis = self.controller.intelligent_workflow(
data=None,
user_query=f"Analyze business requirements: {business_requirements}",
stage='requirements_analysis'
)
mlflow.log_param("business_requirements", business_requirements)
mlflow.log_param("analysis_framework", requirements_analysis.get('framework', 'N/A'))
# Stage 2: Data Ingestion and Validation
print("๐ Stage 2: Data Ingestion and Validation")
data = pd.read_csv(data_path)
ingestion_query = f"""
Validate data ingestion for {len(data)} records with {len(data.columns)} features.
Check data quality, schema compliance, business rule validation,
and provide data lineage documentation.
"""
ingestion_result = self.controller.intelligent_workflow(
data=data,
user_query=ingestion_query,
stage='data_ingestion'
)
mlflow.log_metric("data_quality_score", ingestion_result.get('quality_score', 0))
mlflow.log_metric("record_count", len(data))
# Stage 3: Automated Feature Engineering
print("๐ง Stage 3: Automated Feature Engineering")
feature_query = f"""
Generate production-ready features based on business requirements: {business_requirements}
and data characteristics: {ingestion_result.get('data_profile', 'N/A')}
Include feature selection, transformation pipelines, and feature store integration.
"""
feature_result = self.controller.intelligent_workflow(
data=data,
user_query=feature_query,
stage='feature_engineering'
)
mlflow.log_param("feature_count", feature_result.get('final_feature_count', 0))
mlflow.log_param("feature_pipeline", feature_result.get('pipeline_summary', 'N/A'))
# Stage 4: Model Training and Validation
print("๐ฏ Stage 4: Model Training and Validation")
model_query = f"""
Train production models based on:
Business requirements: {business_requirements}
Feature summary: {feature_result.get('feature_summary', 'N/A')}
Include A/B testing setup, canary deployment strategy, and rollback procedures.
"""
model_result = self.controller.intelligent_workflow(
data=data,
user_query=model_query,
stage='model_training'
)
# Log model performance metrics
mlflow.log_metric("model_accuracy", model_result.get('best_accuracy', 0))
mlflow.log_metric("cv_score", model_result.get('cv_score', 0))
mlflow.log_param("best_algorithm", model_result.get('best_algorithm', 'N/A'))
# Stage 5: Production Deployment
print("๐ Stage 5: Production Deployment")
deployment_query = f"""
Prepare production deployment for model with {model_result.get('best_accuracy', 0):.3f} accuracy.
Include containerization, API design, monitoring setup, alerting rules,
scaling strategy, and disaster recovery procedures.
"""
deployment_result = self.controller.intelligent_workflow(
data=None,
user_query=deployment_query,
stage='production_deployment'
)
mlflow.log_param("deployment_strategy", deployment_result.get('strategy', 'N/A'))
mlflow.log_param("monitoring_setup", deployment_result.get('monitoring', 'N/A'))
return {
'requirements_analysis': requirements_analysis,
'data_ingestion': ingestion_result,
'feature_engineering': feature_result,
'model_training': model_result,
'deployment': deployment_result,
'mlflow_run_id': mlflow.active_run().info.run_id
}
# Execute enterprise pipeline
enterprise_pipeline = EnterpriseMLOpsPipeline(
api_key='your-openai-key',
mlflow_uri='http://your-mlflow-server:5000'
)
results = enterprise_pipeline.run_production_pipeline(
data_path='enterprise_data.csv',
business_requirements="Predict customer churn with 90%+ accuracy for proactive retention campaigns"
)
print(f"\nโ
Enterprise Pipeline Complete!")
print(f"๐ฏ MLflow Run ID: {results['mlflow_run_id']}")
print(f"๐ Final Accuracy: {results['model_training'].get('best_accuracy', 0):.3f}")
Example 2: Advanced Analytics with Chain-of-Thought Reasoning
# ๐ง ADVANCED ANALYTICS WITH CHAIN-OF-THOUGHT REASONING
import data_science_pro
print("๐ง ADVANCED ANALYTICS WITH CHAIN-OF-THOUGHT REASONING")
print("=" * 70)
def advanced_analytics_with_reasoning(data, analysis_goal):
"""Comprehensive analytics with step-by-step reasoning"""
pipeline = data_science_pro.DataSciencePro(api_key='your-openai-key')
pipeline.load_data(data)
# Step 1: Problem Understanding and Decomposition
understanding_query = f"""
Analysis Goal: {analysis_goal}
Decompose this analysis into logical steps, identify required data elements,
establish success criteria, and create comprehensive analysis framework.
Include reasoning for each step and potential challenges with mitigation strategies.
"""
understanding = pipeline.suggestions(
user_query=understanding_query,
interactive=True,
reasoning_mode='detailed'
)
# Step 2: Data Exploration with Reasoning
exploration_query = f"""
Based on analysis framework: {understanding.get('framework', 'N/A')}
Conduct systematic data exploration with reasoning for each finding.
Explain why certain patterns exist, what they mean for the analysis goal,
and how they influence subsequent modeling decisions.
"""
exploration = pipeline.suggestions(
user_query=exploration_query,
interactive=True,
reasoning_mode='step_by_step'
)
# Step 3: Feature Engineering with Justification
feature_query = f"""
Given exploration findings: {exploration.get('key_findings', 'N/A')}
Design feature engineering pipeline with detailed justification for each transformation.
Explain the reasoning behind feature selection, creation, and transformation choices.
Include expected impact on model performance and business interpretability.
"""
features = pipeline.suggestions(
user_query=feature_query,
interactive=True,
reasoning_mode='justified'
)
# Step 4: Model Selection with Comparative Reasoning
model_query = f"""
With engineered features: {features.get('feature_summary', 'N/A')}
Compare multiple modeling approaches with detailed reasoning for each choice.
Explain trade-offs between accuracy, interpretability, computational efficiency,
and business constraints. Provide evidence-based recommendations.
"""
model_selection = pipeline.suggestions(
user_query=model_query,
interactive=True,
reasoning_mode='comparative'
)
# Step 5: Results Interpretation with Business Reasoning
pipeline.preprocess()
pipeline.train_model()
results = pipeline.evaluate()
interpretation_query = f"""
Model Results: {json.dumps(results, indent=2)}
Provide comprehensive business interpretation with reasoning chain.
Explain what these results mean in business context, why they matter,
and how they should influence decision-making. Include confidence assessment
and limitations with their implications.
"""
interpretation = pipeline.suggestions(
user_query=interpretation_query,
metrics=results,
interactive=True,
reasoning_mode='business_context'
)
return {
'problem_understanding': understanding,
'data_exploration': exploration,
'feature_engineering': features,
'model_selection': model_selection,
'results_interpretation': interpretation,
'reasoning_chain': self._compile_reasoning_chain([
understanding, exploration, features, model_selection, interpretation
])
}
# Execute advanced analytics with reasoning
results = advanced_analytics_with_reasoning(
data=your_data,
analysis_goal="Optimize customer lifetime value prediction for marketing budget allocation"
)
print("\n" + "="*80)
print("๐ง CHAIN-OF-THOUGHT ANALYSIS COMPLETE")
print("="*80)
print(f"๐ Problem Understanding: {len(results['problem_understanding'].get('steps', []))} steps identified")
print(f"๐ Data Exploration: {results['data_exploration'].get('finding_count', 0)} key findings")
print(f"๐ง Feature Engineering: {results['feature_engineering'].get('feature_count', 0)} features created")
print(f"๐ฏ Model Selection: {results['model_selection'].get('algorithm_count', 0)} algorithms compared")
print(f"๐ก Business Insights: {results['results_interpretation'].get('insight_count', 0)} actionable insights")
๐ Complete Library Capabilities Summary
๐ค AI-Powered Features:
- Chain-of-Thought Reasoning: Multi-step analytical thinking for complex problems
- Conversational Interface: Natural language data science interactions
- Multi-Agent Collaboration: Specialized AI agents working together
- Automated Research: Hypothesis testing and experimental design
- Business Intelligence: Technical-to-business translation with reasoning
๐ Advanced Analytics:
- Comprehensive Data Quality Assessment: Multi-dimensional data validation
- Intelligent Feature Engineering: AI-driven feature creation and selection
- Advanced Model Selection: Algorithm comparison with justification
- Cross-Validation and Stability Analysis: Robust model validation
- Production Monitoring: Real-time drift detection and alerting
๐ญ Enterprise MLOps:
- End-to-End Pipeline Automation: Complete ML workflow automation
- MLflow Integration: Professional experiment tracking and model management
- Production Deployment: Containerization and API deployment
- A/B Testing Framework: Statistical testing for model comparison
- Risk Assessment and Compliance: Enterprise-grade safety and compliance
๐ง Reasoning Capabilities:
- Step-by-Step Analysis: Detailed reasoning for each decision
- Comparative Analysis: Multi-option comparison with trade-offs
- Business Context Integration: Technical results with business interpretation
- Confidence Assessment: Uncertainty quantification and limitation identification
- Actionable Recommendations: Specific, implementable next steps
This comprehensive library combines cutting-edge AI, advanced analytics, and enterprise-grade MLOps to provide a complete data science solution with thorough chain-of-thought reasoning and multi-agent collaboration capabilities.
๐ ๏ธ Step 9: Troubleshooting Common Issues
Issue 1: Import Errors
# If you get: ModuleNotFoundError: No module named 'data_science_pro'
# Solution: Check installation and Python path
import sys
print("Python path:", sys.path)
print("Current directory:", sys.getcwd())
# Reinstall if needed
!pip install -e . # or python -m pip install -e .
Issue 2: OpenAI API Errors
# If you get: AuthenticationError or RateLimitError
# Solution: Check your API key
# Test your API key
try:
import openai
openai.api_key = 'your-openai-key'
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "Hello"}]
)
print("โ
API key is working")
except Exception as e:
print(f"โ API key issue: {e}")
print("๐ก Tip: Get your API key from https://platform.openai.com/api-keys")
Issue 3: Data Loading Issues
# If you get: FileNotFoundError or parsing errors
# Solution: Check file path and format
import os
print("Current directory:", os.getcwd())
print("Files in directory:", [f for f in os.listdir('.') if f.endswith('.csv')])
# Try different options
data = pd.read_csv('your_file.csv', encoding='latin-1', sep=';', header=0)
Issue 4: Model Training Errors
# If you get: ValueError about data types or shapes
# Solution: Check your data after preprocessing
print("Data types:", pipeline.data.dtypes)
print("Data shape:", pipeline.data.shape)
print("Target column:", pipeline.target_col if hasattr(pipeline, 'target_col') else "Not set")
print("Missing values:", pipeline.data.isnull().sum().sum())
๐งช Step 10: Comprehensive Installation Test
Run This Test to Verify Everything Works
import data_science_pro
import pandas as pd
import numpy as np
import os
def comprehensive_test():
"""Test all functionality step by step"""
print("๐งช Comprehensive Data Science Pro Test")
print("=" * 50)
# Test 1: Basic import
print("1๏ธโฃ Testing basic import...")
try:
from data_science_pro import DataSciencePro
print(" โ
Basic import successful")
except Exception as e:
print(f" โ Basic import failed: {e}")
return False
# Test 2: Advanced imports
print("2๏ธโฃ Testing advanced imports...")
try:
from data_science_pro.data import DataAnalyzer, DataLoader, DataOperations
from data_science_pro.modeling import Trainer, Evaluator, ModelRegistry
from data_science_pro.cycle import IntelligentController, ChainOfThoughtSuggester
print(" โ
Advanced imports successful")
except Exception as e:
print(f" โ ๏ธ Advanced imports: {e}")
# Test 3: Create test data
print("3๏ธโฃ Creating test data...")
np.random.seed(42)
test_data = pd.DataFrame({
'feature1': np.random.randn(100),
'feature2': np.random.choice(['A', 'B', 'C'], 100),
'feature3': np.random.randint(1, 100, 100),
'target': np.random.choice([0, 1], 100)
})
test_data.to_csv('test_comprehensive.csv', index=False)
print(" โ
Test data created")
# Test 4: Initialize pipeline
print("4๏ธโฃ Initializing pipeline...")
try:
pipeline = DataSciencePro(api_key='test-key')
print(" โ
Pipeline initialized (test mode)")
except Exception as e:
print(f" โ ๏ธ Pipeline init: {e}")
# Test 5: Data loading
print("5๏ธโฃ Testing data loading...")
try:
pipeline.input_data('test_comprehensive.csv', target_col='target')
print(" โ
Data loading successful")
except Exception as e:
print(f" โ ๏ธ Data loading: {e}")
# Test 6: Preprocessing
print("6๏ธโฃ Testing preprocessing...")
try:
pipeline.apply_action('fill_na')
print(" โ
Preprocessing successful")
except Exception as e:
print(f" โ ๏ธ Preprocessing: {e}")
# Test 7: Model training
print("7๏ธโฃ Testing model training...")
try:
pipeline.set_model('randomforest', {'n_estimators': 10, 'random_state': 42})
pipeline.train_model()
print(" โ
Model training successful")
except Exception as e:
print(f" โ ๏ธ Model training: {e}")
# Test 8: Model evaluation
print("8๏ธโฃ Testing model evaluation...")
try:
results = pipeline.evaluate_model()
print(f" โ
Model evaluation successful: Accuracy = {results.get('accuracy', 'N/A')}")
except Exception as e:
print(f" โ ๏ธ Model evaluation: {e}")
# Test 9: Model registry
print("9๏ธโฃ Testing model registry...")
try:
from data_science_pro.modeling.registry import ModelRegistry
registry = ModelRegistry()
registry.save_model(pipeline.model, 'test_model', 'v1.0')
loaded_model = registry.load_model('test_model', 'v1.0')
print(" โ
Model registry successful")
except Exception as e:
print(f" โ ๏ธ Model registry: {e}")
# Clean up
if os.path.exists('test_comprehensive.csv'):
os.remove('test_comprehensive.csv')
print("\n๐ Comprehensive test completed!")
print("๐ก Note: Some tests may show warnings if API key is not provided")
print(" This is normal - the package core functionality works without API key")
return True
# Run the test
if __name__ == "__main__":
comprehensive_test()
๐ Next Steps & Advanced Usage
1. Custom Model Integration
# Add your own custom models
from sklearn.ensemble import GradientBoostingClassifier
# Register custom model (when feature is available)
pipeline.register_custom_model('gradient_boosting', GradientBoostingClassifier)
pipeline.set_model('gradient_boosting', {'n_estimators': 100, 'learning_rate': 0.1})
2. Batch Processing Multiple Datasets
# Process multiple datasets in batch
datasets = ['data1.csv', 'data2.csv', 'data3.csv']
results = []
for dataset in datasets:
print(f"Processing {dataset}...")
pipeline = DataSciencePro(api_key='your-key')
pipeline.input_data(dataset, target_col='target')
pipeline.apply_action('fill_na')
pipeline.set_model('randomforest')
pipeline.train_model()
result = pipeline.evaluate_model()
results.append({dataset: result})
print("Batch processing completed!")
for result in results:
print(result)
3. Integration with MLflow (Advanced)
# When MLflow integration is available
pipeline.log_experiment('my_experiment_1')
pipeline.track_metrics(['accuracy', 'f1_score', 'precision', 'recall'])
pipeline.log_parameters({'n_estimators': 100, 'max_depth': 10})
๐ค Support & Contributing
- Issues: Report bugs via GitHub Issues
- Feature Requests: Open a GitHub Issue with enhancement label
- Contributions: Fork the repository and submit pull requests
- Documentation: Help improve this README with your suggestions
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Congratulations! You now have a fully functional AI-powered data science pipeline.
Start experimenting with your own datasets and let the AI guide you to better models! ๐
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file data_science_pro-0.1.20.tar.gz.
File metadata
- Download URL: data_science_pro-0.1.20.tar.gz
- Upload date:
- Size: 93.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2c8f44887fe704617f1fd615515d13da2fbcb291b2f46df9f4cbbbfb6844644
|
|
| MD5 |
9a3814a1af342e4039925978aba837a8
|
|
| BLAKE2b-256 |
50243516a51b818e63cf551010a9c4af6265a012aa0de555e7d6022753d83d6c
|
File details
Details for the file data_science_pro-0.1.20-py3-none-any.whl.
File metadata
- Download URL: data_science_pro-0.1.20-py3-none-any.whl
- Upload date:
- Size: 65.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dbb99a0f4e3ec65e9a8ba7f53fe10c8919bd80fe63935a3f59d5e4dee4409b0e
|
|
| MD5 |
b0352ec918606d2061ee7ae11ce64b9a
|
|
| BLAKE2b-256 |
f966da106d5d2f29cf76863e9da7d797b1bc7e3e83e6fc03a56cc629cfedd7ee
|