Skip to main content

Happymath is a high-level mathematical modeling Python library. Its core philosophy lies in reducing users' learning costs through high-level encapsulation, enabling efficient mathematical modeling. It is particularly suitable for mathematical modeling competitions and applied mathematics fields.

Project description

HappyMath

PyPI version Python 3.8+ License: MIT

HappyMath is a comprehensive mathematical computing and machine learning library that provides unified interfaces for automated machine learning, multi-criteria decision making, differential equations, and mathematical optimization.

Features

🤖 AutoML - Automated Machine Learning

  • Classification: Automated model selection and hyperparameter tuning for classification tasks
  • Regression: Intelligent regression model building with feature engineering
  • Clustering: Unsupervised learning with automatic algorithm selection
  • Anomaly Detection: Outlier and anomaly identification algorithms
  • Time Series: Specialized time series forecasting and analysis

📊 Decision - Multi-Criteria Decision Making (MCDM)

A comprehensive framework for multi-criteria decision analysis with 80+ algorithms:

  • Subjective Weighting: AHP, BWM, FUCOM, ROC, and more
  • Objective Weighting: CRITIC, Entropy, MEREC, PSI, and others
  • Scoring Methods: TOPSIS, VIKOR, SAW, MOORA, and 30+ algorithms
  • Outranking Methods: ELECTRE and PROMETHEE families
  • Fuzzy Decision Making: Complete fuzzy methodology support

🔧 DiffEq - Differential Equations

Unified interface for solving differential equations:

  • Ordinary Differential Equations (ODE): Initial value and boundary value problems
  • Partial Differential Equations (PDE): Various numerical methods
  • Symbolic Analysis: Symbolic computation and analysis tools
  • Multiple Solvers: SciPy, SymPy, and custom implementations

⚙️ Opt - Mathematical Optimization

Comprehensive optimization framework supporting:

  • Linear Programming: Simplex and interior point methods
  • Nonlinear Programming: Gradient-based and derivative-free methods
  • Multi-objective Optimization: Pareto front analysis
  • Constraint Handling: Various constraint types and formulations
  • Solver Integration: Pyomo, Pymoo, and specialized solvers

Installation

pip install happymath

Requirements

  • Python 3.11+
  • All dependencies are automatically installed

Quick Start

AutoML Example

from happymath import AutoML
import pandas as pd

# Load your data
data = pd.read_csv('your_data.csv')
X, y = data.drop('target', axis=1), data['target']

# Automated classification
automl = AutoML.ClassificationML()
model = automl.fit(X, y)
predictions = model.predict(X_test)

Decision Analysis Example

from happymath import Decision
import numpy as np

# Decision matrix and criteria types
dm_data = np.array([[250, 16, 12], [200, 16, 8], [300, 32, 16]])
criteria = ['min', 'max', 'max']

# Calculate weights and rankings
weighting = Decision.ObjWeighting()
weights = weighting.decide(dataset=dm_data, criterion_type=criteria).get_weights()

scoring = Decision.ScoringDecision()
rankings = scoring.decide(dataset=dm_data, weights=weights, criterion_type=criteria).get_rankings()
print(rankings)

Differential Equations Example

from happymath import DiffEq
import numpy as np

# Define ODE system
def ode_func(t, y):
    return -y + np.sin(t)

# Solve ODE
solver = DiffEq.ODE()
result = solver.solve(ode_func, t_span=[0, 10], y0=[1.0])
t, y = result.get_solution()

Optimization Example

from happymath import Opt
import numpy as np

# Define optimization problem
def objective(x):
    return x[0]**2 + x[1]**2

# Solve optimization problem
optimizer = Opt.Optimization()
result = optimizer.minimize(objective, x0=[1.0, 1.0])
optimal_x = result.x
optimal_value = result.fun

Documentation

For detailed documentation, tutorials, and examples, please visit our documentation page.

Contributing

We welcome contributions! Please see our Contributing Guide for details.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

If you have any questions or need help, please:

Changelog

Version 0.1.0 (Current)

  • Initial release with complete AutoML, Decision, DiffEq, and Opt modules
  • 80+ decision analysis algorithms
  • Comprehensive optimization solver integration
  • Unified API design across all modules

Citation

If you use HappyMath in your research, please cite:

@software{happymath2024,
  title={HappyMath: A Comprehensive Mathematical Computing Library},
  author={HappyMathLabs},
  year={2024},
  url={https://github.com/HappyMathLabs/happymath}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

happymath-0.1.1.tar.gz (233.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

happymath-0.1.1-py3-none-any.whl (348.6 kB view details)

Uploaded Python 3

File details

Details for the file happymath-0.1.1.tar.gz.

File metadata

  • Download URL: happymath-0.1.1.tar.gz
  • Upload date:
  • Size: 233.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for happymath-0.1.1.tar.gz
Algorithm Hash digest
SHA256 97fad03fb6406f7d52f7aaca4b4809ad002c3226eceb6db587d73518f92f1f9c
MD5 05756cbd870050a696d91411acd0458d
BLAKE2b-256 f28b864d149ec6a68452692e170defa55056860015b43b51aa44ca9288800874

See more details on using hashes here.

File details

Details for the file happymath-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: happymath-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 348.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for happymath-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7935d0ecad41fabfd9625c15aacb484fba17940a8ff7ab4b4b2d4fd0acf17906
MD5 276c0fb32f2249493cdeb16ad69779a5
BLAKE2b-256 ee411cc24dfc6cfb44a4bfe4afb3f0c858a7070eb69af110b7922c4715319fb2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page