oikan 0.0.3.4__tar.gz → 0.0.3.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: oikan
3
- Version: 0.0.3.4
3
+ Version: 0.0.3.6
4
4
  Summary: OIKAN: Neuro-Symbolic ML for Scientific Discovery
5
5
  Author: Arman Zhalgasbayev
6
6
  License: MIT
@@ -35,6 +35,11 @@ OIKAN is a neuro-symbolic machine learning framework inspired by Kolmogorov-Arno
35
35
  [![GitHub issues](https://img.shields.io/github/issues/silvermete0r/OIKAN.svg)](https://github.com/silvermete0r/oikan/issues)
36
36
  [![Docs](https://img.shields.io/badge/docs-passing-brightgreen)](https://silvermete0r.github.io/oikan/)
37
37
 
38
+ [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/silvermete0r/oikan)
39
+ [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/silvermete0r/oikan/blob/main/examples/oikan-v0-0-3-get-started-template-notebook.ipynb)
40
+ [![Open In Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://www.kaggle.com/code/armanzhalgasbayev/oikan-v0-0-3-get-started-template-notebook)
41
+ [![Static Badge](https://img.shields.io/badge/oikan-violet?style=flat&label=awesome)](https://github.com/silvermete0r/awesome-oikan)
42
+
38
43
  > **Important Disclaimer**: OIKAN is an experimental research project. It is not intended for production use or real-world applications. This framework is designed for research purposes, experimentation, and academic exploration of neuro-symbolic machine learning concepts.
39
44
 
40
45
  ## Key Features
@@ -62,14 +67,15 @@ OIKAN implements a modern interpretation of the Kolmogorov-Arnold Representation
62
67
  - Automatic pruning of insignificant terms
63
68
 
64
69
  ```python
65
- class OIKANRegressor:
66
- def __init__(self, hidden_sizes=[64, 64], activation='relu',
70
+ class OIKAN:
71
+ def __init__(self, hidden_sizes=[64, 64], activation='relu',
67
72
  polynomial_degree=2, alpha=0.1):
68
- # Neural network for learning complex patterns
69
- self.neural_net = TabularNet(input_size, hidden_sizes, activation)
70
- # Symbolic regression for interpretable formulas
71
- self.symbolic_model = None
72
-
73
+ # Neural network for learning complex patterns
74
+ self.neural_net = TabularNet(input_size, hidden_sizes, activation)
75
+ # Data augmentation for better coverage
76
+ self.augmented_data = self.augment_data(X, y, augmentation_factor=5)
77
+ # Symbolic regression for interpretable formulas
78
+ self.symbolic_regression = SymbolicRegression(alpha=alpha)
73
79
  ```
74
80
 
75
81
  3. **Basis Functions**: Core set of interpretable transformations:
@@ -109,9 +115,20 @@ cd OIKAN
109
115
  pip install -e . # Install in development mode
110
116
  ```
111
117
 
118
+ #### System Requirements
119
+
120
+ | Requirement | Details |
121
+ |-------------------|--------------------------------------|
122
+ | Python | Version 3.7 or higher |
123
+ | Operating System | Platform independent (Windows/macOS/Linux) |
124
+ | Memory | Recommended minimum 4GB RAM |
125
+ | Disk Space | ~100MB for installation (including dependencies) |
126
+ | GPU | Optional (for faster training) |
127
+ | Dependencies | torch, numpy, scikit-learn, sympy, tqdm |
128
+
112
129
  ### Regression Example
113
130
  ```python
114
- from oikan.model import OIKANRegressor
131
+ from oikan import OIKANRegressor
115
132
  from sklearn.metrics import mean_squared_error
116
133
 
117
134
  # Initialize model
@@ -126,7 +143,8 @@ model = OIKANRegressor(
126
143
  lr=0.001, # Learning rate
127
144
  batch_size=32, # Batch size for training
128
145
  verbose=True, # Verbose output during training
129
- evaluate_nn=True # Validate neural network performance before full process
146
+ evaluate_nn=True, # Validate neural network performance before full process
147
+ random_state=42 # Random seed for reproducibility
130
148
  )
131
149
 
132
150
  # Fit the model
@@ -140,7 +158,7 @@ mse = mean_squared_error(y_test, y_pred)
140
158
  print("Mean Squared Error:", mse)
141
159
 
142
160
  # Get symbolic formula
143
- formula = model.get_formula() # default: type='original' -> returns all formula without pruning | other options: 'sympied' -> simplified formula using sympy; 'latex' -> LaTeX format
161
+ formula = model.get_formula() # default: type='original' -> returns all formula without pruning | other options: 'sympy' -> simplified formula using sympy; 'latex' -> LaTeX format
144
162
  print("Symbolic Formula:", formula)
145
163
 
146
164
  # Get feature importances
@@ -160,7 +178,7 @@ loaded_model.load("outputs/model.json")
160
178
 
161
179
  ### Classification Example
162
180
  ```python
163
- from oikan.model import OIKANClassifier
181
+ from oikan import OIKANClassifier
164
182
  from sklearn.metrics import accuracy_score
165
183
 
166
184
  # Initialize model
@@ -175,7 +193,8 @@ model = OIKANClassifier(
175
193
  lr=0.001, # Learning rate
176
194
  batch_size=32, # Batch size for training
177
195
  verbose=True, # Verbose output during training
178
- evaluate_nn=True # Validate neural network performance before full process
196
+ evaluate_nn=True, # Validate neural network performance before full process
197
+ random_state=42 # Random seed for reproducibility
179
198
  )
180
199
 
181
200
  # Fit the model
@@ -189,7 +208,7 @@ accuracy = model.score(X_test, y_test)
189
208
  print("Accuracy:", accuracy)
190
209
 
191
210
  # Get symbolic formulas for each class
192
- formulas = model.get_formula() # default: type='original' -> returns all formula without pruning | other options: 'sympied' -> simplified formula using sympy; 'latex' -> LaTeX format
211
+ formulas = model.get_formula() # default: type='original' -> returns all formula without pruning | other options: 'sympy' -> simplified formula using sympy; 'latex' -> LaTeX format
193
212
  for i, formula in enumerate(formulas):
194
213
  print(f"Class {i} Formula:", formula)
195
214
 
@@ -209,7 +228,13 @@ loaded_model.load("outputs/model.json")
209
228
 
210
229
  ### Architecture Diagram
211
230
 
212
- ![OIKAN v0.0.3(1) Architecture](https://raw.githubusercontent.com/silvermete0r/oikan/main/docs/media/oikan-v0.0.3(1)-architecture-oop.png)
231
+ #### High-Level Architecture:
232
+
233
+ ![OIKAN v0.0.3 High-Level Architecture](https://raw.githubusercontent.com/silvermete0r/oikan/main/docs/media/oikan_v0.0.3_high_level_architecture.png)
234
+
235
+ #### UML Diagram:
236
+
237
+ ![OIKAN v0.0.3(2) Architecture](https://raw.githubusercontent.com/silvermete0r/oikan/main/docs/media/oikan-v0.0.3(2)-architecture-oop.png)
213
238
 
214
239
  ## OIKAN Symbolic Model Compilers
215
240
 
@@ -16,6 +16,11 @@ OIKAN is a neuro-symbolic machine learning framework inspired by Kolmogorov-Arno
16
16
  [![GitHub issues](https://img.shields.io/github/issues/silvermete0r/OIKAN.svg)](https://github.com/silvermete0r/oikan/issues)
17
17
  [![Docs](https://img.shields.io/badge/docs-passing-brightgreen)](https://silvermete0r.github.io/oikan/)
18
18
 
19
+ [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/silvermete0r/oikan)
20
+ [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/silvermete0r/oikan/blob/main/examples/oikan-v0-0-3-get-started-template-notebook.ipynb)
21
+ [![Open In Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://www.kaggle.com/code/armanzhalgasbayev/oikan-v0-0-3-get-started-template-notebook)
22
+ [![Static Badge](https://img.shields.io/badge/oikan-violet?style=flat&label=awesome)](https://github.com/silvermete0r/awesome-oikan)
23
+
19
24
  > **Important Disclaimer**: OIKAN is an experimental research project. It is not intended for production use or real-world applications. This framework is designed for research purposes, experimentation, and academic exploration of neuro-symbolic machine learning concepts.
20
25
 
21
26
  ## Key Features
@@ -43,14 +48,15 @@ OIKAN implements a modern interpretation of the Kolmogorov-Arnold Representation
43
48
  - Automatic pruning of insignificant terms
44
49
 
45
50
  ```python
46
- class OIKANRegressor:
47
- def __init__(self, hidden_sizes=[64, 64], activation='relu',
51
+ class OIKAN:
52
+ def __init__(self, hidden_sizes=[64, 64], activation='relu',
48
53
  polynomial_degree=2, alpha=0.1):
49
- # Neural network for learning complex patterns
50
- self.neural_net = TabularNet(input_size, hidden_sizes, activation)
51
- # Symbolic regression for interpretable formulas
52
- self.symbolic_model = None
53
-
54
+ # Neural network for learning complex patterns
55
+ self.neural_net = TabularNet(input_size, hidden_sizes, activation)
56
+ # Data augmentation for better coverage
57
+ self.augmented_data = self.augment_data(X, y, augmentation_factor=5)
58
+ # Symbolic regression for interpretable formulas
59
+ self.symbolic_regression = SymbolicRegression(alpha=alpha)
54
60
  ```
55
61
 
56
62
  3. **Basis Functions**: Core set of interpretable transformations:
@@ -90,9 +96,20 @@ cd OIKAN
90
96
  pip install -e . # Install in development mode
91
97
  ```
92
98
 
99
+ #### System Requirements
100
+
101
+ | Requirement | Details |
102
+ |-------------------|--------------------------------------|
103
+ | Python | Version 3.7 or higher |
104
+ | Operating System | Platform independent (Windows/macOS/Linux) |
105
+ | Memory | Recommended minimum 4GB RAM |
106
+ | Disk Space | ~100MB for installation (including dependencies) |
107
+ | GPU | Optional (for faster training) |
108
+ | Dependencies | torch, numpy, scikit-learn, sympy, tqdm |
109
+
93
110
  ### Regression Example
94
111
  ```python
95
- from oikan.model import OIKANRegressor
112
+ from oikan import OIKANRegressor
96
113
  from sklearn.metrics import mean_squared_error
97
114
 
98
115
  # Initialize model
@@ -107,7 +124,8 @@ model = OIKANRegressor(
107
124
  lr=0.001, # Learning rate
108
125
  batch_size=32, # Batch size for training
109
126
  verbose=True, # Verbose output during training
110
- evaluate_nn=True # Validate neural network performance before full process
127
+ evaluate_nn=True, # Validate neural network performance before full process
128
+ random_state=42 # Random seed for reproducibility
111
129
  )
112
130
 
113
131
  # Fit the model
@@ -121,7 +139,7 @@ mse = mean_squared_error(y_test, y_pred)
121
139
  print("Mean Squared Error:", mse)
122
140
 
123
141
  # Get symbolic formula
124
- formula = model.get_formula() # default: type='original' -> returns all formula without pruning | other options: 'sympied' -> simplified formula using sympy; 'latex' -> LaTeX format
142
+ formula = model.get_formula() # default: type='original' -> returns all formula without pruning | other options: 'sympy' -> simplified formula using sympy; 'latex' -> LaTeX format
125
143
  print("Symbolic Formula:", formula)
126
144
 
127
145
  # Get feature importances
@@ -141,7 +159,7 @@ loaded_model.load("outputs/model.json")
141
159
 
142
160
  ### Classification Example
143
161
  ```python
144
- from oikan.model import OIKANClassifier
162
+ from oikan import OIKANClassifier
145
163
  from sklearn.metrics import accuracy_score
146
164
 
147
165
  # Initialize model
@@ -156,7 +174,8 @@ model = OIKANClassifier(
156
174
  lr=0.001, # Learning rate
157
175
  batch_size=32, # Batch size for training
158
176
  verbose=True, # Verbose output during training
159
- evaluate_nn=True # Validate neural network performance before full process
177
+ evaluate_nn=True, # Validate neural network performance before full process
178
+ random_state=42 # Random seed for reproducibility
160
179
  )
161
180
 
162
181
  # Fit the model
@@ -170,7 +189,7 @@ accuracy = model.score(X_test, y_test)
170
189
  print("Accuracy:", accuracy)
171
190
 
172
191
  # Get symbolic formulas for each class
173
- formulas = model.get_formula() # default: type='original' -> returns all formula without pruning | other options: 'sympied' -> simplified formula using sympy; 'latex' -> LaTeX format
192
+ formulas = model.get_formula() # default: type='original' -> returns all formula without pruning | other options: 'sympy' -> simplified formula using sympy; 'latex' -> LaTeX format
174
193
  for i, formula in enumerate(formulas):
175
194
  print(f"Class {i} Formula:", formula)
176
195
 
@@ -190,7 +209,13 @@ loaded_model.load("outputs/model.json")
190
209
 
191
210
  ### Architecture Diagram
192
211
 
193
- ![OIKAN v0.0.3(1) Architecture](https://raw.githubusercontent.com/silvermete0r/oikan/main/docs/media/oikan-v0.0.3(1)-architecture-oop.png)
212
+ #### High-Level Architecture:
213
+
214
+ ![OIKAN v0.0.3 High-Level Architecture](https://raw.githubusercontent.com/silvermete0r/oikan/main/docs/media/oikan_v0.0.3_high_level_architecture.png)
215
+
216
+ #### UML Diagram:
217
+
218
+ ![OIKAN v0.0.3(2) Architecture](https://raw.githubusercontent.com/silvermete0r/oikan/main/docs/media/oikan-v0.0.3(2)-architecture-oop.png)
194
219
 
195
220
  ## OIKAN Symbolic Model Compilers
196
221
 
@@ -41,10 +41,12 @@ class OIKAN(ABC):
41
41
  Whether to display training progress.
42
42
  evaluate_nn : bool, optional (default=False)
43
43
  Whether to evaluate neural network performance before full training.
44
+ random_state: int, optional (default=None)
45
+ Random seed for reproducibility.
44
46
  """
45
47
  def __init__(self, hidden_sizes=[64, 64], activation='relu', augmentation_factor=10,
46
48
  alpha=0.1, sigma=0.1, epochs=100, lr=0.001, batch_size=32,
47
- verbose=False, evaluate_nn=False, top_k=5):
49
+ verbose=False, evaluate_nn=False, top_k=5, random_state=None):
48
50
  if not isinstance(hidden_sizes, list) or not all(isinstance(x, int) and x > 0 for x in hidden_sizes):
49
51
  raise InvalidParameterError("hidden_sizes must be a list of positive integers")
50
52
  if activation not in ['relu', 'tanh', 'leaky_relu', 'elu', 'swish', 'gelu']:
@@ -78,6 +80,11 @@ class OIKAN(ABC):
78
80
  self.neural_net = None
79
81
  self.symbolic_model = None
80
82
  self.evaluation_done = False
83
+ self.random_state = random_state
84
+
85
+ if self.random_state is not None:
86
+ torch.manual_seed(self.random_state)
87
+ np.random.seed(self.random_state)
81
88
 
82
89
  @abstractmethod
83
90
  def fit(self, X, y):
@@ -93,11 +100,11 @@ class OIKAN(ABC):
93
100
 
94
101
  Parameter:
95
102
  --------
96
- type : str, optional (default='original') other options: 'sympied', 'latex'
97
- 'original' returns the original formula with coefficients, 'sympied' returns sympy simplified formula.
103
+ type : str, optional (default='original') other options: 'sympy', 'latex'
104
+ 'original' returns the original formula with coefficients, 'sympy' returns sympy simplified formula.
98
105
  """
99
- if type.lower() not in ['original', 'sympied', 'latex']:
100
- raise InvalidParameterError("Invalid type. Choose 'original', 'sympied', 'latex'.")
106
+ if type.lower() not in ['original', 'sympy', 'latex']:
107
+ raise InvalidParameterError("Invalid type. Choose 'original', 'sympy', 'latex'.")
101
108
  if self.symbolic_model is None:
102
109
  raise ValueError("Model not fitted yet.")
103
110
  basis_functions = self.symbolic_model['basis_functions']
@@ -114,7 +121,7 @@ class OIKAN(ABC):
114
121
  for i in range(len(coef)) if coef[i] != 0])
115
122
  formulas.append(f"Class {self.classes_[c]}: {formula if formula else '0'}")
116
123
  return formulas
117
- elif type.lower() == 'sympied':
124
+ elif type.lower() == 'sympy':
118
125
  if 'coefficients' in self.symbolic_model:
119
126
  formula = sympify_formula(self.symbolic_model['basis_functions'], self.symbolic_model['coefficients'], self.symbolic_model['n_features'])
120
127
  return formula
@@ -448,6 +455,8 @@ class OIKANRegressor(OIKAN):
448
455
  if self.verbose:
449
456
  print(f"Augmented data: features shape: {X_aug.shape} | target shape: {y_aug.shape}")
450
457
  self._perform_symbolic_regression(X_aug, y_aug)
458
+ if self.verbose:
459
+ print("OIKANRegressor model training completed successfully!")
451
460
 
452
461
  def predict(self, X):
453
462
  """
@@ -500,6 +509,8 @@ class OIKANClassifier(OIKAN):
500
509
  if self.verbose:
501
510
  print(f"Augmented data: features shape: {X_aug.shape} | target shape: {logits_aug.shape}")
502
511
  self._perform_symbolic_regression(X_aug, logits_aug)
512
+ if self.verbose:
513
+ print("OIKANClassifier model training completed successfully!")
503
514
 
504
515
  def predict(self, X):
505
516
  """
@@ -1,4 +1,5 @@
1
1
  import torch.nn as nn
2
+ import torch
2
3
 
3
4
  class TabularNet(nn.Module):
4
5
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: oikan
3
- Version: 0.0.3.4
3
+ Version: 0.0.3.6
4
4
  Summary: OIKAN: Neuro-Symbolic ML for Scientific Discovery
5
5
  Author: Arman Zhalgasbayev
6
6
  License: MIT
@@ -35,6 +35,11 @@ OIKAN is a neuro-symbolic machine learning framework inspired by Kolmogorov-Arno
35
35
  [![GitHub issues](https://img.shields.io/github/issues/silvermete0r/OIKAN.svg)](https://github.com/silvermete0r/oikan/issues)
36
36
  [![Docs](https://img.shields.io/badge/docs-passing-brightgreen)](https://silvermete0r.github.io/oikan/)
37
37
 
38
+ [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/silvermete0r/oikan)
39
+ [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/silvermete0r/oikan/blob/main/examples/oikan-v0-0-3-get-started-template-notebook.ipynb)
40
+ [![Open In Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://www.kaggle.com/code/armanzhalgasbayev/oikan-v0-0-3-get-started-template-notebook)
41
+ [![Static Badge](https://img.shields.io/badge/oikan-violet?style=flat&label=awesome)](https://github.com/silvermete0r/awesome-oikan)
42
+
38
43
  > **Important Disclaimer**: OIKAN is an experimental research project. It is not intended for production use or real-world applications. This framework is designed for research purposes, experimentation, and academic exploration of neuro-symbolic machine learning concepts.
39
44
 
40
45
  ## Key Features
@@ -62,14 +67,15 @@ OIKAN implements a modern interpretation of the Kolmogorov-Arnold Representation
62
67
  - Automatic pruning of insignificant terms
63
68
 
64
69
  ```python
65
- class OIKANRegressor:
66
- def __init__(self, hidden_sizes=[64, 64], activation='relu',
70
+ class OIKAN:
71
+ def __init__(self, hidden_sizes=[64, 64], activation='relu',
67
72
  polynomial_degree=2, alpha=0.1):
68
- # Neural network for learning complex patterns
69
- self.neural_net = TabularNet(input_size, hidden_sizes, activation)
70
- # Symbolic regression for interpretable formulas
71
- self.symbolic_model = None
72
-
73
+ # Neural network for learning complex patterns
74
+ self.neural_net = TabularNet(input_size, hidden_sizes, activation)
75
+ # Data augmentation for better coverage
76
+ self.augmented_data = self.augment_data(X, y, augmentation_factor=5)
77
+ # Symbolic regression for interpretable formulas
78
+ self.symbolic_regression = SymbolicRegression(alpha=alpha)
73
79
  ```
74
80
 
75
81
  3. **Basis Functions**: Core set of interpretable transformations:
@@ -109,9 +115,20 @@ cd OIKAN
109
115
  pip install -e . # Install in development mode
110
116
  ```
111
117
 
118
+ #### System Requirements
119
+
120
+ | Requirement | Details |
121
+ |-------------------|--------------------------------------|
122
+ | Python | Version 3.7 or higher |
123
+ | Operating System | Platform independent (Windows/macOS/Linux) |
124
+ | Memory | Recommended minimum 4GB RAM |
125
+ | Disk Space | ~100MB for installation (including dependencies) |
126
+ | GPU | Optional (for faster training) |
127
+ | Dependencies | torch, numpy, scikit-learn, sympy, tqdm |
128
+
112
129
  ### Regression Example
113
130
  ```python
114
- from oikan.model import OIKANRegressor
131
+ from oikan import OIKANRegressor
115
132
  from sklearn.metrics import mean_squared_error
116
133
 
117
134
  # Initialize model
@@ -126,7 +143,8 @@ model = OIKANRegressor(
126
143
  lr=0.001, # Learning rate
127
144
  batch_size=32, # Batch size for training
128
145
  verbose=True, # Verbose output during training
129
- evaluate_nn=True # Validate neural network performance before full process
146
+ evaluate_nn=True, # Validate neural network performance before full process
147
+ random_state=42 # Random seed for reproducibility
130
148
  )
131
149
 
132
150
  # Fit the model
@@ -140,7 +158,7 @@ mse = mean_squared_error(y_test, y_pred)
140
158
  print("Mean Squared Error:", mse)
141
159
 
142
160
  # Get symbolic formula
143
- formula = model.get_formula() # default: type='original' -> returns all formula without pruning | other options: 'sympied' -> simplified formula using sympy; 'latex' -> LaTeX format
161
+ formula = model.get_formula() # default: type='original' -> returns all formula without pruning | other options: 'sympy' -> simplified formula using sympy; 'latex' -> LaTeX format
144
162
  print("Symbolic Formula:", formula)
145
163
 
146
164
  # Get feature importances
@@ -160,7 +178,7 @@ loaded_model.load("outputs/model.json")
160
178
 
161
179
  ### Classification Example
162
180
  ```python
163
- from oikan.model import OIKANClassifier
181
+ from oikan import OIKANClassifier
164
182
  from sklearn.metrics import accuracy_score
165
183
 
166
184
  # Initialize model
@@ -175,7 +193,8 @@ model = OIKANClassifier(
175
193
  lr=0.001, # Learning rate
176
194
  batch_size=32, # Batch size for training
177
195
  verbose=True, # Verbose output during training
178
- evaluate_nn=True # Validate neural network performance before full process
196
+ evaluate_nn=True, # Validate neural network performance before full process
197
+ random_state=42 # Random seed for reproducibility
179
198
  )
180
199
 
181
200
  # Fit the model
@@ -189,7 +208,7 @@ accuracy = model.score(X_test, y_test)
189
208
  print("Accuracy:", accuracy)
190
209
 
191
210
  # Get symbolic formulas for each class
192
- formulas = model.get_formula() # default: type='original' -> returns all formula without pruning | other options: 'sympied' -> simplified formula using sympy; 'latex' -> LaTeX format
211
+ formulas = model.get_formula() # default: type='original' -> returns all formula without pruning | other options: 'sympy' -> simplified formula using sympy; 'latex' -> LaTeX format
193
212
  for i, formula in enumerate(formulas):
194
213
  print(f"Class {i} Formula:", formula)
195
214
 
@@ -209,7 +228,13 @@ loaded_model.load("outputs/model.json")
209
228
 
210
229
  ### Architecture Diagram
211
230
 
212
- ![OIKAN v0.0.3(1) Architecture](https://raw.githubusercontent.com/silvermete0r/oikan/main/docs/media/oikan-v0.0.3(1)-architecture-oop.png)
231
+ #### High-Level Architecture:
232
+
233
+ ![OIKAN v0.0.3 High-Level Architecture](https://raw.githubusercontent.com/silvermete0r/oikan/main/docs/media/oikan_v0.0.3_high_level_architecture.png)
234
+
235
+ #### UML Diagram:
236
+
237
+ ![OIKAN v0.0.3(2) Architecture](https://raw.githubusercontent.com/silvermete0r/oikan/main/docs/media/oikan-v0.0.3(2)-architecture-oop.png)
213
238
 
214
239
  ## OIKAN Symbolic Model Compilers
215
240
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "oikan"
7
- version = "0.0.3.4"
7
+ version = "0.0.3.6"
8
8
  description = "OIKAN: Neuro-Symbolic ML for Scientific Discovery"
9
9
  readme = "README.md"
10
10
  authors = [{name = "Arman Zhalgasbayev"}]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes