# TFCI (Time Forecasting CI)
간단한 시계열 예측 라이브러리
### 기본 라이브러리 (tfci)
```bash
pip install tfci
```
## 사용법
### 기본 라이브러리 사용
```python
from tfci import predict
# YAML 설정 파일로 예측 실행
predict("config.yaml")
```
## 기능
### tfci 라이브러리
- ✅ 시계열 예측 (Prophet 기반)
- ✅ YAML 설정 파일 지원
- ✅ DB2 데이터베이스 연동
- ✅ group_key 리스트 지원
- ✅ 멀티프로세싱 지원
### tfci-mcp 패키지
- ✅ MCP (Model Context Protocol) 지원
- ✅ 다른 MCP들과 조합 가능
- ✅ JSON-RPC 통신
- ✅ 서버/클라이언트 분리
## 설정 파일 예시
```yaml
input:
source_type: "db" # or csv
db_type: "db2"
connection:
host: "DBURL"
port: PortNumber
user: "UserName"
password: "Pwd!"
database: "DBName"
table: "TableName"
features: ["COL_1", "COL_2", "COL_3"]
target: ["COL_4"]
prediction:
task_type: "timeseries"
future_steps: 5 # 예측 구간 (5년 후)
time_col: "COL_1"
group_key: ["COL_2", "COL_3"]
output:
source_type: "db" # or csv
db_type: "db2"
connection:
host: "DBURL"
port: PortNumber
user: "UserName"
password: "Pwd!"
database: "DBName"
table: "TableName"
```
## 의존성
### tfci
- pandas>=2.0.0
- numpy>=1.20.0
- prophet>=1.1.0
- scikit-learn>=1.0.0
- tqdm>=4.60.0
- PyYAML>=6.0
- requests>=2.25.0
### tfci-mcp
- tfci>=1.0.5
## 라이선스
MIT License
Raw data
{
"_id": null,
"home_page": null,
"name": "tfci",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": "TFCI Team <rosci671233@gmail.com>",
"keywords": "time-series, forecasting, prophet, machine-learning, prediction",
"author": null,
"author_email": "TFCI Team <rosci671233@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/be/c6/1b6044eb5a30886c358884f4629ca64d9030265adf9c232fce25e82c0f5e/tfci-2.0.0.tar.gz",
"platform": null,
"description": "# TFCI (Time Forecasting CI)\n\n\uac04\ub2e8\ud55c \uc2dc\uacc4\uc5f4 \uc608\uce21 \ub77c\uc774\ube0c\ub7ec\ub9ac\n\n### \uae30\ubcf8 \ub77c\uc774\ube0c\ub7ec\ub9ac (tfci)\n```bash\npip install tfci\n```\n\n\n## \uc0ac\uc6a9\ubc95\n\n### \uae30\ubcf8 \ub77c\uc774\ube0c\ub7ec\ub9ac \uc0ac\uc6a9\n```python\nfrom tfci import predict\n\n# YAML \uc124\uc815 \ud30c\uc77c\ub85c \uc608\uce21 \uc2e4\ud589\npredict(\"config.yaml\")\n```\n\n\n## \uae30\ub2a5\n\n### tfci \ub77c\uc774\ube0c\ub7ec\ub9ac\n- \u2705 \uc2dc\uacc4\uc5f4 \uc608\uce21 (Prophet \uae30\ubc18)\n- \u2705 YAML \uc124\uc815 \ud30c\uc77c \uc9c0\uc6d0\n- \u2705 DB2 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc5f0\ub3d9\n- \u2705 group_key \ub9ac\uc2a4\ud2b8 \uc9c0\uc6d0\n- \u2705 \uba40\ud2f0\ud504\ub85c\uc138\uc2f1 \uc9c0\uc6d0\n\n### tfci-mcp \ud328\ud0a4\uc9c0\n- \u2705 MCP (Model Context Protocol) \uc9c0\uc6d0\n- \u2705 \ub2e4\ub978 MCP\ub4e4\uacfc \uc870\ud569 \uac00\ub2a5\n- \u2705 JSON-RPC \ud1b5\uc2e0\n- \u2705 \uc11c\ubc84/\ud074\ub77c\uc774\uc5b8\ud2b8 \ubd84\ub9ac\n\n## \uc124\uc815 \ud30c\uc77c \uc608\uc2dc\n\n```yaml\ninput:\n source_type: \"db\" # or csv\n db_type: \"db2\"\n connection:\n host: \"DBURL\"\n port: PortNumber\n user: \"UserName\"\n password: \"Pwd!\"\n database: \"DBName\"\n table: \"TableName\"\n features: [\"COL_1\", \"COL_2\", \"COL_3\"]\n target: [\"COL_4\"]\nprediction:\n task_type: \"timeseries\"\n future_steps: 5 # \uc608\uce21 \uad6c\uac04 (5\ub144 \ud6c4)\n time_col: \"COL_1\"\n group_key: [\"COL_2\", \"COL_3\"]\noutput:\n source_type: \"db\" # or csv\n db_type: \"db2\"\n connection:\n host: \"DBURL\"\n port: PortNumber\n user: \"UserName\"\n password: \"Pwd!\"\n database: \"DBName\"\n table: \"TableName\"\n```\n\n## \uc758\uc874\uc131\n\n### tfci\n- pandas>=2.0.0\n- numpy>=1.20.0\n- prophet>=1.1.0\n- scikit-learn>=1.0.0\n- tqdm>=4.60.0\n- PyYAML>=6.0\n- requests>=2.25.0\n\n### tfci-mcp\n- tfci>=1.0.5\n\n## \ub77c\uc774\uc120\uc2a4\n\nMIT License\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Time Forecasting CI - \uc2dc\uacc4\uc5f4 \uc608\uce21 \ub77c\uc774\ube0c\ub7ec\ub9ac",
"version": "2.0.0",
"project_urls": {
"Documentation": "https://github.com/rosci671233/tfci#readme",
"Homepage": "https://github.com/your-username/tfci",
"Issues": "https://github.com/your-username/tfci/issues",
"Repository": "https://github.com/your-username/tfci"
},
"split_keywords": [
"time-series",
" forecasting",
" prophet",
" machine-learning",
" prediction"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "a8ec0e4facdfc59ca35b9f00705236d131836e009f7bc0aa093d1ad9a99062e2",
"md5": "150a40550c4a492ff11301c8575e0776",
"sha256": "ec10424303830c0469692203eb3ced008a3b42a1418d35f9f3c2c7a4d491a7b3"
},
"downloads": -1,
"filename": "tfci-2.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "150a40550c4a492ff11301c8575e0776",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 2269,
"upload_time": "2025-08-06T09:35:38",
"upload_time_iso_8601": "2025-08-06T09:35:38.661674Z",
"url": "https://files.pythonhosted.org/packages/a8/ec/0e4facdfc59ca35b9f00705236d131836e009f7bc0aa093d1ad9a99062e2/tfci-2.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "bec61b6044eb5a30886c358884f4629ca64d9030265adf9c232fce25e82c0f5e",
"md5": "7d2a288d914c1c0789795e187a3a0107",
"sha256": "b9787a4c792edfc44a1ec6e3e10d9144c9bdb7da6d8e77459db363839c5269ed"
},
"downloads": -1,
"filename": "tfci-2.0.0.tar.gz",
"has_sig": false,
"md5_digest": "7d2a288d914c1c0789795e187a3a0107",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 3250,
"upload_time": "2025-08-06T09:35:39",
"upload_time_iso_8601": "2025-08-06T09:35:39.724284Z",
"url": "https://files.pythonhosted.org/packages/be/c6/1b6044eb5a30886c358884f4629ca64d9030265adf9c232fce25e82c0f5e/tfci-2.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-06 09:35:39",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "rosci671233",
"github_project": "tfci#readme",
"github_not_found": true,
"lcname": "tfci"
}