Skip to content

Feature Request: Haskell AutoML Library under GSoc 2025 #191

@moksha-hub

Description

@moksha-hub

Hello haskell team,
It would be useful to have an AutoML framework in Haskell that, given a dataset, evaluates a set of candidate models (e.g., linear regression, random forest, decision tree, etc.) and automatically selects the best-performing one based on predefined metrics.

Example Code: How It Works
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}

import Language.Python.Inline

-- Function to find the best ML model in Python
selectBestModel :: IO String
selectBestModel = [py|
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
import numpy as np

# Sample dataset (binary classification)
X = np.array([[0], [1], [2], [3], [4], [5]])
y = np.array([0, 0, 1, 1, 1, 1])

# Train-test split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# Train Logistic Regression
log_model = LogisticRegression()
log_model.fit(X_train, y_train)
log_acc = accuracy_score(y_test, log_model.predict(X_test))

# Train Decision Tree
tree_model = DecisionTreeClassifier()
tree_model.fit(X_train, y_train)
tree_acc = accuracy_score(y_test, tree_model.predict(X_test))

# Pick the best model
best_model = "Logistic Regression" if log_acc > tree_acc else "Decision Tree"

best_model  # Return model name to Haskell

|]

-- Main function to test
main :: IO ()
main = do
bestModel <- selectBestModel
putStrLn $ "Best Model Selected: " ++ bestModel
Expected Output
Best Model Selected: Decision Tree
(Or Logistic Regression, depending on dataset & accuracy)

waiting for your approval..
Thank you
Mokshagna

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions