A financial model package trained on data from Taiwan fiscal year 1999-2009
Project description
Financial Model Taiwan
Financial Model Taiwan is a Python package designed to preprocess, train, and predict financial models. It includes functionalities for data ingestion, preprocessing, resampling, model training, evaluation, and optimization. This package aims to provide a comprehensive solution for financial modeling with support for various machine learning algorithms and techniques.
Model Architecture
The following image illustrates the model architecture:
Workflow Overview
-
Data Ingestion:
- Load data from CSV files.
- Split data into training and testing sets.
-
Preprocessing Pipeline:
- Define preprocessing steps.
- Handle missing values.
- Standardize/normalize data.
- Select important features.
-
Resampling:
- Perform data resampling to handle class imbalance.
-
Initial Model Training:
- Train multiple models: Random Forest, Logistic Regression, SVM, Gradient Boosting, XGBoost, KSBBoost, ANN.
- Evaluate models based on performance metrics.
- Select the best performing models for stacking.
-
Optimizing Model for Performance:
- Stack the best models (XGBoost and Random Forest).
- Optimize hyperparameters using Optuna.
- Tune the stacked model.
- Adjust thresholds to minimize type I and type II errors.
- Increase recall and finalize the model.
Installation
You can install the package via pip:
pip install financial_model_taiwan
Usage
Training a New Model
from financial_model_taiwan.Orchestrator import FinModel
pipeline = FinModel(data_path='data/train_data.csv', target_column='target')
pipeline.data_ingestion()
pipeline.data_preprocessing()
pipeline.data_resampling()
pipeline.train_model()
pipeline.save_model('models/trained_model.bin')
evaluation_results = pipeline.evaluate_model()
print(evaluation_results)
Using a Pre-trained Model
from financial_model_taiwan.Orchestrator import FinModel
pipeline = FinModel(data_path='data/train_data.csv', target_column='target', model_path='models/trained_model.bin')
pipeline.data_ingestion()
pipeline.data_preprocessing()
pipeline.load_model()
evaluation_results = pipeline.evaluate_model()
print(evaluation_results)
FinModel Class Attributes
data_path: Path to the CSV file containing the dataset.target_column: The target column name for prediction.model_path: Path to the pre-trained model file (optional).pipeline: The preprocessing pipeline.trainer: The model trainer.X_train: Training features.X_test: Testing features.y_train: Training labels.y_test: Testing labels.X_train_transformed: Transformed training features after preprocessing.X_test_transformed: Transformed testing features after preprocessing.X_resampled: Resampled training features to handle class imbalance.y_resampled: Resampled training labels to handle class imbalance.
Example Workflow
from financial_model_taiwan.Orchestrator import FinModel
pipeline = FinModel(data_path='../data/data.csv', model_path='../models/trained_model.bin', target_column='Bankrupt?')
pipeline.data_ingestion()
pipeline.data_preprocessing()
pipeline.data_resampling()
pipeline.train_model()
pipeline.save_model('trained_model_new.bin')
pipeline.load_model()
evaluation_results = pipeline.evaluate_model()
print(evaluation_results)
# Accessing Attributes
print(pipeline.X)
print(pipeline.y)
print(pipeline.X_test_transformed)
print(pipeline.X_train_transformed)
print(pipeline.X_resampled)
print(pipeline.y_resampled)
To check the predicted values
Although we didn't explicitly create a method we can call it using
pipeline.trainer.stacked_model.predict(pipeline.X_test_transformed)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file financial_model_taiwan-1.0.3.tar.gz.
File metadata
- Download URL: financial_model_taiwan-1.0.3.tar.gz
- Upload date:
- Size: 3.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97da16603cfd244ea01155502c8b9c3dcfe250816fd3327a23205da724e74f93
|
|
| MD5 |
b8c7e5bbeb0fa35ea67976878aa86aad
|
|
| BLAKE2b-256 |
0c2095ea7ae9b170e1100e5c26cdcfabd0d38d7022c431366c87e3bec48d4919
|
File details
Details for the file financial_model_taiwan-1.0.3-py3-none-any.whl.
File metadata
- Download URL: financial_model_taiwan-1.0.3-py3-none-any.whl
- Upload date:
- Size: 11.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b28a73e0a6b750aa9a91b6efae284a719c1beb5276201b7cbe1823db843c744c
|
|
| MD5 |
1f3c0fc2a20aa2f31a37defc49a040b1
|
|
| BLAKE2b-256 |
9c40b0914563406e8f46b5e518ec3bb8b13dad760b3a61a9fa31806772a3466e
|