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 details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded Python 3

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

Hashes for financial_model_taiwan-1.0.3.tar.gz
Algorithm Hash digest
SHA256 97da16603cfd244ea01155502c8b9c3dcfe250816fd3327a23205da724e74f93
MD5 b8c7e5bbeb0fa35ea67976878aa86aad
BLAKE2b-256 0c2095ea7ae9b170e1100e5c26cdcfabd0d38d7022c431366c87e3bec48d4919

See more details on using hashes here.

File details

Details for the file financial_model_taiwan-1.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for financial_model_taiwan-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b28a73e0a6b750aa9a91b6efae284a719c1beb5276201b7cbe1823db843c744c
MD5 1f3c0fc2a20aa2f31a37defc49a040b1
BLAKE2b-256 9c40b0914563406e8f46b5e518ec3bb8b13dad760b3a61a9fa31806772a3466e

See more details on using hashes here.

Supported by

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