Skip to main content

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:

Model Architecture

Workflow Overview

  1. Data Ingestion:

    • Load data from CSV files.
    • Split data into training and testing sets.
  2. Preprocessing Pipeline:

    • Define preprocessing steps.
    • Handle missing values.
    • Standardize/normalize data.
    • Select important features.
  3. Resampling:

    • Perform data resampling to handle class imbalance.
  4. 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.
  5. 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

financial_model_taiwan-1.0.3.tar.gz (3.3 MB view hashes)

Uploaded Source

Built Distribution

financial_model_taiwan-1.0.3-py3-none-any.whl (11.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page