Π¦Π΅Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° β ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΠ²ΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², Π±ΠΎΠ»Π΅Π΅ ΡΠΊΠ»ΠΎΠ½Π½ΡΡ ΠΊ ΠΎΡΠΊΡΡΡΠΈΡ Π΄Π΅ΠΏΠΎΠ·ΠΈΡΠ° Π² Π±Π°Π½ΠΊΠ΅, ΠΈ Π·Π° ΡΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΈΠ²Π½ΠΎΡΡΡ ΠΌΠ°ΡΠΊΠ΅ΡΠΈΠ½Π³ΠΎΠ²ΠΎΠΉ ΠΊΠ°ΠΌΠΏΠ°Π½ΠΈΠΈ.
ΠΠ°Π΄Π°ΡΠ° ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΉ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ½ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ± ΠΎΡΠΊΡΡΡΠΈΠΈ Π΄Π΅ΠΏΠΎΠ·ΠΈΡΠ° (1) ΠΈΠ»ΠΈ Π½Π΅Ρ (0).
ΠΠ΅ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΡΡ Π² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅ venv.
ΠΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ:
    $ pip install requirements.txt- 
ΠΠ΅ΡΠ²ΠΈΡΠ½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π°Π½Π½ΡΡ 
- 
Π Π°Π·Π²Π΅Π΄ΡΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· Π΄Π°Π½Π½ΡΡ (EDA) 
- 
ΠΡΠ±ΠΎΡ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠ² 
- 
Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ: Π»ΠΎΠ³ΠΈΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ΅Π³ΡΠ΅ΡΡΠΈΡ ΠΈ ΡΠ΅ΡΠ°ΡΡΠΈΠ΅ Π΄Π΅ΡΠ΅Π²ΡΡ 
- 
Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ: Π°Π½ΡΠ°ΠΌΠ±Π»ΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³Π½ΠΎΠ·Π° 
- 
ΠΠ±ΡΠΈΠΉ Π²ΡΠ²ΠΎΠ΄ 
- Python 3.12+
- Pandas, Numpy, Matplotlib, Seaborn
- Scikit-learn
- Regex
- Pickle (ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ)
- Optuna (ΠΏΠΎΠ΄Π±ΠΎΡ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²)
ΠΡΠΎΠ΅ΠΊΡ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ ΡΡΠ΅ΠΊΠΈΠ½Π³:
| ΠΠΎΠ΄Π΅Π»Ρ | ΠΠΎΠ΄Ρ ΠΎΠ΄ | ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ | 
|---|---|---|
| LogisticRegression | ΠΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°Π½Ρ Π²ΡΡΡΠ½ΡΡ | ΠΡΠ΅Π½ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΠ΅ΡΡΡΠ΅ΠΌ ΠΌΠ΅ΡΡΠΈΠΊΠ°ΠΌ | 
| DecisionTreeClassifier | ΠΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°Π½Ρ Π²ΡΡΡΠ½ΡΡ | ΠΡΠ΅Π½ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΠ΅ΡΡΡΠ΅ΠΌ ΠΌΠ΅ΡΡΠΈΠΊΠ°ΠΌ | 
| RandomForestClassifier | ΠΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°Π½Ρ Π²ΡΡΡΠ½ΡΡ | ΠΡΠ΅Π½ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΠ΅ΡΡΡΠ΅ΠΌ ΠΌΠ΅ΡΡΠΈΠΊΠ°ΠΌ | 
| GradientBoostingClassifier | ΠΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°Π½Ρ Π²ΡΡΡΠ½ΡΡ | ΠΡΠ΅Π½ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΠ΅ΡΡΡΠ΅ΠΌ ΠΌΠ΅ΡΡΠΈΠΊΠ°ΠΌ | 
| Π‘ΡΠ΅ΠΊΠΈΠ½Π³ | ΠΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°Π½Ρ Π²ΡΡΡΠ½ΡΡ | ΠΡΠ΅Π½ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΠ΅ΡΡΡΠ΅ΠΌ ΠΌΠ΅ΡΡΠΈΠΊΠ°ΠΌ | 
| GridSearch + DecisionTreeClassifier | ΠΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°Π½Ρ GridSearch | ΠΡΠ΅Π½ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΠ΅ΡΡΡΠ΅ΠΌ ΠΌΠ΅ΡΡΠΈΠΊΠ°ΠΌ | 
| Optuna + RandomForestClassifier | ΠΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°Π½Ρ Optuna | ΠΡΠ΅Π½ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΠ΅ΡΡΡΠ΅ΠΌ ΠΌΠ΅ΡΡΠΈΠΊΠ°ΠΌ | 
ΠΠ°ΠΆΠ΄Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠ΅ΡΡΠΈΡΡΠ΅ΡΡΡ Π½Π° Π²ΡΠ±ΠΎΡΠΊΠ΅ 67% ΠΎΠ±ΡΡΠ°ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΠΈ 33% Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΎΠ½Π½ΠΎΠΉ.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎ ΠΌΠ΅ΡΡΠΈΠΊΠ°ΠΌ: Precision, Recall, F1, Accuracy
Π ΡΡΠΎΠΌ Π½ΠΎΡΡΠ±ΡΠΊΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ:
- ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ (ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Ρ Π½ΠΎΠΌΠΈΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΈ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΈ + ΡΠ΅Π»Π΅Π²Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ)
- ΠΎΡΠ±ΠΎΡ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ SelectKBest
- ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
 MinMaxScaler
- ΠΏΠΎΠ΄Π±ΠΎΡ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ GridSearch,Optuna
- ΠΊΡΠΎΡΡ-Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ
- ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π²ΡΡ Π»ΡΡΡΠΈΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ: ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΈ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎΠΉ Π² ΡΠΎΡΠΌΠ°Ρ pkl
