MLCore
Types
linear type TrainingDataset
linear type TestingDataset
type DecisionTreeClassifier
Functions
def read_csv (path : String) (expected_rows : Int | expected_rows ≥ 0) (expected_columns : Int | expected_columns ≥ 1) : {df : DataFrame | df_rows df = expected_rows && df_cols df = expected_columns}
def target (1 df : DataFrame | df_cols df ≥ 2) (column : Int | 0 ≤ column && column < df_cols df) : {ds : Dataset | ds_rows ds = df_rows df && (ds_features ds = df_cols df - 1 && ds_features ds ≥ 1)}
def split (1 ds : Dataset | ds_features ds ≥ 1) (train_size : Float | 0.0 < train_size && train_size < 1.0) : {parts : DatasetSplit | split_features parts = ds_features ds}
def consume_split (1 parts : DatasetSplit) (
1 consumer : (
1 training : TrainingDataset | training_rows training > 0
&&
(
training_features training ≥ 1
&&
(training_features training = split_features parts && training_split_id training = split_provenance parts)
)
) →
(
1 testing : TestingDataset | testing_rows testing > 0
&&
(testing_features testing = training_features training && testing_split_id testing = split_provenance parts)
) →
result
) : result
def decision_tree_classifier (1 training : TrainingDataset) : {
model : DecisionTreeClassifier | classifier_features model = training_features training
&&
classifier_split_id model = training_split_id training
}
def accuracy (model : DecisionTreeClassifier) (
1 testing : TestingDataset | testing_features testing = classifier_features model
&&
testing_split_id testing = classifier_split_id model
) : {score : Float | 0.0 ≤ score && score ≤ 1.0}
Uninterpreted
Functions declared as def f ... = uninterpreted: only their signature is known to the verifier; they have no body.
def df_rows : (df : DataFrame) → Int
def df_cols : (df : DataFrame) → Int
def ds_rows : (ds : Dataset) → Int
def ds_features : (ds : Dataset) → Int
def split_features : (parts : DatasetSplit) → Int
def split_provenance : (parts : DatasetSplit) → Int
def training_rows : (ds : TrainingDataset) → Int
def training_features : (ds : TrainingDataset) → Int
def training_split_id : (ds : TrainingDataset) → Int
def testing_rows : (ds : TestingDataset) → Int
def testing_features : (ds : TestingDataset) → Int
def testing_split_id : (ds : TestingDataset) → Int
def classifier_features : (model : DecisionTreeClassifier) → Int
def classifier_split_id : (model : DecisionTreeClassifier) → Int