# 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.4
## 라이선스
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/25/8b/21da71763ff7bf39b7426ceef21e284752012ffa6848fc07c6d6483b4df4/tfci-1.0.6.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.4\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": "1.0.6",
"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": "10ea1e7a25e70d43b97e897ce18f01e3d3e83895597639a729f1c3609bac296e",
"md5": "1fb139cd59cef90e2b4fd7c512bf8044",
"sha256": "b9df677095def1ec208feaa58f25e157788ab097fa7578d673342a3ba0a49478"
},
"downloads": -1,
"filename": "tfci-1.0.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1fb139cd59cef90e2b4fd7c512bf8044",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 2270,
"upload_time": "2025-08-04T07:21:58",
"upload_time_iso_8601": "2025-08-04T07:21:58.549875Z",
"url": "https://files.pythonhosted.org/packages/10/ea/1e7a25e70d43b97e897ce18f01e3d3e83895597639a729f1c3609bac296e/tfci-1.0.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "258b21da71763ff7bf39b7426ceef21e284752012ffa6848fc07c6d6483b4df4",
"md5": "7df8ce49a5f105eaa404c56548afabba",
"sha256": "b395a8a0e4b9009e7176e639581a1bf4e8bb55a9100f526ee76c1b386d37f24c"
},
"downloads": -1,
"filename": "tfci-1.0.6.tar.gz",
"has_sig": false,
"md5_digest": "7df8ce49a5f105eaa404c56548afabba",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 3255,
"upload_time": "2025-08-04T07:21:59",
"upload_time_iso_8601": "2025-08-04T07:21:59.690378Z",
"url": "https://files.pythonhosted.org/packages/25/8b/21da71763ff7bf39b7426ceef21e284752012ffa6848fc07c6d6483b4df4/tfci-1.0.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-04 07:21:59",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "rosci671233",
"github_project": "tfci#readme",
"github_not_found": true,
"lcname": "tfci"
}