"""
ITM 4150: Advanced Business Analytics and Visualization
Python toolkit for course materials at Cedarville University.
"""

__version__ = "1.1.0"
__author__ = "Dr. John D. Delano"

# Import commonly used functions for convenient access
from cuanalytics.datasets.loaders import (
    load_movie_reviews_data,
    load_sms_spam_data,
    load_mushroom_data,
    load_iris_data,
    load_breast_cancer_data,
    load_real_estate_data,
)
from cuanalytics.entropy.metrics import calculate_entropy, information_gain
from cuanalytics.entropy.visualization import plot_entropy, plot_entropy_rectangles
from cuanalytics.preprocessing.split import split_data
from cuanalytics.preprocessing.scale import scale_data
from cuanalytics.trees.decision_tree import fit_tree, SimpleDecisionTree
from cuanalytics.lda.discriminant import fit_lda, LDAModel
from cuanalytics.svm import fit_svm, SVMModel
from cuanalytics.regression.linear import fit_lm, LinearRegressionModel
from cuanalytics.regression.logistic import fit_logit, LogisticRegressionModel
from cuanalytics.nn.neuralnet import fit_nn, NeuralNetModel
from cuanalytics.similarity import euclidean, manhattan, cosine, jaccard
from cuanalytics.metrics import ConfusionMatrix
from cuanalytics.knn import fit_knn_classifier, KNNClassifierModel, fit_knn_regressor, KNNRegressorModel
from cuanalytics.clustering import fit_kmeans, KMeansModel, fit_hierarchical, HierarchicalClusteringModel
from cuanalytics.text import (
    fit_text_vectorizer,
    TextVectorizer,
    fit_topic_lda,
    LatentDirichletAllocationModel,
)
from cuanalytics.model_selection import (
    cross_validate,
    grid_search_cv,
    plot_learning_curves,
    plot_roc,
    plot_lift,
    plot_profit,
    plot_cumulative_response,
)

# Define what gets imported with "from cuanalytics import *"
__all__ = [
    'load_movie_reviews_data',
    'load_sms_spam_data',
    'load_mushroom_data',
    'load_iris_data',
    'load_breast_cancer_data',
    'load_real_estate_data',
    'calculate_entropy',
    'information_gain',
    'plot_entropy',
    'plot_entropy_rectangles',
    'split_data',
    'scale_data',
    'fit_tree',
    'SimpleDecisionTree',
    'fit_lda',
    'LDAModel',
    'fit_svm',
    'SVMModel',
    'fit_lm',
    'LinearRegressionModel',
    'fit_logit',
    'LogisticRegressionModel',
    'fit_nn',
    'NeuralNetModel',
    'euclidean',
    'manhattan',
    'cosine',
    'jaccard',
    'ConfusionMatrix',
    'fit_knn_classifier',
    'KNNClassifierModel',
    'fit_knn_regressor',
    'KNNRegressorModel',
    'fit_kmeans',
    'KMeansModel',
    'fit_hierarchical',
    'HierarchicalClusteringModel',
    'fit_text_vectorizer',
    'TextVectorizer',
    'fit_topic_lda',
    'LatentDirichletAllocationModel',
    'cross_validate',
    'grid_search_cv',
    'plot_learning_curves',
    'plot_roc',
    'plot_lift',
    'plot_profit',
    'plot_cumulative_response',
]
