LightningBO


NameLightningBO JSON
Version 0.1.2 PyPI version JSON
download
home_pageNone
SummaryLightningBO: JAXベースの高速ベイジアン最適化ライブラリ。ハイパーパラメータ探索やマーケティング最適化に最適。EI/PI/UCB/LCB獲得関数、ガウス過程、JIT高速化、メモリ効率設計。
upload_time2025-09-03 14:23:21
maintainerNone
docs_urlNone
authorNone
requires_python>=3.12
licenseNone
keywords bayesian optimization jax hyperparameter machine learning marketing mix
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # LightningBO

LightningBOは、ベイズ最適化(Bayesian Optimization)を簡単に実装・拡張できるPythonライブラリです。
本ライブラリは、ブラックボックス関数の最適化やハイパーパラメータ探索など、試行回数を抑えつつ効率的に最適解を見つけたい場面で活用できます。

## 特徴

- JAXベースの高速な計算
- 連続・離散パラメータ両対応
- 期待値改善(EI)などの獲得関数
- 拡張性の高い設計

## 使い方例

```python
import LightningBO.bayesian_optimization as bo
import LightningBO.bayesian_core as bc

# 最適化したい関数
def f(x):
	return x**2 - 4*x + 5

# 探索空間の定義
domain = {"x": bc.Continuous(-10, 10)}

# Optimizerの作成
optimizer = bo.Optimizer(domain=domain, maximize=False)

# 初期点
params = {"x": [0.0, 2.0, 5.0]}
ys = [f(x) for x in params["x"]]
state = optimizer.init(ys, params)

# 最適化ループ
for step in range(20):
	new_params = optimizer.sample(None, state)
	y = f(**new_params)
	state = optimizer.fit(state, y, new_params)

print("最適値:", state.best_score)
print("最適パラメータ:", state.best_params)
```

## 主な用途

- 機械学習モデルのハイパーパラメータ最適化
- 実験・シミュレーションのパラメータ探索
- その他ブラックボックス関数の最適化

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "LightningBO",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.12",
    "maintainer_email": null,
    "keywords": "bayesian optimization, jax, hyperparameter, machine learning, marketing mix",
    "author": null,
    "author_email": "s-ohtake <s.ohtake@cartahd.com>",
    "download_url": "https://files.pythonhosted.org/packages/8c/c5/67aa62223ea5bf83d7028fd076cf2df8bbd1e899fc98896868e3cfa8b54a/lightningbo-0.1.2.tar.gz",
    "platform": null,
    "description": "# LightningBO\n\nLightningBO\u306f\u3001\u30d9\u30a4\u30ba\u6700\u9069\u5316\uff08Bayesian Optimization\uff09\u3092\u7c21\u5358\u306b\u5b9f\u88c5\u30fb\u62e1\u5f35\u3067\u304d\u308bPython\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u3059\u3002\n\u672c\u30e9\u30a4\u30d6\u30e9\u30ea\u306f\u3001\u30d6\u30e9\u30c3\u30af\u30dc\u30c3\u30af\u30b9\u95a2\u6570\u306e\u6700\u9069\u5316\u3084\u30cf\u30a4\u30d1\u30fc\u30d1\u30e9\u30e1\u30fc\u30bf\u63a2\u7d22\u306a\u3069\u3001\u8a66\u884c\u56de\u6570\u3092\u6291\u3048\u3064\u3064\u52b9\u7387\u7684\u306b\u6700\u9069\u89e3\u3092\u898b\u3064\u3051\u305f\u3044\u5834\u9762\u3067\u6d3b\u7528\u3067\u304d\u307e\u3059\u3002\n\n## \u7279\u5fb4\n\n- JAX\u30d9\u30fc\u30b9\u306e\u9ad8\u901f\u306a\u8a08\u7b97\n- \u9023\u7d9a\u30fb\u96e2\u6563\u30d1\u30e9\u30e1\u30fc\u30bf\u4e21\u5bfe\u5fdc\n- \u671f\u5f85\u5024\u6539\u5584\uff08EI\uff09\u306a\u3069\u306e\u7372\u5f97\u95a2\u6570\n- \u62e1\u5f35\u6027\u306e\u9ad8\u3044\u8a2d\u8a08\n\n## \u4f7f\u3044\u65b9\u4f8b\n\n```python\nimport LightningBO.bayesian_optimization as bo\nimport LightningBO.bayesian_core as bc\n\n# \u6700\u9069\u5316\u3057\u305f\u3044\u95a2\u6570\ndef f(x):\n\treturn x**2 - 4*x + 5\n\n# \u63a2\u7d22\u7a7a\u9593\u306e\u5b9a\u7fa9\ndomain = {\"x\": bc.Continuous(-10, 10)}\n\n# Optimizer\u306e\u4f5c\u6210\noptimizer = bo.Optimizer(domain=domain, maximize=False)\n\n# \u521d\u671f\u70b9\nparams = {\"x\": [0.0, 2.0, 5.0]}\nys = [f(x) for x in params[\"x\"]]\nstate = optimizer.init(ys, params)\n\n# \u6700\u9069\u5316\u30eb\u30fc\u30d7\nfor step in range(20):\n\tnew_params = optimizer.sample(None, state)\n\ty = f(**new_params)\n\tstate = optimizer.fit(state, y, new_params)\n\nprint(\"\u6700\u9069\u5024:\", state.best_score)\nprint(\"\u6700\u9069\u30d1\u30e9\u30e1\u30fc\u30bf:\", state.best_params)\n```\n\n## \u4e3b\u306a\u7528\u9014\n\n- \u6a5f\u68b0\u5b66\u7fd2\u30e2\u30c7\u30eb\u306e\u30cf\u30a4\u30d1\u30fc\u30d1\u30e9\u30e1\u30fc\u30bf\u6700\u9069\u5316\n- \u5b9f\u9a13\u30fb\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u63a2\u7d22\n- \u305d\u306e\u4ed6\u30d6\u30e9\u30c3\u30af\u30dc\u30c3\u30af\u30b9\u95a2\u6570\u306e\u6700\u9069\u5316\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "LightningBO: JAX\u30d9\u30fc\u30b9\u306e\u9ad8\u901f\u30d9\u30a4\u30b8\u30a2\u30f3\u6700\u9069\u5316\u30e9\u30a4\u30d6\u30e9\u30ea\u3002\u30cf\u30a4\u30d1\u30fc\u30d1\u30e9\u30e1\u30fc\u30bf\u63a2\u7d22\u3084\u30de\u30fc\u30b1\u30c6\u30a3\u30f3\u30b0\u6700\u9069\u5316\u306b\u6700\u9069\u3002EI/PI/UCB/LCB\u7372\u5f97\u95a2\u6570\u3001\u30ac\u30a6\u30b9\u904e\u7a0b\u3001JIT\u9ad8\u901f\u5316\u3001\u30e1\u30e2\u30ea\u52b9\u7387\u8a2d\u8a08\u3002",
    "version": "0.1.2",
    "project_urls": {
        "Documentation": "https://github.com/s-ohtake/LightningBO/blob/main/docs/LightningBO.ipynb",
        "Homepage": "https://github.com/s-ohtake/LightningBO",
        "Repository": "https://github.com/s-ohtake/LightningBO"
    },
    "split_keywords": [
        "bayesian optimization",
        " jax",
        " hyperparameter",
        " machine learning",
        " marketing mix"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1d072509b9134ee0b42787388babef9aaefff6a1aa10ead531411e7eee9e1feb",
                "md5": "8cf4b1800764275a9d3b4a4937a89843",
                "sha256": "022e9134f190d56794a0405755fd4d3172abbdb9de349d21d2a521a33892a044"
            },
            "downloads": -1,
            "filename": "lightningbo-0.1.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8cf4b1800764275a9d3b4a4937a89843",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.12",
            "size": 14543,
            "upload_time": "2025-09-03T14:23:19",
            "upload_time_iso_8601": "2025-09-03T14:23:19.930117Z",
            "url": "https://files.pythonhosted.org/packages/1d/07/2509b9134ee0b42787388babef9aaefff6a1aa10ead531411e7eee9e1feb/lightningbo-0.1.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8cc567aa62223ea5bf83d7028fd076cf2df8bbd1e899fc98896868e3cfa8b54a",
                "md5": "df870882edca27360030b6dfd13496ac",
                "sha256": "1aa0a2d36c9f38716af89dee72bdb3a8f5bf3a455e4705cecf96f576ef40ade1"
            },
            "downloads": -1,
            "filename": "lightningbo-0.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "df870882edca27360030b6dfd13496ac",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.12",
            "size": 14609,
            "upload_time": "2025-09-03T14:23:21",
            "upload_time_iso_8601": "2025-09-03T14:23:21.063506Z",
            "url": "https://files.pythonhosted.org/packages/8c/c5/67aa62223ea5bf83d7028fd076cf2df8bbd1e899fc98896868e3cfa8b54a/lightningbo-0.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-03 14:23:21",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "s-ohtake",
    "github_project": "LightningBO",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "lightningbo"
}
        
Elapsed time: 1.59094s