Skip to content

Commit

Permalink
add example with basic clf pipeline. minor refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
v1docq committed Sep 18, 2023
1 parent e1d5909 commit 8370a28
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 88 deletions.
41 changes: 41 additions & 0 deletions examples/time_series_classification/ts_classification_basic.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import numpy as np
from fedot.core.pipelines.pipeline_builder import PipelineBuilder
from examples.fedot.fedot_ex import init_input_data
from fedot_ind.core.architecture.preprocessing.DatasetLoader import DataLoader
from fedot_ind.core.repository.initializer_industrial_models import IndustrialModels
from sklearn.metrics import f1_score, roc_auc_score

model_dict = {'basic_quantile': PipelineBuilder().add_node('quantile_extractor',
params={'window_size': 10,
'window_mode': True}).add_node('rf'),
'basic_topological': PipelineBuilder().add_node('topological_extractor',
params={'window_size': 10}).add_node('rf'),
'basic_recurrence': PipelineBuilder ().add_node('recurrence_extractor').add_node('rf'),
'advanced_quantile': PipelineBuilder().add_node('fourier_basis').add_node('quantile_extractor',
params={'window_size': 10,
'window_mode': True}).add_node(
'rf'),
'advanced_topological': PipelineBuilder().add_node('eigen_basis').add_node('topological_extractor',
params={
'window_size': 10}).add_node(
'rf'),
'advanced_reccurence': PipelineBuilder().add_node('wavelet_basis').add_node(
'recurrence_extractor').add_node(
'rf')
}
metric_dict = {}
train_data, test_data = DataLoader(dataset_name='Ham').load_data()

with IndustrialModels():
for model in model_dict.keys():
pipeline = model_dict[model].build()
input_data = init_input_data(train_data[0], train_data[1])
val_data = init_input_data(test_data[0], test_data[1])
pipeline.fit(input_data)
features = pipeline.predict(val_data).predict
if len(np.unique(test_data[1])) > 2:
metric = f1_score(test_data[1], features, average='weighted')
else:
metric = roc_auc_score(test_data[1], features, average='weighted')
metric_dict.update({model: metric})
print(metric_dict)
2 changes: 1 addition & 1 deletion examples/time_series_regression/ts_regression_example.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from fedot_ind.core.architecture.preprocessing.DatasetLoader import DataLoader

if __name__ == "__main__":
dataset_name = 'LiveFuelMoistureContent'
dataset_name = 'ApplianceEnergy'
industrial = FedotIndustrial(task='ts_regression',
dataset=dataset_name,
strategy='quantile',
Expand Down
86 changes: 0 additions & 86 deletions fedot_ind/core/architecture/preprocessing/InputData.py

This file was deleted.

2 changes: 1 addition & 1 deletion fedot_ind/core/architecture/settings/task_factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ class TaskEnum(Enum):
ts_classification = dict(fedot_preset=TimeSeriesClassifierPreset,
nn=TimeSeriesClassifierNN,
default=TimeSeriesClassifier)

ts_forecasting = (TimeSeriesForecasingWithDecomposition,)
ts_regression = (TimeSeriesRegression,)
anomaly_detection = (TimeSeriesAnomalyDetectionPreset,)
image_classification = (CVExperimenter,)
Expand Down
1 change: 1 addition & 0 deletions fedot_ind/core/models/quantile/quantile_extractor.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ def generate_features_from_ts(self,
window_length: int = None) -> InputData:

ts = np.nan_to_num(ts)
ts = ts.flatten()

if len(ts.shape) == 1:
aggregation_df = self.extract_stats_features(ts)
Expand Down

0 comments on commit 8370a28

Please sign in to comment.