EpistasisLab / EpistasisLab/tpot

My dataet crashed TOP-NN

Open
#1,247 5 comments 0 reactions 0 assignees View on GitHub
Dominant language
Jupyter Notebook
Stars
10.1k
Forks
1.6k
PR merge metrics
No merged PRs in 30d

Description

Hey,

I am getting a crash in TOP-NN.
My envirionment is:

```
>python tpot-NN-rocket-classify.py
Operating system version.... Windows-10-10.0.22000-SP0
Python version is........... 3.8.13
pandas version is........... 1.4.2
numpy version is............ 1.21.5
tpot version is............. 0.11.7
```

I have put my code and dataset at: https://github.com/CBrauer/TPOT-NN-bug

The program is as follows:
```
import warnings
warnings.filterwarnings("ignore")
import platform
import sys
import pandas as pd
import numpy as np
import time
from IPython.core.display import HTML, display
pd.set_option('display.max_rows', 10)
pd.set_option('display.max_columns', 11)
pd.set_option('display.width', None)
pd.set_option('display.max_colwidth', None)

import tpot
from tpot import TPOTClassifier

from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_absolute_error
from sklearn.metrics import accuracy_score
from sklearn.utils import shuffle

class Timer:
def __init__(self):
self.start = time.time()

def restart(self):
self.start = time.time()

def get_time(self):
end = time.time()
m, s = divmod(end - self.start, 60)
h, m = divmod(m, 60)
time_str = "%02d:%02d:%02d" % (h, m, s)
return time_str

def LoadData():

df = pd.read_csv('rocket.csv')

response_column = ['Altitude']
feature_columns = ['BoxRatio', 'Thrust', 'Acceleration', 'Velocity', 'OnBalRun', 'vwapGain', 'Expect', 'Trin']
header = feature_columns + response_column

df_describe = df[feature_columns].describe(include='all')
display(df_describe)

X = df[feature_columns].values
y = df[response_column].values.ravel()

X_train, X_test, y_train, y_test = train_test_split(X,
y,
test_size = 0.2,
random_state = 7)
print('Size of dataset:')
print(' train shape... ', X_train.shape, y_train.shape)
print(' test shape.... ', X_test.shape, y_test.shape)

return X_train, y_train, X_test, y_test

def Main(g, p):
X_train, y_train, X_test, y_test = LoadData()

clf = TPOTClassifier(config_dict='TPOT NN',
template='Selector-Transformer-PytorchLRClassifier',
verbosity=2,
generations=g,
population_size=p,
random_state=7)
clf.fit(X_train, y_train)
print(clf.score(X_test, y_test))
clf.export('tpot_nn_demo_pipeline.py')

if __name__ == "__main__":

print('Operating system version....', platform.platform())
print("Python version is........... %s.%s.%s" % sys.version_info[:3])
print('pandas version is...........', pd.__version__)
print('numpy version is............', np.__version__)
print('tpot version is.............', tpot.__version__)

my_timer = Timer()

Main(10, 10)

elapsed = my_timer.get_time()
print("\nTotal compute time was: %s" % elapsed)
```
After running a while, I get the following stack trace

```
Generation 1 - Current best internal CV score: -inf
Optimization Progress: 2%|█▌ | 200/10100 [05 Traceback (most recent call last):
File "C:\anaconda3\lib\site-packages\tpot\base.py", line 816, in fit
self._pop, _ = eaMuPlusLambda(
File "C:\anaconda3\lib\site-packages\tpot\gp_deap.py", line 281, in eaMuPlusLambda
per_generation_function(gen)
File "C:\anaconda3\lib\site-packages\tpot\base.py", line 1176, in _check_periodic_pipeline
self._update_top_pipeline()
File "C:\anaconda3\lib\site-packages\tpot\base.py", line 924, in _update_top_pipeline
cv_scores = cross_val_score(
File "C:\anaconda3\lib\site-packages\sklearn\model_selection\_validation.py", line 509, in cross_val_score
cv_results = cross_validate(
File "C:\anaconda3\lib\site-packages\sklearn\model_selection\_validation.py", line 267, in cross_validate
results = parallel(
File "C:\anaconda3\lib\site-packages\joblib\parallel.py", line 1043, in __call__
if self.dispatch_one_batch(iterator):
File "C:\anaconda3\lib\site-packages\joblib\parallel.py", line 861, in dispatch_one_batch
self._dispatch(tasks)
File "C:\anaconda3\lib\site-packages\joblib\parallel.py", line 779, in _dispatch
job = self._backend.apply_async(batch, callback=cb)
File "C:\anaconda3\lib\site-packages\joblib\_parallel_backends.py", line 208, in apply_async
result = ImmediateResult(func)
File "C:\anaconda3\lib\site-packages\joblib\_parallel_backends.py", line 572, in __init__
self.results = batch()
File "C:\anaconda3\lib\site-packages\joblib\parallel.py", line 262, in __call__
return [func(*args, **kwargs)
File "C:\anaconda3\lib\site-packages\joblib\parallel.py", line 262, in
return [func(*args, **kwargs)
File "C:\anaconda3\lib\site-packages\sklearn\utils\fixes.py", line 216, in __call__
return self.function(*args, **kwargs)
File "C:\anaconda3\lib\site-packages\sklearn\model_selection\_validation.py", line 680, in _fit_and_score
estimator.fit(X_train, y_train, **fit_params)
File "C:\anaconda3\lib\site-packages\sklearn\pipeline.py", line 390, in fit
Xt = self._fit(X, y, **fit_params_steps)
File "C:\anaconda3\lib\site-packages\sklearn\pipeline.py", line 348, in _fit
X, fitted_transformer = fit_transform_one_cached(
File "C:\anaconda3\lib\site-packages\joblib\memory.py", line 349, in __call__
return self.func(*args, **kwargs)
File "C:\anaconda3\lib\site-packages\sklearn\pipeline.py", line 893, in _fit_transform_one
res = transformer.fit_transform(X, y, **fit_params)
File "C:\anaconda3\lib\site-packages\sklearn\base.py", line 855, in fit_transform
return self.fit(X, y, **fit_params).transform(X)
File "C:\anaconda3\lib\site-packages\sklearn\preprocessing\_data.py", line 806, in fit
return self.partial_fit(X, y, sample_weight)
File "C:\anaconda3\lib\site-packages\sklearn\preprocessing\_data.py", line 841, in partial_fit
X = self._validate_data(
File "C:\anaconda3\lib\site-packages\sklearn\base.py", line 566, in _validate_data
X = check_array(X, **check_params)
File "C:\anaconda3\lib\site-packages\sklearn\utils\validation.py", line 814, in check_array
raise ValueError(
ValueError: Found array with 0 feature(s) (shape=(40, 0)) while a minimum of 1 is required by StandardScaler.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "tpot-NN-rocket-classify.py", line 83, in
Main(100, 100)
File "tpot-NN-rocket-classify.py", line 69, in Main
clf.fit(X_train, y_train)
File "C:\anaconda3\lib\site-packages\tpot\base.py", line 863, in fit
raise e
File "C:\anaconda3\lib\site-packages\tpot\base.py", line 854, in fit
self._update_top_pipeline()
File "C:\anaconda3\lib\site-packages\tpot\base.py", line 924, in _update_top_pipeline
cv_scores = cross_val_score(
File "C:\anaconda3\lib\site-packages\sklearn\model_selection\_validation.py", line 509, in cross_val_score
cv_results = cross_validate(
File "C:\anaconda3\lib\site-packages\sklearn\model_selection\_validation.py", line 267, in cross_validate
results = parallel(
File "C:\anaconda3\lib\site-packages\joblib\parallel.py", line 1043, in __call__
if self.dispatch_one_batch(iterator):
File "C:\anaconda3\lib\site-packages\joblib\parallel.py", line 861, in dispatch_one_batch
self._dispatch(tasks)
File "C:\anaconda3\lib\site-packages\joblib\parallel.py", line 779, in _dispatch
job = self._backend.apply_async(batch, callback=cb)
File "C:\anaconda3\lib\site-packages\joblib\_parallel_backends.py", line 208, in apply_async
result = ImmediateResult(func)
File "C:\anaconda3\lib\site-packages\joblib\_parallel_backends.py", line 572, in __init__
self.results = batch()
File "C:\anaconda3\lib\site-packages\joblib\parallel.py", line 262, in __call__
return [func(*args, **kwargs)
File "C:\anaconda3\lib\site-packages\joblib\parallel.py", line 262, in
return [func(*args, **kwargs)
File "C:\anaconda3\lib\site-packages\sklearn\utils\fixes.py", line 216, in __call__
return self.function(*args, **kwargs)
File "C:\anaconda3\lib\site-packages\sklearn\model_selection\_validation.py", line 680, in _fit_and_score
estimator.fit(X_train, y_train, **fit_params)
File "C:\anaconda3\lib\site-packages\sklearn\pipeline.py", line 390, in fit
Xt = self._fit(X, y, **fit_params_steps)
File "C:\anaconda3\lib\site-packages\sklearn\pipeline.py", line 348, in _fit
X, fitted_transformer = fit_transform_one_cached(
File "C:\anaconda3\lib\site-packages\joblib\memory.py", line 349, in __call__
return self.func(*args, **kwargs)
File "C:\anaconda3\lib\site-packages\sklearn\pipeline.py", line 893, in _fit_transform_one
res = transformer.fit_transform(X, y, **fit_params)
File "C:\anaconda3\lib\site-packages\sklearn\base.py", line 855, in fit_transform
return self.fit(X, y, **fit_params).transform(X)
File "C:\anaconda3\lib\site-packages\sklearn\preprocessing\_data.py", line 806, in fit
return self.partial_fit(X, y, sample_weight)
File "C:\anaconda3\lib\site-packages\sklearn\preprocessing\_data.py", line 841, in partial_fit
X = self._validate_data(
File "C:\anaconda3\lib\site-packages\sklearn\base.py", line 566, in _validate_data
X = check_array(X, **check_params)
File "C:\anaconda3\lib\site-packages\sklearn\utils\validation.py", line 814, in check_array
raise ValueError(
ValueError: Found array with 0 feature(s) (shape=(40, 0)) while a minimum of 1 is required by StandardScaler.

H:\HedgeTools\ML_Model_Generation\TPOT>pause
Press any key to continue . . .
```
I hope you guys can help me with this problem

Charles

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.