Numpy-Neuron / nn /nn.py
Jensen-holm's picture
adding accuracy score metric
03176c2
raw
history blame
1.68 kB
from typing import Callable
import pandas as pd
class NN:
def __init__(
self,
epochs: int,
hidden_size: int,
learning_rate: float,
test_size: float,
activation: str,
features: list[str],
target: str,
data: str,
):
self.epochs = epochs
self.hidden_size = hidden_size
self.learning_rate = learning_rate
self.test_size = test_size
self.activation = activation
self.features = features
self.target = target
self.data = data
self.loss_hist: list[float] = None
self.func_prime: Callable = None
self.func: Callable = None
self.X: pd.DataFrame = None
self.y: pd.DataFrame = None
self.y_dummy: pd.DataFrame = None
self.input_size: int = None
self.output_size: int = None
def set_df(self, df: pd.DataFrame) -> None:
assert isinstance(df, pd.DataFrame)
x = df[self.features]
y = df[self.target]
self.X = pd.get_dummies(x, columns=self.features)
self.y_dummy = pd.get_dummies(y, columns=self.target)
self.input_size = len(self.X.columns)
self.output_size = len(self.y_dummy.columns)
def set_func(self, f: Callable) -> None:
assert isinstance(f, Callable)
self.func = f
def set_func_prime(self, f: Callable) -> None:
assert isinstance(f, Callable)
self.func_prime = f
@classmethod
def from_dict(cls, dct):
""" Creates an instance of NN given a dictionary
we can use this to make sure that the arguments are right
"""
return cls(**dct)