Instructions to use LLouis0622/early_warning_model with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Scikit-learn
How to use LLouis0622/early_warning_model with Scikit-learn:
from huggingface_hub import hf_hub_download import joblib model = joblib.load( hf_hub_download("LLouis0622/early_warning_model", "sklearn_model.joblib") ) # only load pickle files from sources you trust # read more about it here https://skops.readthedocs.io/en/stable/persistence.html - Notebooks
- Google Colab
- Kaggle
μμμ μ 쑰기경보 AI μμ€ν v2.0
μ€μ μΉ΄λ κ±°λ λ°μ΄ν°λ₯Ό νμ©νμ¬ μμμ μμ νμ μνμ 3-6κ°μ μ μ μμΈ‘νλ AI λͺ¨λΈ
κ°μ
- νμ κ°μ§μ¨ 85.7%: μ€μ μν λ§€μ₯μ λλΆλΆμ μ‘°κΈ°μ ν¬μ°©
- μ νλ 97.2%: λμ μ λ’°λλ‘ μνλ νκ°
- ν΄μ κ°λ₯: ꡬ체μ μΈ μν μμΈκ³Ό κ°μ λ°©μ μ μ
- μ€μκ° λΆμ: κ°λ¨ν APIλ‘ μ¦μ μμΈ‘
V2.0 μ£Όμ κ°μ μ¬ν
| μ§ν | V1.0 | V2.0 | κ°μ |
|---|---|---|---|
| Accuracy | 94.3% | 97.2% | +2.9%p |
| Recall | 68.2% | 85.7% | +17.5%p |
| Precision | 76.5% | 89.3% | +12.8%p |
μμΈ κ°μ λ΄μ: CHANGELOG_V2.md μ°Έκ³
λΉ λ₯Έ μμ
1. μ€μΉ
# λ ν¬μ§ν 리 ν΄λ‘
git clone https://github.com/yourusername/early_warning_ai_v2.git
cd early_warning_ai_v2
# μμ‘΄μ± μ€μΉ
pip install -r requirements.txt
2. λ°μ΄ν° μ€λΉ
λ°μ΄ν° νμΌμ data/raw/ ν΄λμ λ£κΈ°:
data/raw/
βββ big_data_set1_f.csv # λ§€μ₯ κΈ°λ³Έ μ 보
βββ ds2_monthly_usage.csv # μλ³ μ΄μ© λ°μ΄ν°
βββ ds3_monthly_customers.csv # μλ³ κ³ κ° λ°μ΄ν°
3. λͺ¨λΈ νμ΅
Jupyter λ ΈνΈλΆμ μ€ν:
jupyter notebook notebooks/train_model.ipynb
λλ Python μ€ν¬λ¦½νΈλ‘:
python src/train.py
4. μμΈ‘ μ¬μ©
from src.predictor import EarlyWarningPredictor
# λͺ¨λΈ λ‘λ
model = EarlyWarningPredictor.from_pretrained("models/")
# λ§€μ₯ λ°μ΄ν°
store_data = {
'store_id': 'CAFE_001',
'industry': 'μΉ΄ν',
'avg_sales': 35,
'reuse_rate': 20.0,
'operating_months': 24,
'sales_trend': -0.08
}
# μμΈ‘
result = model.predict(store_data)
print(f"μνλ: {result['risk_score']}/100")
print(f"λ±κΈ: {result['risk_level']}")
print(f"νμ
νλ₯ : {result['closure_probability']:.1%}")
μΆλ ₯:
μνλ: 78.5/100
λ±κΈ: λμ
νμ
νλ₯ : 78.5%
μ£Όμ μν μμΈ:
- λ§€μΆ κ°μ μΆμΈ: 32.5μ
- κ³ κ° μ κ°μ: 25.8μ
- μ¬μ΄μ©λ₯ νλ½: 12.3μ
νλ‘μ νΈ κ΅¬μ‘°
early_warning_ai_v2/
βββ README.md # μ΄ νμΌ
βββ CHANGELOG_V2.md # V2.0 κ°μ μ¬ν
βββ requirements.txt # μμ‘΄μ±
β
βββ data/ # λ°μ΄ν° ν΄λ
β βββ raw/ # μλ³Έ λ°μ΄ν° (μ¬κΈ°μ CSV νμΌ λ£κΈ°)
β βββ processed/ # μ μ²λ¦¬λ λ°μ΄ν° μλ μμ±)
β
βββ models/ # νμ΅λ λͺ¨λΈ(μλ μμ±)
β βββ xgboost_model.pkl
β βββ lightgbm_model.pkl
β βββ config.json
β βββ feature_names.json
β
βββ src/ # μμ€ μ½λ
β βββ predictor.py # μμΈ‘ ν΄λμ€
β βββ feature_engineering.py # νΉμ§ μμ±
β βββ train.py # νμ΅ μ€ν¬λ¦½νΈ
β βββ utils.py # μ νΈλ¦¬ν°
β
βββ notebooks/ # Jupyter λ
ΈνΈλΆ
βββ train_model.ipynb # νμ΅ λ
ΈνΈλΆ
μ£Όμ κΈ°λ₯
1. λ€μ€ κΈ°κ° λ§€μΆ λΆμ
- 1κ°μ, 3κ°μ, 6κ°μ, 12κ°μ μΆμΈ λμ λΆμ
- λ¨κΈ° μκΈ°μ μ₯κΈ° νλ½ λͺ¨λ κ°μ§
2. κ³ κ° νλ λΆμ
- μ¬μ΄μ©λ₯ λ³ν μΆμ
- μ κ· vs κΈ°μ‘΄ κ³ κ° λΉμ¨
- μ°λ Ή/μ±λ³ κ΅¬μ± λ³ν
3. κ³μ μ± ν¨ν΄ κ°μ§
- μ μ’ λ³ κ³μ μ λ§€μΆ λ³λ κ³ λ €
- μ€κ²½λ³΄(False Positive) λν κ°μ
4. μμλΈ λͺ¨λΈ
- XGBoost + LightGBM + CatBoost
- νμ΄νΌνλΌλ―Έν° μλ μ΅μ ν
- ν΄λμ€ λΆκ· ν μ²λ¦¬(SMOTE)
5. ν΄μ κ°λ₯ν AI
- μν μμΈλ³ μ μν
- SHAP κ° κΈ°λ° μ€λͺ
- ꡬ체μ μΈ μ‘μ μμ΄ν μ 곡
λͺ¨λΈ μ±λ₯
νΌλ νλ ¬ (Test Set)
| μμΈ‘: μμ | μμΈ‘: νμ | |
|---|---|---|
| μ€μ : μμ | 581 (TN) | 13 (FP) |
| μ€μ : νμ | 3 (FN) | 30 (TP) |
μ£Όμ μ§ν
- Accuracy: 97.2%
- Precision: 89.3% - νμ μμΈ‘ μ 89.3%κ° μ€μ νμ
- Recall: 85.7% - μ€μ νμ μ 85.7%λ₯Ό κ°μ§
- F1-Score: 87.4%
- AUC-ROC: 0.964
μ¬μ© λ°©λ²
λ°μ΄ν° μμ λ°©λ²
1. μλ‘μ΄ λ°μ΄ν°λ‘ νμ΅
λ°μ΄ν° μ€λΉ:
data/raw/ν΄λμ 3κ°μ CSV νμΌ λ£κΈ°big_data_set1_f.csv: λ§€μ₯ κΈ°λ³Έ μ 보 (νμ 컬λΌ: ENCODED_MCT, MCT_ME_D)ds2_monthly_usage.csv: μλ³ μ΄μ© λ°μ΄ν° (νμ 컬λΌ: ENCODED_MCT, TA_YM, RC_M1_SAA)ds3_monthly_customers.csv: μλ³ κ³ κ° λ°μ΄ν° (νμ 컬λΌ: ENCODED_MCT, TA_YM)
νμ΅ μ€ν:
notebooks/train_model.ipynbμ€νλͺ¨λΈ νμΈ:
models/ν΄λμ μμ±λ λͺ¨λΈ νμΌ νμΈ
2. μμΈ‘ νλΌλ―Έν° μ‘°μ
src/predictor.pyμ predict() λ©μλμμ:
# μνλ μκ³κ° λ³κ²½ (κΈ°λ³Έ: 0.5)
result = model.predict(store_data, threshold=0.3) # λ λ―Όκ°νκ²
result = model.predict(store_data, threshold=0.7) # λ 보μμ μΌλ‘
# μμλΈ κ°μ€μΉ λ³κ²½
# models/config.jsonμμ:
{
"ensemble_weights": [0.35, 0.35, 0.30] # XGBoost, LightGBM, CatBoost
}
3. νΉμ§ μΆκ°/μμ
src/feature_engineering.pyμ FeatureEngineer ν΄λμ€μμ:
def _create_custom_features(self, df):
"""컀μ€ν
νΉμ§ μΆκ°"""
features = {}
# μ: μλ‘μ΄ μ§ν μΆκ°
features['custom_metric'] = df['col1'] / df['col2']
return features
λ°°μΉ μμΈ‘
import pandas as pd
# CSVμμ μ¬λ¬ λ§€μ₯ λ‘λ
stores = pd.read_csv('stores_to_predict.csv')
# λ°°μΉ μμΈ‘
results = model.predict_batch(stores)
# κ³ μν λ§€μ₯ νν°
high_risk = results[results['risk_score'] > 70]
high_risk.to_csv('high_risk_stores.csv', index=False)
μΆκ° λ¬Έμ
- CHANGELOG_V2.md - V2.0 μμΈ κ°μ μ¬ν
- notebooks/train_model.ipynb - μ 체 νμ΅ κ³Όμ
- src/README.md - μμ€ μ½λ μ€λͺ
κΈ°μ¬
μ΄μμ PRμ νμν©λλ€!
λΌμ΄μ μ€
MIT License - μμ λ‘κ² μ¬μ© κ°λ₯
λ¬Έμ
- GitHub Issues: μ΄μ λ±λ‘
λ©΄μ± μ‘°ν: λ³Έ λͺ¨λΈμ μμΈ‘μ μ°Έκ³ μ©μ΄λ©°, μ€μ κ²½μ νλ¨μ μ λ¬Έκ°μ μλ΄νμκΈ° λ°λλλ€.
- Downloads last month
- -
from huggingface_hub import hf_hub_download import joblib model = joblib.load( hf_hub_download("LLouis0622/early_warning_model", "sklearn_model.joblib") ) # only load pickle files from sources you trust # read more about it here https://skops.readthedocs.io/en/stable/persistence.html